From e7db533bc0222f912ec0405e101e3dafbd49ece3 Mon Sep 17 00:00:00 2001 From: Brian Waldon Date: Wed, 4 Jul 2012 15:24:08 -0700 Subject: [PATCH] Expand v1 image-list filters Add comparison filters for the v1 image-list command: --name, --status, --container-format, --disk-format. Related to bp glance-client-parity. Change-Id: I27377764ea5543a4bef593f0a731b09a914a9265 --- glanceclient/v1/shell.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/glanceclient/v1/shell.py b/glanceclient/v1/shell.py index 68c11f3..4052b45 100644 --- a/glanceclient/v1/shell.py +++ b/glanceclient/v1/shell.py @@ -20,17 +20,24 @@ from glanceclient.common import utils import glanceclient.v1.images +@utils.arg('--name', metavar='', + help='Filter images to those that have this name.') +@utils.arg('--status', metavar='', + help='Filter images to those that have this status.') +@utils.arg('--container-format', metavar='', + help='Filter images to those that have this container format.') +@utils.arg('--disk-format', metavar='', + help='Filter images to those that have this disk format.') @utils.arg('--size-min', metavar='', help='Filter images to those with a size greater than this.') @utils.arg('--size-max', metavar='', help='Filter images to those with a size less than this.') def do_image_list(gc, args): """List images.""" - filters = [ - ('size_min', args.size_min), - ('size_max', args.size_max), - ] - filters = dict(filter(lambda f: f[1] is not None, filters)) + filter_keys = ['name', 'status', 'container_format', 'disk_format', + 'size_min', 'size_max'] + 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]) images = gc.images.list(filters=filters) columns = ['ID', 'Name', 'Disk Format', 'Container Format', 'Size', 'Status']