From 17e019a08e6e8fed7da6d0de403e5525d997095b Mon Sep 17 00:00:00 2001 From: Colleen Murphy Date: Tue, 29 Dec 2015 15:22:56 -0800 Subject: 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 --- os_client_config/config.py | 2 ++ os_client_config/tests/test_config.py | 7 +++++++ 2 files changed, 9 insertions(+) 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], -- cgit v1.2.1