Add user_domain_name to keystone client.

Use user_domain_name as a fallback if no user_domain_id is provided,
the default keystone password auth uses only user_domain_id, if not
provided aodh will fail getting a token, add the extra
user_domain_name parameter to the authentication.

Closes-Bug: #1831181

Change-Id: I170267ddbed31f63717e1c8fe119b2557afc812e
Signed-off-by: Jorge Niedbalski <jorge.niedbalski@canonical.com>
This commit is contained in:
Jorge Niedbalski 2019-05-31 15:37:07 -04:00
parent c6f07bf92d
commit 83fb96463c
2 changed files with 51 additions and 0 deletions

View File

@ -49,6 +49,7 @@ def get_trusted_client(conf, trust_id):
password=conf[CFG_GROUP].password,
auth_url=conf[CFG_GROUP].auth_url,
user_domain_id=conf[CFG_GROUP].user_domain_id,
user_domain_name=conf[CFG_GROUP].user_domain_name,
trust_id=trust_id)
sess = session.Session(auth=auth_plugin)

View File

@ -17,13 +17,17 @@ import json
import time
import mock
from oslo_config import cfg
from oslo_config import fixture as fixture_config
import oslo_messaging
import requests
import six.moves.urllib.parse as urlparse
from aodh import keystone_client
from aodh import notifier
from aodh import service
from aodh.tests import base as tests_base
@ -55,6 +59,52 @@ class TestAlarmNotifierService(tests_base.BaseTestCase):
self.service.terminate()
class TestKeystoneClient(tests_base.BaseTestCase):
def setUp(self):
super(TestKeystoneClient, self).setUp()
self.config = fixture_config.Config(
service.prepare_service(argv=[], config_files=[]))
self.config.setUp()
self.config.register_opts([
cfg.StrOpt('user_domain_id', default=""),
cfg.StrOpt('user_domain_name', default=""),
cfg.StrOpt('username', default="username"),
cfg.StrOpt('password', default="password"),
cfg.StrOpt('auth_url', default="testdomain")
], "service_credentials")
def test_get_trusted_client_domain_id(self):
self.config.config(
**{'group': "service_credentials",
'user_domain_id': "uuid-domain"})
client = keystone_client.get_trusted_client(
self.config.conf, "testing")
self.assertEqual(client.session.auth._user_domain_id, "uuid-domain")
self.assertEqual(client.session.auth._user_domain_name, '')
def test_get_trusted_client_domain_name(self):
self.config.config(
**{'group': "service_credentials",
'user_domain_name': "testdomain"})
client = keystone_client.get_trusted_client(
self.config.conf, "testing")
self.assertEqual(client.session.auth._user_domain_name, "testdomain")
self.assertEqual(client.session.auth._user_domain_id, '')
def test_get_trusted_client_domain(self):
self.config.config(**{'group': "service_credentials",
'user_domain_name': "testdomain",
'user_domain_id': "uuid-gen",
})
client = keystone_client.get_trusted_client(self.config.conf,
"testing")
self.assertEqual(client.session.auth._user_domain_name, "testdomain")
self.assertEqual(client.session.auth._user_domain_id, "uuid-gen")
class TestAlarmNotifier(tests_base.BaseTestCase):
def setUp(self):
super(TestAlarmNotifier, self).setUp()