Merge "cloud_config:get_session_endpoint: catch Keystone EndpointNotFound"
This commit is contained in:
commit
6c252384c2
|
@ -16,6 +16,7 @@ import importlib
|
|||
import warnings
|
||||
|
||||
from keystoneauth1 import adapter
|
||||
import keystoneauth1.exceptions.catalog
|
||||
from keystoneauth1 import plugin
|
||||
from keystoneauth1 import session
|
||||
import requestsexceptions
|
||||
|
@ -251,11 +252,18 @@ class CloudConfig(object):
|
|||
if service_key == 'identity':
|
||||
endpoint = session.get_endpoint(interface=plugin.AUTH_INTERFACE)
|
||||
else:
|
||||
endpoint = session.get_endpoint(
|
||||
service_type=self.get_service_type(service_key),
|
||||
service_name=self.get_service_name(service_key),
|
||||
interface=self.get_interface(service_key),
|
||||
region_name=self.region)
|
||||
args = {
|
||||
'service_type': self.get_service_type(service_key),
|
||||
'service_name': self.get_service_name(service_key),
|
||||
'interface': self.get_interface(service_key),
|
||||
'region_name': self.region
|
||||
}
|
||||
try:
|
||||
endpoint = session.get_endpoint(**args)
|
||||
except keystoneauth1.exceptions.catalog.EndpointNotFound:
|
||||
self.log.warning("Keystone catalog entry not found (%s)",
|
||||
args)
|
||||
endpoint = None
|
||||
return endpoint
|
||||
|
||||
def get_legacy_client(
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
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
|
||||
|
@ -235,6 +236,14 @@ class TestCloudConfig(base.TestCase):
|
|||
region_name='region-al',
|
||||
service_type='orchestration')
|
||||
|
||||
@mock.patch.object(cloud_config.CloudConfig, 'get_session')
|
||||
def test_session_endpoint_not_found(self, mock_get_session):
|
||||
exc_to_raise = ksa_exceptions.catalog.EndpointNotFound
|
||||
mock_get_session.return_value.get_endpoint.side_effect = exc_to_raise
|
||||
cc = cloud_config.CloudConfig(
|
||||
"test1", "region-al", {}, auth_plugin=mock.Mock())
|
||||
self.assertIsNone(cc.get_session_endpoint('notfound'))
|
||||
|
||||
@mock.patch.object(cloud_config.CloudConfig, 'get_api_version')
|
||||
@mock.patch.object(cloud_config.CloudConfig, 'get_auth_args')
|
||||
@mock.patch.object(cloud_config.CloudConfig, 'get_session_endpoint')
|
||||
|
|
Loading…
Reference in New Issue