diff --git a/config_tempest/credentials.py b/config_tempest/credentials.py index ff7e0080..2d407c2e 100644 --- a/config_tempest/credentials.py +++ b/config_tempest/credentials.py @@ -39,6 +39,9 @@ class Credentials(object): self.username = self.get_credential('username') self.password = self.get_credential('password') self.project_name = self.get_credential('project_name') + self.domain_name = self.get_credential('domain_name') + self.user_domain_name = self.get_credential('user_domain_name') + self.project_domain_name = self.get_credential('project_domain_name') self.identity_version = self._get_identity_version() self.api_version = 3 if self.identity_version == "v3" else 2 self.identity_region = self._conf.get_defaulted('identity', 'region') @@ -122,9 +125,14 @@ class Credentials(object): creds_kwargs = {'username': self.username, 'password': self.password} if self.identity_version == 'v3': - creds_kwargs.update({'project_name': self.project_name, - 'domain_name': 'Default', - 'user_domain_name': 'Default'}) + creds_kwargs.update( + { + 'project_name': self.project_name, + 'domain_name': self.domain_name, + 'project_domain_name': self.project_domain_name, + 'user_domain_name': self.user_domain_name + } + ) else: creds_kwargs.update({'project_name': self.project_name}) return creds_kwargs diff --git a/config_tempest/main.py b/config_tempest/main.py index 83249f58..7c7496ed 100755 --- a/config_tempest/main.py +++ b/config_tempest/main.py @@ -85,6 +85,8 @@ def load_basic_defaults(conf): ("username", "demo_tempestconf"), ("password", "secrete"), ("project_name", "demo"), + ("project_domain_name", "Default"), + ("user_domain_name", "Default"), ("alt_username", "alt_demo_tempestconf"), ("alt_password", "secrete"), ("alt_project_name", "alt_demo") @@ -93,7 +95,9 @@ def load_basic_defaults(conf): ("tempest_roles", "member"), ("admin_username", "admin"), ("admin_project_name", "admin"), - ("admin_domain_name", "Default") + ("admin_domain_name", "Default"), + ("admin_project_domain_name", "Default"), + ("admin_user_domain_name", "Default") ], "object-storage": [ ("reseller_admin_role", "ResellerAdmin") @@ -447,6 +451,9 @@ def set_cloud_config_values(non_admin, cloud_creds, conf): 'project_name', cloud_creds['project_name']) conf.set('identity', 'password', cloud_creds['password']) + for cred in ['project_domain_name', 'user_domain_name']: + if cred in cloud_creds: + conf.set('auth', cred, cloud_creds[cred]) else: # admin credentials are under auth section conf.set('auth', 'admin_username', cloud_creds['username']) @@ -454,6 +461,12 @@ def set_cloud_config_values(non_admin, cloud_creds, conf): 'admin_project_name', cloud_creds['project_name']) conf.set('auth', 'admin_password', cloud_creds['password']) + for cred in [ + 'domain_name', 'project_domain_name', 'user_domain_name' + ]: + if cred in cloud_creds: + conf.set('auth', f'admin_{cred}', cloud_creds[cred]) + conf.set('identity', 'uri', cloud_creds['auth_url']) if 'region_name' in cloud_creds: diff --git a/config_tempest/tests/base.py b/config_tempest/tests/base.py index 7ee39f5b..f037b7b6 100644 --- a/config_tempest/tests/base.py +++ b/config_tempest/tests/base.py @@ -59,6 +59,9 @@ class BaseConfigTempestTest(base.BaseTestCase): conf.set("identity", "username", "demo") conf.set("identity", "password", "secret") conf.set("identity", "project_name", "demo") + conf.set("identity", "domain_name", "Default") + conf.set("identity", "project_domain_name", "Default") + conf.set("identity", "user_domain_name", "Default") conf.set("identity", "disable_ssl_certificate_validation", "true") conf.set("identity", "auth_version", "v3") conf.set("identity", "uri", uri + V2, priority=True) @@ -66,6 +69,8 @@ class BaseConfigTempestTest(base.BaseTestCase): conf.set("auth", "admin_username", "admin") conf.set("auth", "admin_project_name", "adminProject") conf.set("auth", "admin_password", "adminPass") + conf.set("auth", "admin_project_domain_name", "Default") + conf.set("auth", "admin_user_domain_name", "Default") conf.set("auth", "use_dynamic_credentials", "False", priority=True) return conf @@ -76,6 +81,9 @@ class BaseConfigTempestTest(base.BaseTestCase): conf.set("identity", "username", "demo") conf.set("identity", "password", "secret") conf.set("identity", "project_name", "demo") + conf.set("identity", "domain_name", "Default") + conf.set("identity", "project_domain_name", "Default") + conf.set("identity", "user_domain_name", "Default") conf.set("identity", "disable_ssl_certificate_validation", "true") conf.set("identity", "auth_version", "v3") conf.set("identity", "uri", uri + V2, priority=True) @@ -83,6 +91,9 @@ class BaseConfigTempestTest(base.BaseTestCase): conf.set("auth", "admin_username", "admin") conf.set("auth", "admin_project_name", "adminProject") conf.set("auth", "admin_password", "adminPass") + conf.set("auth", "admin_domain_name", "Default") + conf.set("auth", "admin_project_domain_name", "Default") + conf.set("auth", "admin_user_domain_name", "Default") conf.set("auth", "use_dynamic_credentials", "True", priority=True) return conf diff --git a/config_tempest/tests/test_config_tempest.py b/config_tempest/tests/test_config_tempest.py index 52e311d8..e330c374 100644 --- a/config_tempest/tests/test_config_tempest.py +++ b/config_tempest/tests/test_config_tempest.py @@ -51,7 +51,9 @@ class TestOsClientConfigSupport(BaseConfigTempestTest): 'username': 'cloud_user', 'password': 'cloud_pass', 'project_name': 'cloud_project', - 'auth_url': 'http://auth.url.com/' + 'auth_url': 'http://auth.url.com/', + 'user_domain_name': 'cloud_domain', + 'project_domain_name': 'cloud_domain', } if region_name: cloud_args.update(region_name=region_name) @@ -74,6 +76,10 @@ class TestOsClientConfigSupport(BaseConfigTempestTest): conf.get('auth', 'admin_password')) self.assertEqual(cloud_args['project_name'], conf.get('auth', 'admin_project_name')) + self.assertEqual(cloud_args['project_domain_name'], + conf.get('auth', 'admin_project_domain_name')) + self.assertEqual(cloud_args['user_domain_name'], + conf.get('auth', 'admin_user_domain_name')) if region_name: self.assertEqual(cloud_args['region_name'], conf.get('identity', 'region')) diff --git a/config_tempest/tests/test_credentials.py b/config_tempest/tests/test_credentials.py index 64459f9c..98a2eb18 100644 --- a/config_tempest/tests/test_credentials.py +++ b/config_tempest/tests/test_credentials.py @@ -63,7 +63,8 @@ class TestCredentials(BaseConfigTempestTest): 'password': 'secret', 'project_name': 'demo', 'domain_name': 'Default', - 'user_domain_name': 'Default' + 'user_domain_name': 'Default', + 'project_domain_name': 'Default', } self.assertEqual(self.creds._get_creds_kwargs(), expected_resp) @@ -97,7 +98,8 @@ class TestCredentials(BaseConfigTempestTest): username='name', project_name='project_name', domain_name='Default', - user_domain_name='Default') + user_domain_name='Default', + project_domain_name='Default') def test_get_auth_provider_keystone_v2(self): # check if method returns correct method - KeystoneV2AuthProvider