Merge "Stop passing attr to keystoneclient when there's no filter_value"
This commit is contained in:
commit
5e13c3e845
@ -388,7 +388,7 @@ def get_auth_keystone(auth_url, user, key, os_options, **kwargs):
|
|||||||
insecure = kwargs.get('insecure', False)
|
insecure = kwargs.get('insecure', False)
|
||||||
timeout = kwargs.get('timeout', None)
|
timeout = kwargs.get('timeout', None)
|
||||||
auth_version = kwargs.get('auth_version', '2.0')
|
auth_version = kwargs.get('auth_version', '2.0')
|
||||||
debug = logger.isEnabledFor(logging.DEBUG) and True or False
|
debug = logger.isEnabledFor(logging.DEBUG)
|
||||||
|
|
||||||
ksclient, exceptions = _import_keystone_client(auth_version)
|
ksclient, exceptions = _import_keystone_client(auth_version)
|
||||||
|
|
||||||
@ -419,11 +419,14 @@ def get_auth_keystone(auth_url, user, key, os_options, **kwargs):
|
|||||||
service_type = os_options.get('service_type') or 'object-store'
|
service_type = os_options.get('service_type') or 'object-store'
|
||||||
endpoint_type = os_options.get('endpoint_type') or 'publicURL'
|
endpoint_type = os_options.get('endpoint_type') or 'publicURL'
|
||||||
try:
|
try:
|
||||||
|
filter_kwargs = {}
|
||||||
|
if os_options.get('region_name'):
|
||||||
|
filter_kwargs['attr'] = 'region'
|
||||||
|
filter_kwargs['filter_value'] = os_options['region_name']
|
||||||
endpoint = _ksclient.service_catalog.url_for(
|
endpoint = _ksclient.service_catalog.url_for(
|
||||||
attr='region',
|
|
||||||
filter_value=os_options.get('region_name'),
|
|
||||||
service_type=service_type,
|
service_type=service_type,
|
||||||
endpoint_type=endpoint_type)
|
endpoint_type=endpoint_type,
|
||||||
|
**filter_kwargs)
|
||||||
except exceptions.EndpointNotFound:
|
except exceptions.EndpointNotFound:
|
||||||
raise ClientException('Endpoint for %s not found - '
|
raise ClientException('Endpoint for %s not found - '
|
||||||
'have you specified a region?' % service_type)
|
'have you specified a region?' % service_type)
|
||||||
|
@ -1450,6 +1450,7 @@ class TestKeystoneOptions(MockHttpTest):
|
|||||||
self.assertTrue(flag in actual_args)
|
self.assertTrue(flag in actual_args)
|
||||||
self.assertTrue(actual_args[flag])
|
self.assertTrue(actual_args[flag])
|
||||||
|
|
||||||
|
check_attr = True
|
||||||
# check args passed to ServiceCatalog.url_for() method
|
# check args passed to ServiceCatalog.url_for() method
|
||||||
self.assertEqual(len(fake_ks.client.service_catalog.calls), 1)
|
self.assertEqual(len(fake_ks.client.service_catalog.calls), 1)
|
||||||
actual_args = fake_ks.client.service_catalog.calls[0]
|
actual_args = fake_ks.client.service_catalog.calls[0]
|
||||||
@ -1458,10 +1459,16 @@ class TestKeystoneOptions(MockHttpTest):
|
|||||||
key = key.replace('-', '_')
|
key = key.replace('-', '_')
|
||||||
if key == 'region_name':
|
if key == 'region_name':
|
||||||
key = 'filter_value'
|
key = 'filter_value'
|
||||||
|
if expected is None:
|
||||||
|
check_attr = False
|
||||||
|
self.assertNotIn(key, actual_args)
|
||||||
|
self.assertNotIn('attr', actual_args)
|
||||||
|
continue
|
||||||
self.assertIn(key, actual_args)
|
self.assertIn(key, actual_args)
|
||||||
self.assertEqual(expected, actual_args[key],
|
self.assertEqual(expected, actual_args[key],
|
||||||
'Expected %s for key %s, found %s'
|
'Expected %s for key %s, found %s'
|
||||||
% (expected, key, actual_args[key]))
|
% (expected, key, actual_args[key]))
|
||||||
|
if check_attr:
|
||||||
key, v = 'attr', 'region'
|
key, v = 'attr', 'region'
|
||||||
self.assertIn(key, actual_args)
|
self.assertIn(key, actual_args)
|
||||||
self.assertEqual(v, actual_args[key],
|
self.assertEqual(v, actual_args[key],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user