diff options
author | rabi <ramishra@redhat.com> | 2017-02-03 17:45:23 +0530 |
---|---|---|
committer | rabi <ramishra@redhat.com> | 2017-02-07 10:15:44 +0530 |
commit | b38ff79afeb5f64ee70e39c713df1cf21becdba3 (patch) | |
tree | 8b06a91c29de293514f35be19f31b23d20f02533 | |
parent | 59cad6271724b3578e3a779fb4501fc5175efb34 (diff) | |
download | heat-b38ff79afeb5f64ee70e39c713df1cf21becdba3.tar.gz |
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
(cherry picked from commit a21a29c8479e18e13df4be350743b169c311eb67)
-rw-r--r-- | heat/engine/clients/os/keystone/heat_keystoneclient.py | 10 | ||||
-rw-r--r-- | heat/tests/clients/test_heat_client.py | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/heat/engine/clients/os/keystone/heat_keystoneclient.py b/heat/engine/clients/os/keystone/heat_keystoneclient.py index adf4560f4..26cf969bf 100644 --- a/heat/engine/clients/os/keystone/heat_keystoneclient.py +++ b/heat/engine/clients/os/keystone/heat_keystoneclient.py @@ -120,6 +120,10 @@ class KsClientWrapper(object): 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: # Note we must specify the domain when getting the token @@ -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 diff --git a/heat/tests/clients/test_heat_client.py b/heat/tests/clients/test_heat_client.py index dfa2719e4..f653b2368 100644 --- a/heat/tests/clients/test_heat_client.py +++ b/heat/tests/clients/test_heat_client.py @@ -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 |