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
This commit is contained in:
Monty Taylor 2017-03-27 09:16:35 -05:00
parent c9c1a8d8d3
commit 01ff292e07
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
2 changed files with 17 additions and 38 deletions

View File

@ -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 ("

View File

@ -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
@ -219,18 +218,6 @@ class TestCloudConfig(base.TestCase):
cc.get_session_endpoint('telemetry'),
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()