summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2015-12-12 13:03:41 -0500
committerMonty Taylor <mordred@inaugust.com>2015-12-21 09:37:30 -0600
commit16166c03c27fe73896a1717ad9a145a466bc0afd (patch)
tree40bee89b89331dcdccbee41d50e78e09e1539200
parentdbdf8e4248f4ee54598bfbb7abbfabf13742fbe2 (diff)
downloados-client-config-16166c03c27fe73896a1717ad9a145a466bc0afd.tar.gz
Pass endpoint override to constructors
Also, the variable name from keystoneauth is "*-endpoint-override" ... so we need to respond to that. Respond to the old -endpoint for compat reasons. Then let's actually pass in the value. Change-Id: I6f413b02e0d2b167a4ee30494b2c91c67124b219
-rw-r--r--os_client_config/cloud_config.py6
-rw-r--r--os_client_config/tests/test_cloud_config.py22
2 files changed, 23 insertions, 5 deletions
diff --git a/os_client_config/cloud_config.py b/os_client_config/cloud_config.py
index 6b3b5d9..2f3c94a 100644
--- a/os_client_config/cloud_config.py
+++ b/os_client_config/cloud_config.py
@@ -164,8 +164,9 @@ class CloudConfig(object):
return self.config.get(key, None)
def get_endpoint(self, service_type):
- key = _make_key('endpoint', service_type)
- return self.config.get(key, None)
+ key = _make_key('endpoint_override', service_type)
+ old_key = _make_key('endpoint', service_type)
+ return self.config.get(key, self.config.get(old_key, None))
@property
def prefer_ipv6(self):
@@ -310,6 +311,7 @@ class CloudConfig(object):
session=self.get_session(),
service_name=self.get_service_name(service_key),
service_type=self.get_service_type(service_key),
+ endpoint_override=self.get_endpoint(service_key),
region_name=self.region)
if service_key == 'image':
diff --git a/os_client_config/tests/test_cloud_config.py b/os_client_config/tests/test_cloud_config.py
index 322973a..3412254 100644
--- a/os_client_config/tests/test_cloud_config.py
+++ b/os_client_config/tests/test_cloud_config.py
@@ -25,8 +25,9 @@ from os_client_config.tests import base
fake_config_dict = {'a': 1, 'os_b': 2, 'c': 3, 'os_c': 4}
fake_services_dict = {
'compute_api_version': '2',
- 'compute_endpoint': 'http://compute.example.com',
+ 'compute_endpoint_override': 'http://compute.example.com',
'compute_region_name': 'region-bl',
+ 'telemetry_endpoint': 'http://telemetry.example.com',
'interface': 'public',
'image_service_type': 'mage',
'identity_interface': 'admin',
@@ -189,14 +190,24 @@ class TestCloudConfig(base.TestCase):
verify=True, cert=None, timeout=9)
@mock.patch.object(ksa_session, 'Session')
- def test_override_session_endpoint(self, mock_session):
+ def test_override_session_endpoint_override(self, 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())
self.assertEqual(
cc.get_session_endpoint('compute'),
- fake_services_dict['compute_endpoint'])
+ fake_services_dict['compute_endpoint_override'])
+
+ @mock.patch.object(ksa_session, 'Session')
+ def test_override_session_endpoint(self, 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())
+ self.assertEqual(
+ 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):
@@ -297,6 +308,7 @@ class TestCloudConfig(base.TestCase):
'2',
service_name=None,
endpoint='http://example.com',
+ endpoint_override=None,
region_name='region-al',
interface='public',
session=mock.ANY,
@@ -316,6 +328,7 @@ class TestCloudConfig(base.TestCase):
mock_client.assert_called_with(
'2.0',
endpoint_type='public',
+ endpoint_override=None,
region_name='region-al',
service_type='network',
session=mock.ANY,
@@ -333,6 +346,7 @@ class TestCloudConfig(base.TestCase):
mock_client.assert_called_with(
'2',
endpoint_type='public',
+ endpoint_override='http://compute.example.com',
region_name='region-al',
service_type='compute',
session=mock.ANY,
@@ -351,6 +365,7 @@ class TestCloudConfig(base.TestCase):
'2.0',
endpoint='http://example.com/v2',
endpoint_type='admin',
+ endpoint_override=None,
region_name='region-al',
service_type='identity',
session=mock.ANY,
@@ -370,6 +385,7 @@ class TestCloudConfig(base.TestCase):
'3',
endpoint='http://example.com',
endpoint_type='admin',
+ endpoint_override=None,
region_name='region-al',
service_type='identity',
session=mock.ANY,