Add 'links' to implied roles response
The API spec claims that a GET request for implied roles will provide a link back to itself in the response[1]. This patch makes it actually do that. [1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#list-implied-roles-for-role Closes-bug: #1564129 Change-Id: I43571cc8d759922a4d9107cadba590cf14d25b20
This commit is contained in:
parent
3ff204a414
commit
248f0278f9
@ -474,6 +474,9 @@ class ImpliedRolesV3(controller.V3Controller):
|
||||
implied_response = self._implied_role_stanza(
|
||||
endpoint, implied_role)
|
||||
response["role_inference"]['implies'].append(implied_response)
|
||||
response["links"] = {
|
||||
"self": endpoint + "/v3/roles/" + prior_id + "/implies"
|
||||
}
|
||||
return response
|
||||
|
||||
def _populate_implied_role_response(self, endpoint, prior_id, implied_id):
|
||||
|
@ -2437,17 +2437,20 @@ class ImpliedRolesTests(test_v3.RestfulTestCase, test_v3.AssignmentTestMixin,
|
||||
def _assert_expected_implied_role_response(
|
||||
self, expected_prior_id, expected_implied_ids):
|
||||
r = self.get('/roles/%s/implies' % expected_prior_id)
|
||||
response = r.json["role_inference"]
|
||||
self.assertEqual(expected_prior_id, response['prior_role']['id'])
|
||||
response = r.json
|
||||
role_inference = response['role_inference']
|
||||
self.assertEqual(expected_prior_id, role_inference['prior_role']['id'])
|
||||
prior_link = '/v3/roles/' + expected_prior_id + '/implies'
|
||||
self.assertThat(response['links']['self'],
|
||||
matchers.EndsWith(prior_link))
|
||||
|
||||
actual_implied_ids = [implied['id'] for implied in response['implies']]
|
||||
actual_implied_ids = [implied['id']
|
||||
for implied in role_inference['implies']]
|
||||
|
||||
for expected_id in expected_implied_ids:
|
||||
self.assertIn(expected_id, actual_implied_ids)
|
||||
self.assertEqual(len(expected_implied_ids), len(response['implies']))
|
||||
self.assertItemsEqual(expected_implied_ids, actual_implied_ids)
|
||||
|
||||
self.assertIsNotNone(response['prior_role']['links']['self'])
|
||||
for implied in response['implies']:
|
||||
self.assertIsNotNone(role_inference['prior_role']['links']['self'])
|
||||
for implied in role_inference['implies']:
|
||||
self.assertIsNotNone(implied['links']['self'])
|
||||
|
||||
def _assert_two_roles_implied(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user