fix: un-hardcode v3 credentials
During cloud discovery resource creation, the domain_name and user_domain_name information used to be hard coded to 'Default' which might not be the case for all credentials, admin or non-admin. This patch adds support for domain_name, project_domain_name and user_domain_name information by defaulting all of them to 'Default' however in the case they are available in the cloud credentials, using them during python-tempestconf runtime as well as rendering them correctly in the final tempest configuration. Story: 2010811 Task: 48330 Change-Id: I4355837f4d8d514524039df6f3989dbd69f2c700
This commit is contained in:
parent
915f9cea7a
commit
58e32bbe5a
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
||||
|
@ -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'))
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user