diff --git a/config_tempest/config_tempest.py b/config_tempest/config_tempest.py index c3089e57..28cddf28 100755 --- a/config_tempest/config_tempest.py +++ b/config_tempest/config_tempest.py @@ -989,8 +989,8 @@ def configure_horizon(conf): """Derive the horizon URIs from the identity's URI.""" uri = conf.get('identity', 'uri') u = urllib2.urlparse.urlparse(uri) - host = u.netloc.split(":")[0] - base = '%s://%s%s' % (u.scheme, host, '/dashboard') + base = '%s://%s%s' % (u.scheme, u.netloc.replace( + ':' + str(u.port), ''), '/dashboard') assert base.startswith('http:') or base.startswith('https:') has_horizon = True try: diff --git a/config_tempest/tests/test_config_tempest.py b/config_tempest/tests/test_config_tempest.py index c01ed64e..08d5a9bc 100644 --- a/config_tempest/tests/test_config_tempest.py +++ b/config_tempest/tests/test_config_tempest.py @@ -416,7 +416,7 @@ class TestConfigTempest(BaseConfigTempestTest): self.assertEqual(self.conf.get("boto", "ec2_url"), expected_url) self.assertEqual(self.conf.get("boto", "s3_url"), expected_url) - def test_configure_horizon(self): + def test_configure_horizon_ipv4(self): mock_function = mock.Mock(return_value=True) self.useFixture(MonkeyPatch('urllib2.urlopen', mock_function)) tool.configure_horizon(self.conf) @@ -426,6 +426,17 @@ class TestConfigTempest(BaseConfigTempestTest): self.assertEqual(self.conf.get('dashboard', 'login_url'), "http://172.16.52.151/dashboard/auth/login/") + def test_configure_horizon_ipv6(self): + mock_function = mock.Mock(return_value=True) + self.useFixture(MonkeyPatch('urllib2.urlopen', mock_function)) + self.conf.set('identity', 'uri', 'http://[::1]:5000/v3', priority=True) + tool.configure_horizon(self.conf) + self.assertEqual(self.conf.get('service_available', 'horizon'), "True") + self.assertEqual(self.conf.get('dashboard', 'dashboard_url'), + "http://[::1]/dashboard/") + self.assertEqual(self.conf.get('dashboard', 'login_url'), + "http://[::1]/dashboard/auth/login/") + def test_discovered_services(self): self._mock_get_identity_v3_extensions() tool.configure_discovered_services(self.conf, self.FAKE_SERVICES)