Quote output values for overcloudrc

If the overcloudrc values have spaces, we need to quote them to ensure
it gets parsed correctly.

Depends-On: https://review.opendev.org/#/c/699010/
Change-Id: I06995dee0ec7eabda16793aa42cae7197c4959f5
Closes-Bug: #1854868
(cherry picked from commit 5d44457ae1)
This commit is contained in:
Alex Schultz 2019-12-02 16:20:30 -07:00
parent f81e0bf426
commit 2756402cb1
2 changed files with 10 additions and 2 deletions

View File

@ -34,9 +34,11 @@ class OvercloudRcTest(base.TestCase):
] ]
} }
result = overcloudrc.create_overcloudrc(stack, "", "AdminPassword", result = overcloudrc.create_overcloudrc(stack, "foo", "AdminPassword",
"regionTwo") "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'])
self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc.v3']) self.assertIn("OS_PASSWORD=AdminPassword", result['overcloudrc.v3'])
self.assertIn("OS_IDENTITY_API_VERSION=3", result['overcloudrc']) self.assertIn("OS_IDENTITY_API_VERSION=3", result['overcloudrc'])

View File

@ -18,6 +18,11 @@ from six.moves import urllib
from tripleo_common import constants from tripleo_common import constants
try: # py3
from shlex import quote
except ImportError: # py2
from pipes import quote
def get_service_ips(stack): def get_service_ips(stack):
service_ips = {} service_ips = {}
@ -109,7 +114,8 @@ def create_overcloudrc(stack, no_proxy, admin_password, region_name):
overcloudrc = CLEAR_ENV overcloudrc = CLEAR_ENV
for key, value in rc_params.items(): 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 + line
overcloudrc = overcloudrc + CLOUDPROMPT overcloudrc = overcloudrc + CLOUDPROMPT