From 5bc768bbc2c0ffa592a2e419cecdb898b9b65a83 Mon Sep 17 00:00:00 2001 From: Steve Martinelli Date: Thu, 20 Nov 2014 18:42:00 -0500 Subject: Add the ability to list projects based on a user Essentially performing GET /users/{user_id}/projects Change-Id: Iae6ddfc86a856fa24fbe293ec4af52ea671390f8 Closes-Bug: #1394793 --- openstackclient/identity/v3/project.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'openstackclient') diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py index 1e3977ba..e9adfe34 100644 --- a/openstackclient/identity/v3/project.py +++ b/openstackclient/identity/v3/project.py @@ -162,6 +162,11 @@ class ListProject(lister.Lister): metavar='', help='Filter projects by (name or ID)', ) + parser.add_argument( + '--user', + metavar='', + help='Filter projects by (name or ID)', + ) parser.add_argument( '--long', action='store_true', @@ -178,9 +183,24 @@ class ListProject(lister.Lister): else: columns = ('ID', 'Name') kwargs = {} + + domain_id = None if parsed_args.domain: - kwargs['domain'] = common.find_domain(identity_client, - parsed_args.domain).id + domain_id = common.find_domain(identity_client, + parsed_args.domain).id + kwargs['domain'] = domain_id + + if parsed_args.user: + if parsed_args.domain: + user_id = utils.find_resource(identity_client.users, + parsed_args.user, + domain_id=domain_id).id + else: + user_id = utils.find_resource(identity_client.users, + parsed_args.user).id + + kwargs['user'] = user_id + data = identity_client.projects.list(**kwargs) return (columns, (utils.get_item_properties( -- cgit v1.2.1