Fix wrong initialization of AuthPlugin for keystone v3
Ceilometerclient doesn't pass domain related arguments to AuthPlugin, which will cause keystoneclient v3 cannot be used properly. Change-Id: I2554a36f214c0eae61b7ba6b8580c41b8f8c6370 Closes-Bug: #1391122
This commit is contained in:
@@ -261,6 +261,10 @@ def get_client(version, **kwargs):
|
||||
'cert_file': kwargs.get('os_cert'),
|
||||
'key_file': kwargs.get('os_key'),
|
||||
'token': kwargs.get('os_auth_token'),
|
||||
'user_domain_name': kwargs.get('os_user_domain_name'),
|
||||
'user_domain_id': kwargs.get('os_user_domain_id'),
|
||||
'project_domain_name': kwargs.get('os_project_domain_name'),
|
||||
'project_domain_id': kwargs.get('os_project_domain_id'),
|
||||
}
|
||||
|
||||
cli_kwargs.update(kwargs)
|
||||
@@ -279,5 +283,9 @@ def get_auth_plugin(endpoint, **kwargs):
|
||||
username=kwargs.get('username'),
|
||||
password=kwargs.get('password'),
|
||||
tenant_name=kwargs.get('tenant_name'),
|
||||
user_domain_name=kwargs.get('user_domain_name'),
|
||||
user_domain_id=kwargs.get('user_domain_id'),
|
||||
project_domain_name=kwargs.get('project_domain_name'),
|
||||
project_domain_id=kwargs.get('project_domain_id')
|
||||
)
|
||||
return auth_plugin
|
||||
|
||||
@@ -20,13 +20,17 @@ from ceilometerclient.tests import utils
|
||||
from ceilometerclient.v1 import client as v1client
|
||||
from ceilometerclient.v2 import client as v2client
|
||||
|
||||
FAKE_ENV = {'username': 'username',
|
||||
'password': 'password',
|
||||
'tenant_name': 'tenant_name',
|
||||
'auth_url': 'http://no.where',
|
||||
'ceilometer_url': 'http://no.where',
|
||||
'auth_plugin': 'fake_auth',
|
||||
'token': '1234'}
|
||||
FAKE_ENV = {
|
||||
'username': 'username',
|
||||
'password': 'password',
|
||||
'tenant_name': 'tenant_name',
|
||||
'auth_url': 'http://no.where',
|
||||
'ceilometer_url': 'http://no.where',
|
||||
'auth_plugin': 'fake_auth',
|
||||
'token': '1234',
|
||||
'user_domain_name': 'default',
|
||||
'project_domain_name': 'default',
|
||||
}
|
||||
|
||||
|
||||
class ClientTest(utils.BaseTestCase):
|
||||
@@ -69,6 +73,29 @@ class ClientTest(utils.BaseTestCase):
|
||||
c = self.create_client(env, api_version=2, endpoint='fake_endpoint')
|
||||
self.assertIsInstance(c.auth_plugin, client.AuthPlugin)
|
||||
|
||||
def test_client_without_auth_plugin_keystone_v3(self):
|
||||
env = FAKE_ENV.copy()
|
||||
del env['auth_plugin']
|
||||
expected = {
|
||||
'username': 'username',
|
||||
'endpoint': None,
|
||||
'tenant_name': 'tenant_name',
|
||||
'service_type': None,
|
||||
'token': '1234',
|
||||
'endpoint_type': None,
|
||||
'auth_url': 'http://no.where',
|
||||
'tenant_id': None,
|
||||
'cacert': None,
|
||||
'password': 'password',
|
||||
'user_domain_name': 'default',
|
||||
'user_domain_id': None,
|
||||
'project_domain_name': 'default',
|
||||
'project_domain_id': None,
|
||||
}
|
||||
with mock.patch('ceilometerclient.client.AuthPlugin') as auth_plugin:
|
||||
self.create_client(env, api_version=2)
|
||||
auth_plugin.assert_called_with(**expected)
|
||||
|
||||
def test_client_with_auth_plugin(self):
|
||||
c = self.create_client(FAKE_ENV, api_version=2)
|
||||
self.assertIsInstance(c.auth_plugin, str)
|
||||
|
||||
Reference in New Issue
Block a user