Merge "Prevent duplicated hosts in overcloudrc no_proxy"

This commit is contained in:
Zuul 2020-04-03 21:21:04 +00:00 committed by Gerrit Code Review
commit e79568f2bb
2 changed files with 36 additions and 2 deletions

View File

@ -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'])

View File

@ -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',