Merge "Add support for admin parameters moving to auth"

This commit is contained in:
Luigi Toscano 2017-05-05 08:18:07 -04:00 committed by Gerrit Code Review
commit 548c657e9b
5 changed files with 84 additions and 5 deletions

View File

@ -149,8 +149,17 @@ def main():
else:
conf.set("identity", "uri_v3", uri.replace("v2.0", "v3"))
if args.non_admin:
conf.set("auth", "admin_username", "")
conf.set("auth", "admin_project_name", "")
conf.set("auth", "admin_password", "")
# To maintain backward compatibilty
# Moved to auth
conf.set("identity", "admin_username", "")
# To maintain backward compatibility
# renamed as admin_project_name in auth section
conf.set("identity", "admin_tenant_name", "")
# To maintain backward compatibility
# Moved to auth
conf.set("identity", "admin_password", "")
conf.set("auth", "allow_tenant_isolation", "False")
if args.use_test_accounts:
@ -364,10 +373,20 @@ class ClientManager(object):
tenant_name = os_client_creds.get('project_name')
if admin:
try:
username = conf.get_defaulted('identity', 'admin_username')
password = conf.get_defaulted('identity', 'admin_password')
tenant_name = conf.get_defaulted('identity',
'admin_tenant_name')
username = conf.get_defaulted('auth', 'admin_username')
if username is None:
username = conf.get_defaulted('identity', 'admin_username')
password = conf.get_defaulted('auth', 'admin_password')
if password is None:
password = conf.get_defaulted('identity', 'admin_password')
tenant_name = conf.get_defaulted('auth',
'admin_project_name')
if tenant_name is None:
tenant_name = conf.get_defaulted('identity',
'admin_tenant_name')
except cfg.NoSuchOptError:
LOG.warning(
'Could not load some identity admin options from %s',
@ -573,8 +592,11 @@ def create_tempest_users(tenants_client, roles_client, users_client, conf,
conf.get('identity', 'password'),
conf.get('identity', 'tenant_name'))
username = conf.get_defaulted('auth', 'admin_username')
if username is None:
username = conf.get_defaulted('identity', 'admin_username')
give_role_to_user(tenants_client, roles_client, users_client,
conf.get('identity', 'admin_username'),
username,
conf.get('identity', 'tenant_name'), role_name='admin')
# Prior to juno, and with earlier juno defaults, users needed to have

View File

@ -44,6 +44,23 @@ class BaseConfigTempestTest(base.BaseTestCase):
conf.set("auth", "allow_tenant_isolation", "False")
return conf
def _get_alt_conf(self, V2, V3):
"""Contains newer params in place of the deprecated params"""
conf = tool.TempestConf()
uri = "http://172.16.52.151:5000/"
conf.set("identity", "username", "demo")
conf.set("identity", "password", "secret")
conf.set("identity", "tenant_name", "demo")
conf.set("identity", "disable_ssl_certificate_validation", "true")
conf.set("identity", "auth_version", "v3")
conf.set("identity", "uri", uri + V2, priority=True)
conf.set("identity", "uri_v3", uri + V3)
conf.set("auth", "admin_username", "admin")
conf.set("auth", "admin_project_name", "adminTenant")
conf.set("auth", "admin_password", "adminPass")
conf.set("auth", "allow_tenant_isolation", "False")
return conf
@mock.patch('os_client_config.cloud_config.CloudConfig')
def _get_clients(self, conf, mock_args, admin=False):
"""Returns ClientManager instance"""

View File

@ -113,6 +113,23 @@ class TestClientManager(BaseConfigTempestTest):
admin_tenant_id = self.conf.get("identity", "admin_tenant_id")
self.assertEqual(admin_tenant_id, "my_fake_id")
def test_init_manager_as_admin_using_new_auth(self):
self.conf = self._get_alt_conf("v2.0", "v3")
self.client = self._get_clients(self.conf)
mock_function = mock.Mock(return_value={"id": "my_fake_id"})
func2mock = 'config_tempest.config_tempest.identity.get_tenant_by_name'
self.useFixture(MonkeyPatch(func2mock, mock_function))
self._get_clients(self.conf, admin=True)
# check if admin credentials were set
admin_tenant = self.conf.get("auth", "admin_project_name")
admin_password = self.conf.get("auth", "admin_password")
self.assertEqual(self.conf.get("auth", "admin_username"), "admin")
self.assertEqual(admin_tenant, "adminTenant")
self.assertEqual(admin_password, "adminPass")
# check if admin tenant id was set
admin_tenant_id = self.conf.get("identity", "admin_tenant_id")
self.assertEqual(admin_tenant_id, "my_fake_id")
class TestOsClientConfigSupport(BaseConfigTempestTest):

View File

@ -17,6 +17,16 @@ log_file=tempest.log
# Roles to assign to all users created by tempest (list value)
tempest_roles = _member_
# Administrative Username to use for Keystone API requests.
# (string value)
admin_username=admin
# Administrative Tenant name to use for Keystone API requests.
# (string value)
admin_project_name=admin
admin_domain_name=Default
[compute]
# Should the tests ssh to instances? (boolean value)
@ -53,14 +63,19 @@ alt_password=secrete
# Administrative Username to use for Keystone API requests.
# (string value)
# Parameter moved to auth section. Would be deprecated in future
# releases
admin_username=admin
# Administrative Tenant name to use for Keystone API requests.
# (string value)
# Parameter moved to auth section as admin_project_name. Would
# be deprecated in future releases
admin_tenant_name=admin
admin_domain_name=Default
disable_ssl_certificate_validation=true
[object-storage]

View File

@ -0,0 +1,8 @@
---
prelude: >
Add support for admin parameters being used from auth section
deprecations:
- |
Move admin_username to auth from identity
Move admin_tenant_name to auth from identity
Move admin_password to auth from identity