diff options
-rwxr-xr-x | functest/utils/openstack_utils.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/functest/utils/openstack_utils.py b/functest/utils/openstack_utils.py index df6fb5d1a..10aaf5034 100755 --- a/functest/utils/openstack_utils.py +++ b/functest/utils/openstack_utils.py @@ -56,8 +56,19 @@ def get_credentials(service): """ creds = {} + keystone_api_version = os.getenv('OS_IDENTITY_API_VERSION') + if (keystone_api_version is None or + keystone_api_version == '2'): + keystone_v3 = False + tenant_env = 'OS_TENANT_NAME' + tenant = 'tenant_name' + else: + keystone_v3 = True + tenant_env = 'OS_PROJECT_NAME' + tenant = 'project_name' + # Check that the env vars exists: - envvars = ('OS_USERNAME', 'OS_PASSWORD', 'OS_AUTH_URL', 'OS_TENANT_NAME') + envvars = ('OS_USERNAME', 'OS_PASSWORD', 'OS_AUTH_URL', tenant_env) for envvar in envvars: if os.getenv(envvar) is None: raise MissingEnvVar(envvar) @@ -69,7 +80,6 @@ def get_credentials(service): tenant = "project_id" else: password = "password" - tenant = "tenant_name" # The most common way to pass these info to the script is to do it through # environment variables. @@ -77,8 +87,18 @@ def get_credentials(service): "username": os.environ.get("OS_USERNAME"), password: os.environ.get("OS_PASSWORD"), "auth_url": os.environ.get("OS_AUTH_URL"), - tenant: os.environ.get("OS_TENANT_NAME") + tenant: os.environ.get(tenant_env) }) + if keystone_v3: + if os.getenv('OS_USER_DOMAIN_NAME') is not None: + creds.update({ + "user_domain_name": os.getenv('OS_USER_DOMAIN_NAME') + }) + if os.getenv('OS_PROJECT_DOMAIN_NAME') is not None: + creds.update({ + "project_domain_name": os.getenv('OS_PROJECT_DOMAIN_NAME') + }) + if os.getenv('OS_ENDPOINT_TYPE') is not None: creds.update({ "endpoint_type": os.environ.get("OS_ENDPOINT_TYPE") |