summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-12-02 05:40:10 +0000
committerGerrit Code Review <review@openstack.org>2014-12-02 05:40:10 +0000
commitcc54f989ec53efdf61563d3682ea787c49c21410 (patch)
treecfc3c98a20951d3b145a750b8c234d6b220da3c8
parent2663e1638901336c8431c64936d54adec6a17856 (diff)
parent5bc768bbc2c0ffa592a2e419cecdb898b9b65a83 (diff)
downloadpython-openstackclient-cc54f989ec53efdf61563d3682ea787c49c21410.tar.gz
Merge "Add the ability to list projects based on a user"
-rw-r--r--doc/source/command-objects/project.rst7
-rw-r--r--openstackclient/identity/v3/project.py24
2 files changed, 29 insertions, 2 deletions
diff --git a/doc/source/command-objects/project.rst b/doc/source/command-objects/project.rst
index 0be4e806..305e6114 100644
--- a/doc/source/command-objects/project.rst
+++ b/doc/source/command-objects/project.rst
@@ -79,6 +79,7 @@ List projects
os project list
[--domain <domain>]
+ [--user <user>]
[--long]
.. option:: --domain <domain>
@@ -87,6 +88,12 @@ List projects
.. versionadded:: 3
+.. option:: --user <user>
+
+ Filter projects by :option:`\<user\> <--user>` (name or ID)
+
+ .. versionadded:: 3
+
.. option:: --long
List additional fields in output
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
@@ -163,6 +163,11 @@ class ListProject(lister.Lister):
help='Filter projects by <domain> (name or ID)',
)
parser.add_argument(
+ '--user',
+ metavar='<user>',
+ help='Filter projects by <user> (name or ID)',
+ )
+ parser.add_argument(
'--long',
action='store_true',
default=False,
@@ -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(