summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlin-hua-cheng <os.lcheng@gmail.com>2015-07-31 18:56:34 -0700
committerlin-hua-cheng <os.lcheng@gmail.com>2015-07-31 18:56:34 -0700
commit701b59f651fe1ec88400f014165efa6b176f375c (patch)
treeeed75bd693bbf2274f42679c464d2f2984603c89
parentbd022cb58c1172e3f237ce99840eb43085fd33d4 (diff)
downloadpython-openstackclient-701b59f651fe1ec88400f014165efa6b176f375c.tar.gz
Add domain scoping in 'role assignment list'
Add ability to set which domain the user, group or project belong to. Change-Id: Idf6c7f23ab96261a73682226fb10ce5f0133924e Closes-Bug: #1472909
-rw-r--r--doc/source/command-objects/role_assignment.rst18
-rw-r--r--openstackclient/identity/v3/role_assignment.py6
2 files changed, 24 insertions, 0 deletions
diff --git a/doc/source/command-objects/role_assignment.rst b/doc/source/command-objects/role_assignment.rst
index cfb1079c..6bb24cb3 100644
--- a/doc/source/command-objects/role_assignment.rst
+++ b/doc/source/command-objects/role_assignment.rst
@@ -15,9 +15,12 @@ List role assignments
os role assignment list
[--role <role>]
[--user <user>]
+ [--user-domain <user-domain>]
[--group <group>]
+ [--group-domain <group-domain>]
[--domain <domain>]
[--project <project>]
+ [--project-domain <project-domain>]
[--effective]
[--inherited]
@@ -29,10 +32,20 @@ List role assignments
User to filter (name or ID)
+.. option:: --user-domain <user-domain>
+
+ Domain the user belongs to (name or ID).
+ This can be used in case collisions between user names exist.
+
.. option:: --group <group>
Group to filter (name or ID)
+.. option:: --group-domain <group-domain>
+
+ Domain the group belongs to (name or ID).
+ This can be used in case collisions between group names exist.
+
.. option:: --domain <domain>
Domain to filter (name or ID)
@@ -41,6 +54,11 @@ List role assignments
Project to filter (name or ID)
+.. option:: --project-domain <project-domain>
+
+ Domain the project belongs to (name or ID).
+ This can be used in case collisions between project names exist.
+
.. option:: --effective
Returns only effective role assignments (defaults to False)
diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py
index 24e3a7f7..92168498 100644
--- a/openstackclient/identity/v3/role_assignment.py
+++ b/openstackclient/identity/v3/role_assignment.py
@@ -45,11 +45,13 @@ class ListRoleAssignment(lister.Lister):
metavar='<user>',
help='User to filter (name or ID)',
)
+ common.add_user_domain_option_to_parser(parser)
user_or_group.add_argument(
'--group',
metavar='<group>',
help='Group to filter (name or ID)',
)
+ common.add_group_domain_option_to_parser(parser)
domain_or_project = parser.add_mutually_exclusive_group()
domain_or_project.add_argument(
'--domain',
@@ -61,6 +63,7 @@ class ListRoleAssignment(lister.Lister):
metavar='<project>',
help='Project to filter (name or ID)',
)
+ common.add_project_domain_option_to_parser(parser)
return parser
@@ -84,6 +87,7 @@ class ListRoleAssignment(lister.Lister):
user = common.find_user(
identity_client,
parsed_args.user,
+ parsed_args.user_domain,
)
domain = None
@@ -98,6 +102,7 @@ class ListRoleAssignment(lister.Lister):
project = common.find_project(
identity_client,
parsed_args.project,
+ parsed_args.project_domain,
)
group = None
@@ -105,6 +110,7 @@ class ListRoleAssignment(lister.Lister):
group = common.find_group(
identity_client,
parsed_args.group,
+ parsed_args.group_domain,
)
effective = True if parsed_args.effective else False