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:
parent
c6f07bf92d
commit
83fb96463c
@ -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)
|
||||
|
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user