From 77458d72140c0e2a4ffc608bb36f64249abf2777 Mon Sep 17 00:00:00 2001 From: helenyao Date: Thu, 8 Dec 2016 04:36:55 -0500 Subject: Update the logic to support both Newton and Mitaka JIRA: FUNCTEST-645 RC file is quite different between Newton and Mitaka. The change is to support both version. Change-Id: I846e8bc4b4c8b7caf4bcb26c8453e1fc5d1cc0f4 Signed-off-by: helenyao --- functest/utils/openstack_utils.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'functest/utils') diff --git a/functest/utils/openstack_utils.py b/functest/utils/openstack_utils.py index df6fb5d1..10aaf503 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") -- cgit 1.2.3-korg