summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2017-03-27 09:16:35 -0500
committerMonty Taylor <mordred@inaugust.com>2017-03-28 07:24:26 -0500
commit01ff292e078206e487751228be4a7062ba0c6048 (patch)
treed01cfb3631f141572961eb118b00c873b7f8e9bb
parentc9c1a8d8d3e1e1a160c13f9b07620e65525a9dd0 (diff)
downloados-client-config-01ff292e078206e487751228be4a7062ba0c6048.tar.gz
Stop special-casing idenity catalog lookups
We have a special case to work around a thing we're pretty sure keystoneclient used to do but apparently doesn't do anymore. Remove the workaround. Co-Authored-By: Jamie Lennox <jamielennox@gmail.com> Change-Id: I873ad91816150b593d4aef13dcd1520e8c91b22a
-rw-r--r--os_client_config/cloud_config.py42
-rw-r--r--os_client_config/tests/test_cloud_config.py13
2 files changed, 17 insertions, 38 deletions
diff --git a/os_client_config/cloud_config.py b/os_client_config/cloud_config.py
index 99ef2ba..3ba3541 100644
--- a/os_client_config/cloud_config.py
+++ b/os_client_config/cloud_config.py
@@ -18,7 +18,6 @@ import warnings
from keystoneauth1 import adapter
import keystoneauth1.exceptions.catalog
-from keystoneauth1 import plugin
from keystoneauth1 import session
import requestsexceptions
@@ -272,31 +271,24 @@ class CloudConfig(object):
'service_name': self.get_service_name(service_key),
'region_name': self.region
}
- if service_key == 'identity':
- # setting interface in kwargs dict even though we don't use kwargs
- # dict here just for ease of warning text later
- kwargs['interface'] = plugin.AUTH_INTERFACE
- session = self.get_session()
- endpoint = session.get_endpoint(interface=kwargs['interface'])
+ kwargs['interface'] = self.get_interface(service_key)
+ if service_key == 'volume' and not self.get_api_version('volume'):
+ # If we don't have a configured cinder version, we can't know
+ # to request a different service_type
+ min_version = float(min_version or 1)
+ max_version = float(max_version or 3)
+ min_major = math.trunc(float(min_version))
+ max_major = math.trunc(float(max_version))
+ versions = range(int(max_major) + 1, int(min_major), -1)
+ service_types = []
+ for version in versions:
+ if version == 1:
+ service_types.append('volume')
+ else:
+ service_types.append('volumev{v}'.format(v=version))
else:
- kwargs['interface'] = self.get_interface(service_key)
- if service_key == 'volume' and not self.get_api_version('volume'):
- # If we don't have a configured cinder version, we can't know
- # to request a different service_type
- min_version = float(min_version or 1)
- max_version = float(max_version or 3)
- min_major = math.trunc(float(min_version))
- max_major = math.trunc(float(max_version))
- versions = range(int(max_major) + 1, int(min_major), -1)
- service_types = []
- for version in versions:
- if version == 1:
- service_types.append('volume')
- else:
- service_types.append('volumev{v}'.format(v=version))
- else:
- service_types = [self.get_service_type(service_key)]
- endpoint = self._get_highest_endpoint(service_types, kwargs)
+ service_types = [self.get_service_type(service_key)]
+ endpoint = self._get_highest_endpoint(service_types, kwargs)
if not endpoint:
self.log.warning(
"Keystone catalog entry not found ("
diff --git a/os_client_config/tests/test_cloud_config.py b/os_client_config/tests/test_cloud_config.py
index 3c1ae1f..cb6d91c 100644
--- a/os_client_config/tests/test_cloud_config.py
+++ b/os_client_config/tests/test_cloud_config.py
@@ -13,7 +13,6 @@
import copy
from keystoneauth1 import exceptions as ksa_exceptions
-from keystoneauth1 import plugin as ksa_plugin
from keystoneauth1 import session as ksa_session
import mock
@@ -220,18 +219,6 @@ class TestCloudConfig(base.TestCase):
fake_services_dict['telemetry_endpoint'])
@mock.patch.object(cloud_config.CloudConfig, 'get_session')
- def test_session_endpoint_identity(self, mock_get_session):
- mock_session = mock.Mock()
- mock_get_session.return_value = mock_session
- config_dict = defaults.get_defaults()
- config_dict.update(fake_services_dict)
- cc = cloud_config.CloudConfig(
- "test1", "region-al", config_dict, auth_plugin=mock.Mock())
- cc.get_session_endpoint('identity')
- mock_session.get_endpoint.assert_called_with(
- interface=ksa_plugin.AUTH_INTERFACE)
-
- @mock.patch.object(cloud_config.CloudConfig, 'get_session')
def test_session_endpoint(self, mock_get_session):
mock_session = mock.Mock()
mock_get_session.return_value = mock_session