Quoting openrc values

Issue fixed: openrc file created after rally deployment create does
not quote the values for the environment variables. If values contains
spaces, string is truncated.

Change-Id: I6ea53c4d5ed25d8afb1c2db9d9141c41d16c52f4
Closes-bug: 1536800
This commit is contained in:
Luz 2016-02-18 14:44:47 -08:00
parent 41b1f11653
commit a7e3bbf34e
2 changed files with 21 additions and 21 deletions

View File

@ -253,24 +253,24 @@ class DeploymentCommands(object):
def _update_openrc_deployment_file(self, deployment, credential):
openrc_path = os.path.expanduser("~/.rally/openrc-%s" % deployment)
with open(openrc_path, "w+") as env_file:
env_file.write("export OS_AUTH_URL=%(auth_url)s\n"
"export OS_USERNAME=%(username)s\n"
"export OS_PASSWORD=%(password)s\n"
"export OS_TENANT_NAME=%(tenant_name)s\n"
env_file.write("export OS_AUTH_URL='%(auth_url)s'\n"
"export OS_USERNAME='%(username)s'\n"
"export OS_PASSWORD='%(password)s'\n"
"export OS_TENANT_NAME='%(tenant_name)s'\n"
% credential)
if credential.get("region_name"):
env_file.write("export OS_REGION_NAME=%s\n" %
env_file.write("export OS_REGION_NAME='%s'\n" %
credential["region_name"])
if credential.get("endpoint"):
env_file.write("export OS_ENDPOINT=%s\n" %
env_file.write("export OS_ENDPOINT='%s'\n" %
credential["endpoint"])
if credential.get("https_cacert"):
env_file.write("export OS_CACERT=%s\n" %
env_file.write("export OS_CACERT='%s'\n" %
credential["https_cacert"])
if re.match(r"^/v3/?$", parse.urlparse(
credential["auth_url"]).path) is not None:
env_file.write("export OS_USER_DOMAIN_NAME=%s\n"
"export OS_PROJECT_DOMAIN_NAME=%s\n" %
env_file.write("export OS_USER_DOMAIN_NAME='%s'\n"
"export OS_PROJECT_DOMAIN_NAME='%s'\n" %
(credential["user_domain_name"],
credential["project_domain_name"]))
expanded_path = os.path.expanduser("~/.rally/openrc")

View File

@ -244,12 +244,12 @@ class DeploymentCommandsTestCase(test.TestCase):
"~/.rally/globals"),
"RALLY_DEPLOYMENT", "%s\n" % deployment_id)
mock_file.return_value.write.assert_any_call(
"export OS_ENDPOINT=fake_endpoint\n")
"export OS_ENDPOINT='fake_endpoint'\n")
mock_file.return_value.write.assert_any_call(
"export OS_AUTH_URL=fake_auth_url\n"
"export OS_USERNAME=fake_username\n"
"export OS_PASSWORD=fake_password\n"
"export OS_TENANT_NAME=fake_tenant_name\n")
"export OS_AUTH_URL='fake_auth_url'\n"
"export OS_USERNAME='fake_username'\n"
"export OS_PASSWORD='fake_password'\n"
"export OS_TENANT_NAME='fake_tenant_name'\n")
mock_symlink.assert_called_once_with(
os.path.expanduser("~/.rally/openrc-%s" % deployment_id),
os.path.expanduser("~/.rally/openrc"))
@ -285,15 +285,15 @@ class DeploymentCommandsTestCase(test.TestCase):
"~/.rally/globals"),
"RALLY_DEPLOYMENT", "%s\n" % deployment_id)
mock_file.return_value.write.assert_any_call(
"export OS_ENDPOINT=fake_endpoint\n")
"export OS_ENDPOINT='fake_endpoint'\n")
mock_file.return_value.write.assert_any_call(
"export OS_AUTH_URL=http://localhost:5000/v3\n"
"export OS_USERNAME=fake_username\n"
"export OS_PASSWORD=fake_password\n"
"export OS_TENANT_NAME=fake_tenant_name\n")
"export OS_AUTH_URL='http://localhost:5000/v3'\n"
"export OS_USERNAME='fake_username'\n"
"export OS_PASSWORD='fake_password'\n"
"export OS_TENANT_NAME='fake_tenant_name'\n")
mock_file.return_value.write.assert_any_call(
"export OS_USER_DOMAIN_NAME=fake_user_domain\n"
"export OS_PROJECT_DOMAIN_NAME=fake_project_domain\n")
"export OS_USER_DOMAIN_NAME='fake_user_domain'\n"
"export OS_PROJECT_DOMAIN_NAME='fake_project_domain'\n")
mock_symlink.assert_called_once_with(
os.path.expanduser("~/.rally/openrc-%s" % deployment_id),
os.path.expanduser("~/.rally/openrc"))