summaryrefslogtreecommitdiff
path: root/openstackclient/identity
diff options
context:
space:
mode:
authorSamuel de Medeiros Queiroz <samuel@lsd.ufcg.edu.br>2014-09-17 12:03:19 -0300
committerSteve Martinelli <stevemar@ca.ibm.com>2015-08-06 22:21:27 -0700
commit94a8805a9a96daa2ada2b38db1fac86e06525620 (patch)
treeffd7ae928c27fd6b0038a08c301971da89615591 /openstackclient/identity
parent35833c94efd27a497f4dffbdbd17329a6e65cd2a (diff)
downloadpython-openstackclient-94a8805a9a96daa2ada2b38db1fac86e06525620.tar.gz
Inherited info/option when listing role assignment
Adds inherited information when listing role assignments. In addition, it makes possible to list only inherited ones by adding --inherited option. Change-Id: Idf889603d584716da95e2c7b4880142fbd8291c4 Closes-Bug: 1370546
Diffstat (limited to 'openstackclient/identity')
-rw-r--r--openstackclient/identity/v3/role_assignment.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py
index 92168498..169c6cb9 100644
--- a/openstackclient/identity/v3/role_assignment.py
+++ b/openstackclient/identity/v3/role_assignment.py
@@ -64,12 +64,12 @@ class ListRoleAssignment(lister.Lister):
help='Project to filter (name or ID)',
)
common.add_project_domain_option_to_parser(parser)
-
+ common.add_inherited_option_to_parser(parser)
return parser
def _as_tuple(self, assignment):
return (assignment.role, assignment.user, assignment.group,
- assignment.project, assignment.domain)
+ assignment.project, assignment.domain, assignment.inherited)
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
@@ -115,14 +115,17 @@ class ListRoleAssignment(lister.Lister):
effective = True if parsed_args.effective else False
self.log.debug('take_action(%s)' % parsed_args)
- columns = ('Role', 'User', 'Group', 'Project', 'Domain')
+ columns = ('Role', 'User', 'Group', 'Project', 'Domain', 'Inherited')
+
+ inherited_to = 'projects' if parsed_args.inherited else None
data = identity_client.role_assignments.list(
domain=domain,
user=user,
group=group,
project=project,
role=role,
- effective=effective)
+ effective=effective,
+ os_inherit_extension_inherited_to=inherited_to)
data_parsed = []
for assignment in data:
@@ -139,6 +142,9 @@ class ListRoleAssignment(lister.Lister):
assignment.domain = ''
assignment.project = ''
+ inherited = scope.get('OS-INHERIT:inherited_to') == 'projects'
+ assignment.inherited = inherited
+
del assignment.scope
if hasattr(assignment, 'user'):