summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColleen Murphy <colleen@gazlene.net>2015-12-29 15:22:56 -0800
committerColleen Murphy <colleen@gazlene.net>2015-12-29 15:22:56 -0800
commit17e019a08e6e8fed7da6d0de403e5525d997095b (patch)
treebddc24b684c5f0c5acd95a69429d08eddd94d833
parent0280db852190db66607c6d48c321274d5e99f4d2 (diff)
downloados-client-config-17e019a08e6e8fed7da6d0de403e5525d997095b.tar.gz
Munge region_name to '' if set to None
The openstack ansible module defaults to setting region_name to None[1]. With region_name explicitly set, _get_region won't use '' as a default and therefor has unexpected behavior if the user does not set the region explicitly. This is apparent in bifrost[2] which does not use any cloud config file and does not set the region explicitly. This patch checks whether None was passed in as the region name and sets it to '' so that it can continue processing it as though it was not set. [1] https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/openstack.py#L41 [2] http://paste.openstack.org/show/482831/ Change-Id: I22cce104930f74dd479e704cc1a941dc945b75de
-rw-r--r--os_client_config/config.py2
-rw-r--r--os_client_config/tests/test_config.py7
2 files changed, 9 insertions, 0 deletions
diff --git a/os_client_config/config.py b/os_client_config/config.py
index 89015cc..d5b1ab5 100644
--- a/os_client_config/config.py
+++ b/os_client_config/config.py
@@ -395,6 +395,8 @@ class OpenStackConfig(object):
return [self._expand_region_name(new_cloud['region_name'])]
def _get_region(self, cloud=None, region_name=''):
+ if region_name is None:
+ region_name = ''
if not cloud:
return self._expand_region_name(region_name)
diff --git a/os_client_config/tests/test_config.py b/os_client_config/tests/test_config.py
index 3ea6690..b2ee9bb 100644
--- a/os_client_config/tests/test_config.py
+++ b/os_client_config/tests/test_config.py
@@ -246,6 +246,13 @@ class TestConfig(base.TestCase):
region_name='override-region')
self.assertEqual(region, {'name': 'override-region', 'values': {}})
+ def test_get_region_region_is_none(self):
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml],
+ secure_files=[self.no_yaml])
+ region = c._get_region(cloud='_test-cloud_no_region', region_name=None)
+ self.assertEqual(region, {'name': '', 'values': {}})
+
def test_get_region_region_set(self):
c = config.OpenStackConfig(config_files=[self.cloud_yaml],
vendor_files=[self.vendor_yaml],