diff options
author | Monty Taylor <mordred@inaugust.com> | 2015-12-12 13:03:41 -0500 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2015-12-21 09:37:30 -0600 |
commit | 16166c03c27fe73896a1717ad9a145a466bc0afd (patch) | |
tree | 40bee89b89331dcdccbee41d50e78e09e1539200 | |
parent | dbdf8e4248f4ee54598bfbb7abbfabf13742fbe2 (diff) | |
download | os-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.py | 6 | ||||
-rw-r--r-- | os_client_config/tests/test_cloud_config.py | 22 |
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, |