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
This commit is contained in:
lin-hua-cheng 2015-07-31 18:56:34 -07:00
parent bd022cb58c
commit 701b59f651
2 changed files with 24 additions and 0 deletions

View File

@ -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)

View File

@ -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