Merge "Populate context roles when using stored context"

This commit is contained in:
Jenkins 2016-01-11 15:47:18 +00:00 committed by Gerrit Code Review
commit 7f7e20d7f5
3 changed files with 21 additions and 1 deletions

View File

@ -554,6 +554,10 @@ class KeystoneClientV3(object):
def auth_token(self):
return self.context.auth_plugin.get_token(self.session)
@property
def auth_ref(self):
return self.context.auth_plugin.get_access(self.session)
class KeystoneClient(object):
"""Keystone Auth Client.

View File

@ -191,6 +191,8 @@ class Stack(collections.Mapping):
if use_stored_context:
self.context = self.stored_context()
self.context.roles = self.context.clients.client(
'keystone').auth_ref.role_names
self.clients = self.context.clients

View File

@ -94,7 +94,7 @@ class FakeKeystoneClient(object):
def __init__(self, username='test_username', password='password',
user_id='1234', access='4567', secret='8901',
credential_id='abcdxyz', auth_token='abcd1234',
context=None, stack_domain_id='4321'):
context=None, stack_domain_id='4321', roles=None):
self.username = username
self.password = password
self.user_id = user_id
@ -106,6 +106,7 @@ class FakeKeystoneClient(object):
self.context = context
self.v3_endpoint = 'http://localhost:5000/v3'
self.stack_domain_id = stack_domain_id
self.roles = roles or []
class FakeCred(object):
id = self.credential_id
@ -191,6 +192,19 @@ class FakeKeystoneClient(object):
else:
return self.token
@property
def auth_ref(self):
return FakeAccessInfo(roles=self.roles)
class FakeAccessInfo(object):
def __init__(self, roles):
self.roles = roles
@property
def role_names(self):
return self.roles
class FakeEventSink(object):