From edaeefac655ae87c7cee3bcdad490200b7151e68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Fri, 29 Jul 2022 18:44:41 +0200 Subject: [PATCH] Heat Launcher - bracket IPv6 in db connection URI In the database connection URI ensure IPv6 address is wrapped in brackets. Without this a port number is assumed and error is raised: ERROR: invalid literal for int() with base 10: 'dead:beef:4::3' Related-Bug: #1983121 Change-Id: I37fda2aa161120369d0e3734b9485c27cb59846c (cherry picked from commit ec8e13423449841ec701086d50e7414afc7792bf) --- tripleoclient/heat_launcher.py | 3 ++- tripleoclient/tests/test_heat_launcher.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tripleoclient/heat_launcher.py b/tripleoclient/heat_launcher.py index ebbda2f8d..ccb46853d 100644 --- a/tripleoclient/heat_launcher.py +++ b/tripleoclient/heat_launcher.py @@ -43,6 +43,7 @@ from tripleoclient.constants import (DEFAULT_HEAT_CONTAINER, DEFAULT_TEMPLATES_DIR, EPHEMERAL_HEAT_POD_NAME) from tripleoclient.exceptions import HeatPodMessageQueueException +from tripleoclient import utils as oooutils log = logging.getLogger(__name__) @@ -714,7 +715,7 @@ class HeatPodLauncher(HeatContainerLauncher): return ('mysql+pymysql://' 'heat:heat@{}/heat?read_default_file=' '/etc/my.cnf.d/tripleo.cnf&read_default_group=tripleo'.format( - self._get_ctlplane_vip())) + oooutils.bracket_ipv6(self._get_ctlplane_vip()))) def _get_ctlplane_vip(self): return self._decode(subprocess.check_output( diff --git a/tripleoclient/tests/test_heat_launcher.py b/tripleoclient/tests/test_heat_launcher.py index 12fe2b0c9..d1e429bbd 100644 --- a/tripleoclient/tests/test_heat_launcher.py +++ b/tripleoclient/tests/test_heat_launcher.py @@ -39,6 +39,9 @@ class TestHeatPodLauncher(base.TestCase): os.path.join(os.path.dirname(__file__), '..', '..', 'templates')).start() self.heat_dir = self.useFixture(fixtures.TempDir()).path + self.bracket_ipv6 = mock.patch( + 'tripleoclient.utils.bracket_ipv6').start() + self.bracket_ipv6.return_value = '1.1.1.1' self.addCleanup(mock.patch.stopall)