diff options
| author | kafka <guowang@unitedstack.com> | 2015-08-12 12:22:41 +0800 |
|---|---|---|
| committer | Steve Martinelli <stevemar@ca.ibm.com> | 2015-10-15 15:51:01 -0400 |
| commit | 9f51ccdf8c2b2e1afceeb9e6570ed629191a71c8 (patch) | |
| tree | ede66e336077371079516deb9b3ae81e01d832e9 /openstackclient/volume | |
| parent | b60a9492a31bb1130338176e4b90a7572c10edc3 (diff) | |
| download | python-openstackclient-9f51ccdf8c2b2e1afceeb9e6570ed629191a71c8.tar.gz | |
Add filtering by project/user for 'openstack volume list'
added project, user and domain options for filtering results,
also cleaned up the order to match the docs.
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Closed-bug: #1483976
Change-Id: I9d955094d31d4a28e215d24f7521a11c62bee8db
Diffstat (limited to 'openstackclient/volume')
| -rw-r--r-- | openstackclient/volume/v2/volume.py | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py index 758f312b..5df65635 100644 --- a/openstackclient/volume/v2/volume.py +++ b/openstackclient/volume/v2/volume.py @@ -25,6 +25,7 @@ import six from openstackclient.common import parseractions from openstackclient.common import utils +from openstackclient.identity import common as identity_common class CreateVolume(show.ShowOne): @@ -206,11 +207,17 @@ class ListVolume(lister.Lister): help='Include all projects (admin only)', ) parser.add_argument( - '--long', - action='store_true', - default=False, - help='List additional fields in output', + '--project', + metavar='<project-id>', + help='Filter results by project (name or ID) (admin only)' ) + identity_common.add_project_domain_option_to_parser(parser) + parser.add_argument( + '--user', + metavar='<user-id>', + help='Filter results by user (name or ID) (admin only)' + ) + identity_common.add_user_domain_option_to_parser(parser) parser.add_argument( '--name', metavar='<name>', @@ -221,6 +228,12 @@ class ListVolume(lister.Lister): metavar='<status>', help='Filter results by status', ) + parser.add_argument( + '--long', + action='store_true', + default=False, + help='List additional fields in output', + ) return parser @utils.log_method(log) @@ -228,6 +241,7 @@ class ListVolume(lister.Lister): volume_client = self.app.client_manager.volume compute_client = self.app.client_manager.compute + identity_client = self.app.client_manager.identity def _format_attach(attachments): """Return a formatted string of a volume's attached instances @@ -282,8 +296,23 @@ class ListVolume(lister.Lister): # Just forget it if there's any trouble pass + project_id = None + if parsed_args.project: + project_id = identity_common.find_project( + identity_client, + parsed_args.project, + parsed_args.project_domain) + + user_id = None + if parsed_args.user: + user_id = identity_common.find_project(identity_client, + parsed_args.user, + parsed_args.user_domain) + search_opts = { - 'all_projects': parsed_args.all_projects, + 'all_tenants': parsed_args.all_projects, + 'project_id': project_id, + 'user_id': user_id, 'display_name': parsed_args.name, 'status': parsed_args.status, } |
