diff --git a/tripleo_common/tests/utils/test_overcloudrc.py b/tripleo_common/tests/utils/test_overcloudrc.py index 055bbf000..3438094da 100644 --- a/tripleo_common/tests/utils/test_overcloudrc.py +++ b/tripleo_common/tests/utils/test_overcloudrc.py @@ -37,7 +37,37 @@ class OvercloudRcTest(base.TestCase): result = overcloudrc.create_overcloudrc(stack, "foo", "AdminPassword", "regionTwo") - self.assertIn("export no_proxy='foo,foo.com,[fd00::1]'", + self.assertIn("export no_proxy='[fd00::1],foo,foo.com'", + result['overcloudrc']) + self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc']) + + self.assertIn("export PYTHONWARNINGS='ignore:Certificate", + result['overcloudrc']) + self.assertIn("OS_IDENTITY_API_VERSION=3", result['overcloudrc']) + self.assertIn(overcloudrc.CLOUDPROMPT, result['overcloudrc']) + self.assertIn("OS_AUTH_TYPE=password", result['overcloudrc']) + self.assertIn("OS_AUTH_URL=http://foo.com:8000/", + result['overcloudrc']) + self.assertIn("OS_REGION_NAME=regionTwo", + result['overcloudrc']) + + def test_generate_overcloudrc_with_duplicated_no_proxy(self): + + stack = mock.MagicMock() + stack.stack_name = 'overcast' + stack.to_dict.return_value = { + "outputs": [ + {'output_key': 'KeystoneURL', + 'output_value': 'http://foo.com:8000/'}, + {'output_key': 'EndpointMap', + 'output_value': {'KeystoneAdmin': {'host': 'fd00::1'}}}, + ] + } + + result = overcloudrc.create_overcloudrc( + stack, "foo,foo.com", "AdminPassword", "regionTwo") + + self.assertIn("export no_proxy='[fd00::1],foo,foo.com'", result['overcloudrc']) self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc']) diff --git a/tripleo_common/utils/overcloudrc.py b/tripleo_common/utils/overcloudrc.py index 173da5ff4..fd36e36b5 100644 --- a/tripleo_common/utils/overcloudrc.py +++ b/tripleo_common/utils/overcloudrc.py @@ -76,8 +76,12 @@ def create_overcloudrc(stack, no_proxy, admin_password, region_name): overcloud_host = urllib.parse.urlparse(overcloud_endpoint).hostname overcloud_admin_vip = get_endpoint('KeystoneAdmin', stack) + no_proxy_list = no_proxy.split(',') no_proxy_list = map(common_utils.bracket_ipv6, - [no_proxy, overcloud_host, overcloud_admin_vip]) + no_proxy_list + [overcloud_host, overcloud_admin_vip]) + + # Remove duplicated entries + no_proxy_list = sorted(list(set(no_proxy_list))) rc_params = { 'OS_USERNAME': 'admin',