Don't assume pass_version_arg=False for network

Excitingly, one of the places where we hard-code a workaround for
a differently behaving client is not needed. The Client in neutron
that takes a version arg is in neutronclient.neutron.client. Also,
pass the version arg as positional when we pass it, as some of the
clients (neutron) require it, and all accept it.

Change-Id: Ifcbaab782173b95a678af0b2792a1194b198b687
This commit is contained in:
Monty Taylor 2015-11-05 02:12:40 -05:00
parent 059d314ba4
commit d373969b98
2 changed files with 13 additions and 12 deletions

View File

@ -238,10 +238,8 @@ class CloudConfig(object):
interface_key = 'interface'
else:
interface_key = 'endpoint_type'
if service_key == 'network':
pass_version_arg = False
constructor_args = dict(
constructor_kwargs = dict(
session=self.get_session(),
service_name=self.get_service_name(service_key),
service_type=self.get_service_type(service_key),
@ -254,13 +252,15 @@ class CloudConfig(object):
# they necessarily have glanceclient installed
from glanceclient.common import utils as glance_utils
endpoint, version = glance_utils.strip_version(endpoint)
constructor_args['endpoint'] = endpoint
constructor_args.update(kwargs)
constructor_args[interface_key] = interface
constructor_kwargs['endpoint'] = endpoint
constructor_kwargs.update(kwargs)
constructor_kwargs[interface_key] = interface
constructor_args = []
if pass_version_arg:
version = self.get_api_version(service_key)
constructor_args['version'] = version
return client_class(**constructor_args)
constructor_args.append(version)
return client_class(*constructor_args, **constructor_kwargs)
def _get_swift_client(self, client_class, **kwargs):
session = self.get_session()

View File

@ -24,7 +24,7 @@ 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_api_version': '2',
'compute_endpoint': 'http://compute.example.com',
'compute_region_name': 'region-bl',
'interface': 'public',
@ -139,7 +139,7 @@ class TestCloudConfig(base.TestCase):
self.assertEqual('region-al', cc.get_region_name('image'))
self.assertEqual('region-bl', cc.get_region_name('compute'))
self.assertEqual(None, cc.get_api_version('image'))
self.assertEqual(2, cc.get_api_version('compute'))
self.assertEqual('2', cc.get_api_version('compute'))
self.assertEqual('mage', cc.get_service_type('image'))
self.assertEqual('compute', cc.get_service_type('compute'))
self.assertEqual('http://compute.example.com',
@ -235,7 +235,7 @@ class TestCloudConfig(base.TestCase):
"test1", "region-al", config_dict, auth_plugin=mock.Mock())
cc.get_legacy_client('image', mock_client)
mock_client.assert_called_with(
version='2',
'2',
service_name=None,
endpoint='http://example.com',
region_name='region-al',
@ -255,6 +255,7 @@ class TestCloudConfig(base.TestCase):
"test1", "region-al", config_dict, auth_plugin=mock.Mock())
cc.get_legacy_client('network', mock_client)
mock_client.assert_called_with(
'2.0',
endpoint_type='public',
region_name='region-al',
service_type='network',
@ -271,7 +272,7 @@ class TestCloudConfig(base.TestCase):
"test1", "region-al", config_dict, auth_plugin=mock.Mock())
cc.get_legacy_client('compute', mock_client)
mock_client.assert_called_with(
version=2,
'2',
endpoint_type='public',
region_name='region-al',
service_type='compute',