From e6938afd5c6bdf800b8945a30c162b594a96b0c3 Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Mon, 2 Dec 2019 16:20:30 -0700 Subject: [PATCH] Quote output values for overcloudrc If the overcloudrc values have spaces, we need to quote them to ensure it gets parsed correctly. Change-Id: I06995dee0ec7eabda16793aa42cae7197c4959f5 Closes-Bug: #1854868 (cherry picked from commit 5d44457ae16ebb3298143e04dbf0c0c5e5249553) --- tripleo_common/tests/utils/test_overcloudrc.py | 4 +++- tripleo_common/utils/overcloudrc.py | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tripleo_common/tests/utils/test_overcloudrc.py b/tripleo_common/tests/utils/test_overcloudrc.py index e3d280617..41e6c4f75 100644 --- a/tripleo_common/tests/utils/test_overcloudrc.py +++ b/tripleo_common/tests/utils/test_overcloudrc.py @@ -34,9 +34,11 @@ class OvercloudRcTest(base.TestCase): ] } - result = overcloudrc.create_overcloudrc(stack, "", "AdminPassword", + result = overcloudrc.create_overcloudrc(stack, "foo", "AdminPassword", "regionTwo") + self.assertIn("export no_proxy='foo,foo.com,[fd00::1]'", + result['overcloudrc']) self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc']) self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc.v3']) self.assertIn("OS_IDENTITY_API_VERSION=3", result['overcloudrc']) diff --git a/tripleo_common/utils/overcloudrc.py b/tripleo_common/utils/overcloudrc.py index 236337931..b042c68cb 100644 --- a/tripleo_common/utils/overcloudrc.py +++ b/tripleo_common/utils/overcloudrc.py @@ -18,6 +18,11 @@ from six.moves import urllib from tripleo_common import constants +try: # py3 + from shlex import quote +except ImportError: # py2 + from pipes import quote + def get_service_ips(stack): service_ips = {} @@ -109,7 +114,8 @@ def create_overcloudrc(stack, no_proxy, admin_password, region_name): overcloudrc = CLEAR_ENV for key, value in rc_params.items(): - line = "export %(key)s=%(value)s\n" % {'key': key, 'value': value} + line = "export %(key)s=%(value)s\n" % {'key': key, + 'value': quote(value)} overcloudrc = overcloudrc + line overcloudrc = overcloudrc + CLOUDPROMPT