[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_PASSWORD
|
||||
OS_AUTH_URL
|
||||
OS_TENANT_NAME
|
||||
OS_TENANT_NAME or OS_PROJECT_NAME
|
||||
OS_ENDPOINT_TYPE or OS_INTERFACE
|
||||
OS_ENDPOINT
|
||||
OS_REGION_NAME
|
||||
OS_CACERT
|
||||
OS_INSECURE
|
||||
OS_IDENTITY_API_VERSION
|
||||
|
||||
All other deployment engines need more complex configuration
|
||||
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")
|
||||
project_domain_name = os.environ.get("OS_PROJECT_DOMAIN_NAME")
|
||||
if user_domain_name or project_domain_name:
|
||||
# it is Keystone v3 and it has another config schem
|
||||
identity_api_version = os.environ.get(
|
||||
"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"]["user_domain_name"] = user_domain_name or ""
|
||||
creds["admin"]["project_domain_name"] = project_domain_name or ""
|
||||
creds["admin"]["user_domain_name"] = user_domain_name or "Default"
|
||||
project_domain_name = project_domain_name or "Default"
|
||||
creds["admin"]["project_domain_name"] = project_domain_name
|
||||
|
||||
return creds
|
||||
|
||||
|
@ -50,8 +50,14 @@ class DeploymentTestCase(unittest.TestCase):
|
||||
config["admin"]["username"])
|
||||
self.assertEqual(utils.TEST_ENV["OS_PASSWORD"],
|
||||
config["admin"]["password"])
|
||||
self.assertEqual(utils.TEST_ENV["OS_TENANT_NAME"],
|
||||
config["admin"]["tenant_name"])
|
||||
if "project_name" in config["admin"]:
|
||||
# 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"],
|
||||
config["auth_url"])
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user