From 211a4bcbf2bb875df490839ab91e8d7a5f1fafd0 Mon Sep 17 00:00:00 2001 From: Steve Martinelli <stevemar@ca.ibm.com> Date: Mon, 11 Mar 2013 15:08:49 -0500 Subject: [PATCH] Add optional arguments to volume list command Added --name, --all-tenants, and --status as search params Change-Id: Ibaa2a7f6862c2ff7dbe24f6bea971db3e70bc120 --- openstackclient/volume/v1/volume.py | 34 +++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py index 6b0d7cd65e..6e110a4ae3 100644 --- a/openstackclient/volume/v1/volume.py +++ b/openstackclient/volume/v1/volume.py @@ -154,10 +154,40 @@ class ListVolume(lister.Lister): api = 'volume' log = logging.getLogger(__name__ + '.ListVolume') + def get_parser(self, prog_name): + parser = super(ListVolume, self).get_parser(prog_name) + parser.add_argument( + '--status', + metavar='<status>', + help='Filter results by status', + ) + parser.add_argument( + '--name', + metavar='<name>', + help='Filter results by name', + ) + parser.add_argument( + '--all-tenants', + action='store_true', + default=False, + help='Display information from all tenants (Admin-only)', + ) + return parser + def take_action(self, parsed_args): self.log.debug('take_action(%s)' % parsed_args) - columns = ('ID', 'Status', 'Display Name', 'Size', 'Volume Type') - data = self.app.client_manager.volume.volumes.list() + columns = ('ID', 'Status', 'Display Name', 'Size', + 'Volume Type', 'Bootable', 'Attached to') + + search_opts = { + 'all_tenants': parsed_args.all_tenants, + 'display_name': parsed_args.name, + 'status': parsed_args.status, + } + + volume_client = self.app.client_manager.volume + data = volume_client.volumes.list(search_opts=search_opts) + return (columns, (utils.get_item_properties( s, columns,