[CI][cli] use env variable to determine KeystoneV3
`rally deployment create --fromenv` tries to guess keystone version by presence of "USER_DOMAIN_NAME" or "PROJECT_DOMAIN_NAME" environment variables. But this cariable can be missed. Let's check special variable for keystone version - OS_IDENTITY_API_VERSION or IDENTITY_API_VERSION. Also, this patch fixes DeploymentTestCase.test_config functional test to support keystone v3 Change-Id: Ia75109fb8388b7b02af764c5f93ef5bd04f00676
This commit is contained in:
parent
bd96f85a4e
commit
e2c72288ae
@ -66,12 +66,13 @@ class DeploymentCommands(object):
|
|||||||
OS_USERNAME
|
OS_USERNAME
|
||||||
OS_PASSWORD
|
OS_PASSWORD
|
||||||
OS_AUTH_URL
|
OS_AUTH_URL
|
||||||
OS_TENANT_NAME
|
OS_TENANT_NAME or OS_PROJECT_NAME
|
||||||
OS_ENDPOINT_TYPE or OS_INTERFACE
|
OS_ENDPOINT_TYPE or OS_INTERFACE
|
||||||
OS_ENDPOINT
|
OS_ENDPOINT
|
||||||
OS_REGION_NAME
|
OS_REGION_NAME
|
||||||
OS_CACERT
|
OS_CACERT
|
||||||
OS_INSECURE
|
OS_INSECURE
|
||||||
|
OS_IDENTITY_API_VERSION
|
||||||
|
|
||||||
All other deployment engines need more complex configuration
|
All other deployment engines need more complex configuration
|
||||||
data, so it should be stored in a configuration file.
|
data, so it should be stored in a configuration file.
|
||||||
|
@ -108,11 +108,16 @@ def get_creds_from_env_vars():
|
|||||||
|
|
||||||
user_domain_name = os.environ.get("OS_USER_DOMAIN_NAME")
|
user_domain_name = os.environ.get("OS_USER_DOMAIN_NAME")
|
||||||
project_domain_name = os.environ.get("OS_PROJECT_DOMAIN_NAME")
|
project_domain_name = os.environ.get("OS_PROJECT_DOMAIN_NAME")
|
||||||
if user_domain_name or project_domain_name:
|
identity_api_version = os.environ.get(
|
||||||
# it is Keystone v3 and it has another config schem
|
"OS_IDENTITY_API_VERSION", os.environ.get("IDENTITY_API_VERSION"))
|
||||||
|
if (identity_api_version == "3" or
|
||||||
|
(identity_api_version is None and
|
||||||
|
(user_domain_name or project_domain_name))):
|
||||||
|
# it is Keystone v3 and it has another config scheme
|
||||||
creds["admin"]["project_name"] = creds["admin"].pop("tenant_name")
|
creds["admin"]["project_name"] = creds["admin"].pop("tenant_name")
|
||||||
creds["admin"]["user_domain_name"] = user_domain_name or ""
|
creds["admin"]["user_domain_name"] = user_domain_name or "Default"
|
||||||
creds["admin"]["project_domain_name"] = project_domain_name or ""
|
project_domain_name = project_domain_name or "Default"
|
||||||
|
creds["admin"]["project_domain_name"] = project_domain_name
|
||||||
|
|
||||||
return creds
|
return creds
|
||||||
|
|
||||||
|
@ -50,8 +50,14 @@ class DeploymentTestCase(unittest.TestCase):
|
|||||||
config["admin"]["username"])
|
config["admin"]["username"])
|
||||||
self.assertEqual(utils.TEST_ENV["OS_PASSWORD"],
|
self.assertEqual(utils.TEST_ENV["OS_PASSWORD"],
|
||||||
config["admin"]["password"])
|
config["admin"]["password"])
|
||||||
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
if "project_name" in config["admin"]:
|
||||||
config["admin"]["tenant_name"])
|
# keystone v3
|
||||||
|
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
||||||
|
config["admin"]["project_name"])
|
||||||
|
else:
|
||||||
|
# keystone v2
|
||||||
|
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
||||||
|
config["admin"]["tenant_name"])
|
||||||
self.assertEqual(utils.TEST_ENV["OS_AUTH_URL"],
|
self.assertEqual(utils.TEST_ENV["OS_AUTH_URL"],
|
||||||
config["auth_url"])
|
config["auth_url"])
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user