diff options
author | Colleen Murphy <colleen@gazlene.net> | 2015-12-29 15:22:56 -0800 |
---|---|---|
committer | Colleen Murphy <colleen@gazlene.net> | 2015-12-29 15:22:56 -0800 |
commit | 17e019a08e6e8fed7da6d0de403e5525d997095b (patch) | |
tree | bddc24b684c5f0c5acd95a69429d08eddd94d833 | |
parent | 0280db852190db66607c6d48c321274d5e99f4d2 (diff) | |
download | os-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.py | 2 | ||||
-rw-r--r-- | os_client_config/tests/test_config.py | 7 |
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], |