diff --git a/rally/cli/envutils.py b/rally/cli/envutils.py index 3faba7e40b..3fd5670b1e 100644 --- a/rally/cli/envutils.py +++ b/rally/cli/envutils.py @@ -96,7 +96,10 @@ def get_creds_from_env_vars(): "admin": { "username": os.environ["OS_USERNAME"], "password": os.environ["OS_PASSWORD"], - "tenant_name": get_project_name_from_env() + "tenant_name": get_project_name_from_env(), + "user_domain_name": os.environ.get("OS_USER_DOMAIN_NAME", ""), + "project_domain_name": os.environ.get("OS_PROJECT_DOMAIN_NAME", + ""), }, "endpoint_type": get_endpoint_type_from_env(), "endpoint": os.environ.get("OS_ENDPOINT"), diff --git a/rally/osclients.py b/rally/osclients.py index 81c2612f4d..a4eb9a3dae 100644 --- a/rally/osclients.py +++ b/rally/osclients.py @@ -647,16 +647,18 @@ class Swift(OSClient): service_type=self.choose_service_type(service_type), endpoint_type=self.credential.endpoint_type, region_name=self.credential.region_name) + auth_info = self._get_auth_info( + user_key="user", + password_key="key", + auth_url_key="authurl", + project_name_key="tenant_name") client = swift.Connection(retries=1, preauthurl=object_api_url, preauthtoken=kc.auth_token, insecure=self.credential.insecure, cacert=self.credential.cacert, - **self._get_auth_info( - user_key="user", - password_key="key", - auth_url_key="authurl", - project_name_key="tenant_name") + user=auth_info["user"], + tenant_name=auth_info["tenant_name"], ) return client @@ -771,6 +773,8 @@ class Clients(object): creds["admin"]["password"], creds["admin"]["tenant_name"], endpoint_type=creds["endpoint_type"], + user_domain_name=creds["admin"].get("user_domain_name"), + project_domain_name=creds["admin"].get("project_domain_name"), endpoint=creds["endpoint"], region_name=creds["region_name"], https_cacert=creds["https_cacert"], diff --git a/tests/unit/cli/commands/test_deployment.py b/tests/unit/cli/commands/test_deployment.py index 2faddff199..1a88b33482 100644 --- a/tests/unit/cli/commands/test_deployment.py +++ b/tests/unit/cli/commands/test_deployment.py @@ -50,6 +50,8 @@ class DeploymentCommandsTestCase(test.TestCase): "OS_TENANT_NAME": "fake_tenant_name", "OS_REGION_NAME": "fake_region_name", "OS_ENDPOINT_TYPE": "fake_endpoint_typeURL", + "OS_PROJECT_DOMAIN_NAME": "fake_pdn", + "OS_USER_DOMAIN_NAME": "fake_udn", "OS_ENDPOINT": "fake_endpoint", "OS_INSECURE": "True", "OS_CACERT": "fake_cacert", @@ -68,6 +70,8 @@ class DeploymentCommandsTestCase(test.TestCase): "admin": { "username": "fake_username", "password": "fake_password", + "user_domain_name": "fake_udn", + "project_domain_name": "fake_pdn", "tenant_name": "fake_tenant_name" }, "https_insecure": True, diff --git a/tests/unit/cli/test_envutils.py b/tests/unit/cli/test_envutils.py index 4bfc37c717..47d874e6b7 100644 --- a/tests/unit/cli/test_envutils.py +++ b/tests/unit/cli/test_envutils.py @@ -112,6 +112,8 @@ class EnvUtilsTestCase(test.TestCase): "OS_ENDPOINT_TYPE": "fake_endpoint_typeURL", "OS_ENDPOINT": "fake_endpoint", "OS_INSECURE": "True", + "OS_PROJECT_DOMAIN_NAME": "fake_pdn", + "OS_USER_DOMAIN_NAME": "fake_udn", "OS_CACERT": "fake_cacert"}) def test_get_creds_from_env_vars(self): expected_creds = { @@ -119,6 +121,8 @@ class EnvUtilsTestCase(test.TestCase): "admin": { "username": "fake_username", "password": "fake_password", + "user_domain_name": "fake_udn", + "project_domain_name": "fake_pdn", "tenant_name": "fake_tenant_name" }, "endpoint_type": "fake_endpoint_type", diff --git a/tests/unit/test_osclients.py b/tests/unit/test_osclients.py index 6d733d9332..6981850795 100644 --- a/tests/unit/test_osclients.py +++ b/tests/unit/test_osclients.py @@ -684,9 +684,7 @@ class OSClientsTestCase(test.TestCase): "insecure": False, "cacert": None, "user": self.credential.username, - "key": self.credential.password, "tenant_name": self.credential.tenant_name, - "authurl": self.credential.auth_url } mock_swift.client.Connection.assert_called_once_with(**kw) self.assertEqual(self.clients.cache["swift"], fake_swift)