Fix keystone credentials

Using project_domain_id as project_domain_name doesn't work and prevents
users who has project_domain_id set (but not name) to use Tobiko as
they get "bad credentials error".

This change fix it by adding a separate parameter for project_domain_id.

Change-Id: I742d17b6ac869d28f13a0ac344f8dcbc13c40220
This commit is contained in:
abregman 2019-06-04 11:23:11 +03:00 committed by Federico Ressi
parent a9e05e110c
commit 7d952d2744
2 changed files with 11 additions and 2 deletions

View File

@ -36,6 +36,7 @@ class KeystoneCredentials(collections.namedtuple(
'domain_name',
'user_domain_name',
'project_domain_name',
'project_domain_id',
'trust_id'])):
def to_dict(self):
@ -73,6 +74,7 @@ def keystone_credentials(api_version=None,
domain_name=None,
user_domain_name=None,
project_domain_name=None,
project_domain_id=None,
trust_id=None,
cls=KeystoneCredentials):
return cls(api_version=api_version,
@ -83,6 +85,7 @@ def keystone_credentials(api_version=None,
domain_name=domain_name,
user_domain_name=user_domain_name,
project_domain_name=project_domain_name,
project_domain_id=project_domain_id,
trust_id=trust_id)
@ -128,7 +131,8 @@ class EnvironKeystoneCredentialsFixture(tobiko.SharedFixture):
config.get_env('OS_USER_DOMAIN_NAME') or
config.get_env('OS_USER_DOMAIN_ID'))
project_domain_name = (
config.get_env('OS_PROJECT_DOMAIN_NAME') or
config.get_env('OS_PROJECT_DOMAIN_NAME'))
project_domain_id = (
config.get_env('OS_PROJECT_DOMAIN_ID'))
trust_id = config.get_env('OS_TRUST_ID')
credentials = keystone_credentials(
@ -140,6 +144,7 @@ class EnvironKeystoneCredentialsFixture(tobiko.SharedFixture):
domain_name=domain_name,
user_domain_name=user_domain_name,
project_domain_name=project_domain_name,
project_domain_id=project_domain_id,
trust_id=trust_id)
try:
credentials.validate()
@ -181,6 +186,7 @@ class ConfigKeystoneCredentialsFixture(tobiko.SharedFixture):
domain_name=conf.domain_name,
user_domain_name=conf.user_domain_name,
project_domain_name=conf.project_domain_name,
project_domain_id=conf.project_domain_id,
trust_id=conf.trust_id)
try:
credentials.validate()

View File

@ -44,6 +44,9 @@ def register_tobiko_options(conf):
cfg.StrOpt('project_domain_name',
default=None,
help="Project domain name"),
cfg.StrOpt('project_domain_id',
default=None,
help="Project domain ID"),
cfg.StrOpt('trust_id',
default=None,
help="Trust ID for trust scoping.")])