diff options
Diffstat (limited to 'openstackclient/image')
| -rw-r--r-- | openstackclient/image/v2/image.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py index 39a53195..3f162181 100644 --- a/openstackclient/image/v2/image.py +++ b/openstackclient/image/v2/image.py @@ -431,6 +431,20 @@ class ListImage(command.Lister): "(default: asc), multiple keys and directions can be " "specified separated by comma", ) + parser.add_argument( + "--limit", + metavar="<limit>", + type=int, + help="Maximum number of images to display.", + ) + parser.add_argument( + '--marker', + metavar='<marker>', + default=None, + help="The last image (name or ID) of the previous page. Display " + "list of images after marker. Display all images if not " + "specified." + ) return parser def take_action(self, parsed_args): @@ -443,6 +457,11 @@ class ListImage(command.Lister): kwargs['private'] = True if parsed_args.shared: kwargs['shared'] = True + if parsed_args.limit: + kwargs['limit'] = parsed_args.limit + if parsed_args.marker: + kwargs['marker'] = utils.find_resource(image_client.images, + parsed_args.marker).id if parsed_args.long: columns = ( @@ -474,16 +493,7 @@ class ListImage(command.Lister): column_headers = columns # List of image data received - data = [] - # No pages received yet, so start the page marker at None. - marker = None - while True: - page = image_client.api.image_list(marker=marker, **kwargs) - if not page: - break - data.extend(page) - # Set the marker to the id of the last item we received - marker = page[-1]['id'] + data = image_client.api.image_list(**kwargs) if parsed_args.property: # NOTE(dtroyer): coerce to a list to subscript it in py3 |
