diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-03-10 20:53:17 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-03-10 20:53:17 +0000 |
commit | 4a0d1b3f13e1f74109e4800162709b711f57332d (patch) | |
tree | 3b7e99034fec47194a8251d0a8c7a0b1467b24e6 | |
parent | ed43a70012424739b26b06f30d0b08c7090efce5 (diff) | |
parent | c756f2dab3fc31d3c120c92fb8a49d02a6e0bca1 (diff) | |
download | python-keystoneclient-4a0d1b3f13e1f74109e4800162709b711f57332d.tar.gz |
Merge "Creating parameter to list inherited role assignments"
-rw-r--r-- | keystoneclient/tests/unit/v3/test_role_assignments.py | 15 | ||||
-rw-r--r-- | keystoneclient/v3/role_assignments.py | 8 |
2 files changed, 22 insertions, 1 deletions
diff --git a/keystoneclient/tests/unit/v3/test_role_assignments.py b/keystoneclient/tests/unit/v3/test_role_assignments.py index 1a664c9..79d2585 100644 --- a/keystoneclient/tests/unit/v3/test_role_assignments.py +++ b/keystoneclient/tests/unit/v3/test_role_assignments.py @@ -177,6 +177,21 @@ class RoleAssignmentsTests(utils.TestCase, utils.CrudTests): kwargs = {'role.id': self.TEST_ROLE_ID} self.assertQueryStringContains(**kwargs) + def test_role_assignments_inherited_list(self): + ref_list = self.TEST_ALL_RESPONSE_LIST + self.stub_entity('GET', + [self.collection_key, + '?scope.OS-INHERIT:inherited_to=projects'], + entity=ref_list + ) + + returned_list = self.manager.list( + os_inherit_extension_inherited_to='projects') + self._assert_returned_list(ref_list, returned_list) + + query_string = 'scope.OS-INHERIT:inherited_to=projects' + self.assertQueryStringIs(query_string) + def test_domain_and_project_list(self): # Should only accept either domain or project, never both self.assertRaises(exceptions.ValidationError, diff --git a/keystoneclient/v3/role_assignments.py b/keystoneclient/v3/role_assignments.py index 6518e43..d71f9eb 100644 --- a/keystoneclient/v3/role_assignments.py +++ b/keystoneclient/v3/role_assignments.py @@ -47,7 +47,7 @@ class RoleAssignmentManager(base.CrudManager): raise exceptions.ValidationError(msg) def list(self, user=None, group=None, project=None, domain=None, role=None, - effective=False): + effective=False, os_inherit_extension_inherited_to=None): """Lists role assignments. If no arguments are provided, all role assignments in the @@ -66,6 +66,9 @@ class RoleAssignmentManager(base.CrudManager): :param role: Role to be used as query filter. (optional) :param boolean effective: return effective role assignments. (optional) + :param string os_inherit_extension_inherited_to: + return inherited role assignments for either 'projects' or + 'domains'. (optional) """ self._check_not_user_and_group(user, group) @@ -84,6 +87,9 @@ class RoleAssignmentManager(base.CrudManager): query_params['role.id'] = base.getid(role) if effective: query_params['effective'] = effective + if os_inherit_extension_inherited_to: + query_params['scope.OS-INHERIT:inherited_to'] = ( + os_inherit_extension_inherited_to) return super(RoleAssignmentManager, self).list(**query_params) |