diff --git a/ceilometerclient/client.py b/ceilometerclient/client.py index 73772be1..8762a980 100644 --- a/ceilometerclient/client.py +++ b/ceilometerclient/client.py @@ -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 diff --git a/ceilometerclient/tests/test_client.py b/ceilometerclient/tests/test_client.py index faed8ee3..3873f739 100644 --- a/ceilometerclient/tests/test_client.py +++ b/ceilometerclient/tests/test_client.py @@ -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)