diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-17 22:23:51 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-17 22:23:51 +0000 |
| commit | 272ac55776dcc945cdad3d6d38e3356e0c099e45 (patch) | |
| tree | f7a261f1f8c8f96f538bc84049c97c6ba5bedd1e /openstackclient/identity/v3 | |
| parent | f1ae75aa01d1c562b7481e9032abb24411e07146 (diff) | |
| parent | 3a48989eb02187f384cfbf7bb7cd55502741fc68 (diff) | |
| download | python-openstackclient-272ac55776dcc945cdad3d6d38e3356e0c099e45.tar.gz | |
Merge "Return names in list role assignments"
Diffstat (limited to 'openstackclient/identity/v3')
| -rw-r--r-- | openstackclient/identity/v3/role_assignment.py | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py index d766be68..e2b0fe1f 100644 --- a/openstackclient/identity/v3/role_assignment.py +++ b/openstackclient/identity/v3/role_assignment.py @@ -34,6 +34,11 @@ class ListRoleAssignment(command.Lister): metavar='<role>', help='Role to filter (name or ID)', ) + parser.add_argument( + '--names', + action="store_true", + help='Display names instead of IDs', + ) user_or_group = parser.add_mutually_exclusive_group() user_or_group.add_argument( '--user', @@ -107,6 +112,7 @@ class ListRoleAssignment(command.Lister): parsed_args.group_domain, ) + include_names = True if parsed_args.names else False effective = True if parsed_args.effective else False columns = ('Role', 'User', 'Group', 'Project', 'Domain', 'Inherited') @@ -118,17 +124,26 @@ class ListRoleAssignment(command.Lister): project=project, role=role, effective=effective, - os_inherit_extension_inherited_to=inherited_to) + os_inherit_extension_inherited_to=inherited_to, + include_names=include_names) data_parsed = [] for assignment in data: # Removing the extra "scope" layer in the assignment json scope = assignment.scope if 'project' in scope: - setattr(assignment, 'project', scope['project']['id']) + if include_names: + prj = '@'.join([scope['project']['name'], + scope['project']['domain']['name']]) + setattr(assignment, 'project', prj) + else: + setattr(assignment, 'project', scope['project']['id']) assignment.domain = '' elif 'domain' in scope: - setattr(assignment, 'domain', scope['domain']['id']) + if include_names: + setattr(assignment, 'domain', scope['domain']['name']) + else: + setattr(assignment, 'domain', scope['domain']['id']) assignment.project = '' else: @@ -141,17 +156,30 @@ class ListRoleAssignment(command.Lister): del assignment.scope if hasattr(assignment, 'user'): - setattr(assignment, 'user', assignment.user['id']) + if include_names: + usr = '@'.join([assignment.user['name'], + assignment.user['domain']['name']]) + setattr(assignment, 'user', usr) + else: + setattr(assignment, 'user', assignment.user['id']) assignment.group = '' elif hasattr(assignment, 'group'): - setattr(assignment, 'group', assignment.group['id']) + if include_names: + grp = '@'.join([assignment.group['name'], + assignment.group['domain']['name']]) + setattr(assignment, 'group', grp) + else: + setattr(assignment, 'group', assignment.group['id']) assignment.user = '' else: assignment.user = '' assignment.group = '' if hasattr(assignment, 'role'): - setattr(assignment, 'role', assignment.role['id']) + if include_names: + setattr(assignment, 'role', assignment.role['name']) + else: + setattr(assignment, 'role', assignment.role['id']) else: assignment.role = '' |
