Fix deployment --fromenv option
* Updated config that created by fromenv option to new format Change-Id: I1e0a7dd1d12a97ff39cb9c4c243440510f5b2445
This commit is contained in:
parent
516b3628b7
commit
c7b48f3893
@ -88,8 +88,10 @@ class DeploymentCommands(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if fromenv:
|
if fromenv:
|
||||||
config = {"type": "ExistingCloud"}
|
# TODO(astudenov): move this to Credential plugin
|
||||||
config.update(envutils.get_creds_from_env_vars())
|
config = {
|
||||||
|
"type": "ExistingCloud",
|
||||||
|
"creds": {"openstack": envutils.get_creds_from_env_vars()}}
|
||||||
else:
|
else:
|
||||||
if not filename:
|
if not filename:
|
||||||
print("Either --filename or --fromenv is required.")
|
print("Either --filename or --fromenv is required.")
|
||||||
|
@ -203,9 +203,11 @@ class ExistingCloud(engine.Engine):
|
|||||||
builder_cls.validate(creds)
|
builder_cls.validate(creds)
|
||||||
|
|
||||||
def _get_creds(self, config):
|
def _get_creds(self, config):
|
||||||
|
# NOTE(astudenov): copy config to prevent compatibility changes
|
||||||
|
# from saving to database
|
||||||
|
config = copy.deepcopy(config)
|
||||||
if "creds" not in config:
|
if "creds" not in config:
|
||||||
# backward compatibility with old schema
|
# backward compatibility with old schema
|
||||||
config = copy.deepcopy(config)
|
|
||||||
del config["type"]
|
del config["type"]
|
||||||
creds_config = {"openstack": [config]}
|
creds_config = {"openstack": [config]}
|
||||||
else:
|
else:
|
||||||
|
@ -46,20 +46,23 @@ class DeploymentTestCase(unittest.TestCase):
|
|||||||
self.rally.env.update(utils.TEST_ENV)
|
self.rally.env.update(utils.TEST_ENV)
|
||||||
self.rally("deployment create --name t_create_env --fromenv")
|
self.rally("deployment create --name t_create_env --fromenv")
|
||||||
config = json.loads(self.rally("deployment config"))
|
config = json.loads(self.rally("deployment config"))
|
||||||
|
self.assertIn("creds", config)
|
||||||
|
self.assertIn("openstack", config["creds"])
|
||||||
|
oscreds = config["creds"]["openstack"]
|
||||||
self.assertEqual(utils.TEST_ENV["OS_USERNAME"],
|
self.assertEqual(utils.TEST_ENV["OS_USERNAME"],
|
||||||
config["admin"]["username"])
|
oscreds["admin"]["username"])
|
||||||
self.assertEqual(utils.TEST_ENV["OS_PASSWORD"],
|
self.assertEqual(utils.TEST_ENV["OS_PASSWORD"],
|
||||||
config["admin"]["password"])
|
oscreds["admin"]["password"])
|
||||||
if "project_name" in config["admin"]:
|
if "project_name" in oscreds["admin"]:
|
||||||
# keystone v3
|
# keystone v3
|
||||||
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
||||||
config["admin"]["project_name"])
|
oscreds["admin"]["project_name"])
|
||||||
else:
|
else:
|
||||||
# keystone v2
|
# keystone v2
|
||||||
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
||||||
config["admin"]["tenant_name"])
|
oscreds["admin"]["tenant_name"])
|
||||||
self.assertEqual(utils.TEST_ENV["OS_AUTH_URL"],
|
self.assertEqual(utils.TEST_ENV["OS_AUTH_URL"],
|
||||||
config["auth_url"])
|
oscreds["auth_url"])
|
||||||
|
|
||||||
def test_destroy(self):
|
def test_destroy(self):
|
||||||
self.rally.env.update(utils.TEST_ENV)
|
self.rally.env.update(utils.TEST_ENV)
|
||||||
@ -87,7 +90,7 @@ class DeploymentTestCase(unittest.TestCase):
|
|||||||
self.rally.env.update(utils.TEST_ENV)
|
self.rally.env.update(utils.TEST_ENV)
|
||||||
self.rally("deployment create --name t_create_env --fromenv")
|
self.rally("deployment create --name t_create_env --fromenv")
|
||||||
config = json.loads(self.rally("deployment config"))
|
config = json.loads(self.rally("deployment config"))
|
||||||
config["auth_url"] = "http://foo/"
|
config["creds"]["openstack"]["auth_url"] = "http://foo/"
|
||||||
file = utils.JsonTempFile(config)
|
file = utils.JsonTempFile(config)
|
||||||
self.rally("deployment recreate --deployment t_create_env "
|
self.rally("deployment recreate --deployment t_create_env "
|
||||||
"--filename %s" % file.filename)
|
"--filename %s" % file.filename)
|
||||||
|
@ -59,17 +59,21 @@ class DeploymentCommandsTestCase(test.TestCase):
|
|||||||
self.fake_api.deployment.create.assert_called_once_with(
|
self.fake_api.deployment.create.assert_called_once_with(
|
||||||
{
|
{
|
||||||
"type": "ExistingCloud",
|
"type": "ExistingCloud",
|
||||||
"auth_url": "fake_auth_url",
|
"creds": {
|
||||||
"region_name": "fake_region_name",
|
"openstack": {
|
||||||
"endpoint_type": "fake_endpoint_type",
|
"auth_url": "fake_auth_url",
|
||||||
"endpoint": "fake_endpoint",
|
"region_name": "fake_region_name",
|
||||||
"admin": {
|
"endpoint_type": "fake_endpoint_type",
|
||||||
"username": "fake_username",
|
"endpoint": "fake_endpoint",
|
||||||
"password": "fake_password",
|
"admin": {
|
||||||
"tenant_name": "fake_tenant_name"
|
"username": "fake_username",
|
||||||
},
|
"password": "fake_password",
|
||||||
"https_insecure": True,
|
"tenant_name": "fake_tenant_name"
|
||||||
"https_cacert": "fake_cacert"
|
},
|
||||||
|
"https_insecure": True,
|
||||||
|
"https_cacert": "fake_cacert"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"from_env"
|
"from_env"
|
||||||
)
|
)
|
||||||
@ -92,19 +96,23 @@ class DeploymentCommandsTestCase(test.TestCase):
|
|||||||
self.fake_api.deployment.create.assert_called_once_with(
|
self.fake_api.deployment.create.assert_called_once_with(
|
||||||
{
|
{
|
||||||
"type": "ExistingCloud",
|
"type": "ExistingCloud",
|
||||||
"auth_url": "fake_auth_url",
|
"creds": {
|
||||||
"region_name": "fake_region_name",
|
"openstack": {
|
||||||
"endpoint_type": "fake_endpoint_type",
|
"auth_url": "fake_auth_url",
|
||||||
"endpoint": "fake_endpoint",
|
"region_name": "fake_region_name",
|
||||||
"admin": {
|
"endpoint_type": "fake_endpoint_type",
|
||||||
"username": "fake_username",
|
"endpoint": "fake_endpoint",
|
||||||
"password": "fake_password",
|
"admin": {
|
||||||
"user_domain_name": "fake_udn",
|
"username": "fake_username",
|
||||||
"project_domain_name": "fake_pdn",
|
"password": "fake_password",
|
||||||
"project_name": "fake_tenant_name"
|
"user_domain_name": "fake_udn",
|
||||||
},
|
"project_domain_name": "fake_pdn",
|
||||||
"https_insecure": True,
|
"project_name": "fake_tenant_name"
|
||||||
"https_cacert": "fake_cacert"
|
},
|
||||||
|
"https_insecure": True,
|
||||||
|
"https_cacert": "fake_cacert"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"from_env"
|
"from_env"
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user