Use region_name when creating keystone client

When creating trust and stack domain user/project, we
create a keystone client without the region_name. This
may not work in a multi-region environment.

Change-Id: I90979e9fe889deb1ef322ab0af31b9e079b77747
Closes-Bug: #1661594
This commit is contained in:
rabi 2017-02-03 17:45:23 +05:30
parent 58dd39d6f8
commit a21a29c847
2 changed files with 14 additions and 5 deletions

View File

@ -119,6 +119,10 @@ class KsClientWrapper(object):
self._client = self._v3_client_init()
return self._client
@property
def region_name(self):
return self.context.region_name or cfg.CONF.region_name_for_services
@property
def domain_admin_auth(self):
if not self._domain_admin_auth:
@ -148,12 +152,14 @@ class KsClientWrapper(object):
if not self._domain_admin_client:
self._domain_admin_client = kc_v3.Client(
session=self.session,
auth=self.domain_admin_auth)
auth=self.domain_admin_auth,
region_name=self.region_name)
return self._domain_admin_client
def _v3_client_init(self):
client = kc_v3.Client(session=self.session)
client = kc_v3.Client(session=self.session,
region_name=self.region_name)
if hasattr(self.context.auth_plugin, 'get_access'):
# NOTE(jamielennox): get_access returns the current token without

View File

@ -95,7 +95,8 @@ class KeystoneClientTest(common.HeatTestCase):
m.AndReturn(mock_ks_auth)
n = kc_v3.Client(session=mox.IsA(ks_session.Session),
auth=mock_ks_auth)
auth=mock_ks_auth,
region_name=None)
n.AndReturn(self.mock_admin_client)
self.mock_admin_client.domains = self.mock_ks_v3_client_domain_mngr
@ -139,7 +140,8 @@ class KeystoneClientTest(common.HeatTestCase):
p.AndReturn(mock_ks_auth)
if client:
c = kc_v3.Client(session=mox.IsA(ks_session.Session))
c = kc_v3.Client(session=mox.IsA(ks_session.Session),
region_name=None)
c.AndReturn(self.mock_ks_v3_client)
if stub_trust_context:
@ -1532,7 +1534,8 @@ class KeystoneClientTestDomainName(KeystoneClientTest):
m.AndReturn(mock_ks_auth)
n = kc_v3.Client(session=mox.IsA(ks_session.Session),
auth=mock_ks_auth)
auth=mock_ks_auth,
region_name=None)
n.AndReturn(self.mock_admin_client)
self.mock_admin_client.domains = self.mock_ks_v3_client_domain_mngr