Implements filters: visibility, owner, member_status.

Includes tests.

Related to bp glance-api-v2-image-members

Change-Id: Ic48f54639fec4dc9b48819a8ffb1f0097001894c
This commit is contained in:
Brian Rosmaita
2013-03-02 18:59:34 +00:00
parent d810019d0e
commit 552a68d2bf
3 changed files with 148 additions and 5 deletions
+12 -1
View File
@@ -19,11 +19,22 @@ from glanceclient import exc
@utils.arg('--page-size', metavar='<SIZE>', default=None, type=int,
help='Number of images to request in each paginated request.')
@utils.arg('--visibility', metavar='<VISIBILITY>',
help='The visibility of the images to display.')
@utils.arg('--member-status', metavar='<MEMBER_STATUS>',
help='The status of images to display.')
@utils.arg('--owner', metavar='<OWNER>',
help='Display images owned by <OWNER>.')
def do_image_list(gc, args):
"""List images you can access."""
kwargs = {}
filter_keys = ['visibility', 'member_status', 'owner']
filter_items = [(key, getattr(args, key)) for key in filter_keys]
filters = dict([item for item in filter_items if item[1] is not None])
kwargs = {'filters': filters}
if args.page_size is not None:
kwargs['page_size'] = args.page_size
images = gc.images.list(**kwargs)
columns = ['ID', 'Name']
utils.print_list(images, columns)