Fix Keystoneclient V2 wrapper for multi-region

Change-Id: I75b6c2f61f66f6a2867bfb3cecbc5a3bd58a5058
This commit is contained in:
Drago Rosson 2015-02-04 09:51:59 -06:00
parent 6395b8d39d
commit 732c977da9
2 changed files with 23 additions and 4 deletions

View File

@ -67,6 +67,10 @@ class KeystoneClientV2(object):
'auth_url': self.context.auth_url,
'region_name': cfg.CONF.region_name_for_services
}
if self.context.region_name is not None:
kwargs['region_name'] = self.context.region_name
auth_kwargs = {}
# Note try trust_id first, as we can't reuse auth_token in that case
if self.context.trust_id is not None:

View File

@ -46,7 +46,7 @@ class KeystoneClientTest(common.HeatTestCase):
self.addCleanup(self.m.VerifyAll)
def _stubs_v2(self, method='token', auth_ok=True, trust_scoped=True,
user_id='trustor_user_id'):
user_id='trustor_user_id', region=None):
self.mock_ks_client = self.m.CreateMock(heat_keystoneclient.kc.Client)
self.m.StubOutWithMock(heat_keystoneclient.kc, "Client")
if method == 'token':
@ -57,7 +57,7 @@ class KeystoneClientTest(common.HeatTestCase):
cacert=None,
cert=None,
insecure=False,
region_name=None,
region_name=region,
key=None).AndReturn(self.mock_ks_client)
self.mock_ks_client.authenticate().AndReturn(auth_ok)
elif method == 'password':
@ -70,7 +70,7 @@ class KeystoneClientTest(common.HeatTestCase):
cacert=None,
cert=None,
insecure=False,
region_name=None,
region_name=region,
key=None).AndReturn(self.mock_ks_client)
self.mock_ks_client.authenticate().AndReturn(auth_ok)
if method == 'trust':
@ -82,7 +82,7 @@ class KeystoneClientTest(common.HeatTestCase):
cacert=None,
cert=None,
insecure=False,
region_name=None,
region_name=region,
key=None).AndReturn(self.mock_ks_client)
self.mock_ks_client.authenticate(trust_id='atrust123',
tenant_id='test_tenant_id'
@ -212,6 +212,21 @@ class KeystoneClientTest(common.HeatTestCase):
heat_ks_client = heat_keystoneclient.KeystoneClientV2(self.ctx)
self.assertIsNotNone(heat_ks_client._client)
def test_region_name(self):
"""Test region_name is used when specified."""
self._stubs_v2(method='trust', region='region123')
self.m.ReplayAll()
self.ctx.username = None
self.ctx.password = None
self.ctx.auth_token = None
self.ctx.trust_id = 'atrust123'
self.ctx.trustor_user_id = 'trustor_user_id'
self.ctx.region_name = 'region123'
heat_keystoneclient.KeystoneClientV2(self.ctx)
self.m.VerifyAll()
# ##################### #
# V3 Compatible Methods #
# ##################### #