diff options
author | liusheng <liusheng@huawei.com> | 2016-03-08 09:41:22 +0800 |
---|---|---|
committer | gordon chung <gord@live.ca> | 2016-03-11 17:40:29 +0000 |
commit | 5a56d6eb8fef918f227aaa42d1e5b2ad2972d00e (patch) | |
tree | e1debc81ddb61ff3d01fe1414d36e6aaee6cfbbb | |
parent | 48a2ba2b26e33c3429e85f3fd7594bf95640bd5c (diff) | |
download | python-ceilometerclient-5a56d6eb8fef918f227aaa42d1e5b2ad2972d00e.tar.gz |
Decouple ceilometerclient without aodh services running
Currently, the ceilometerclient will be broken if aodh services not
running, it will be worse if users don't want alarming service and they
must start the aodh services.
Change-Id: Idf7468f28cee001262b67b6e110357ffc971535a
Closes-Bug: #1550095
(cherry picked from commit 78869fbccaffdf625fc1ec4ed3108bb7de892720)
-rw-r--r-- | ceilometerclient/tests/unit/test_client.py | 10 | ||||
-rw-r--r-- | ceilometerclient/v2/client.py | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ceilometerclient/tests/unit/test_client.py b/ceilometerclient/tests/unit/test_client.py index 000f0e8..5233709 100644 --- a/ceilometerclient/tests/unit/test_client.py +++ b/ceilometerclient/tests/unit/test_client.py @@ -17,6 +17,7 @@ from keystoneclient.auth.identity import v3 as v3_auth from keystoneclient import exceptions as ks_exc from keystoneclient import session as ks_session import mock +import requests from ceilometerclient import client from ceilometerclient import exc @@ -218,6 +219,15 @@ class ClientTestWithAodh(ClientTest): self.assertEqual('True', (client.alarm_client.http_client. auth_plugin.opts['insecure'])) + def test_ceilometerclient_available_without_aodh_services_running(self): + env = FAKE_ENV.copy() + env.pop('auth_plugin', None) + with mock.patch('ceilometerclient.openstack.common.apiclient.client.' + 'HTTPClient.client_request') as mocked_request: + mocked_request.side_effect = requests.exceptions.ConnectionError + ceiloclient = client.get_client(2, **env) + self.assertIsInstance(ceiloclient, v2client.Client) + class ClientAuthTest(utils.BaseTestCase): diff --git a/ceilometerclient/v2/client.py b/ceilometerclient/v2/client.py index f613cec..21a01b4 100644 --- a/ceilometerclient/v2/client.py +++ b/ceilometerclient/v2/client.py @@ -16,6 +16,8 @@ # under the License. import copy +import requests + from ceilometerclient import client as ceiloclient from ceilometerclient.v2 import alarms from ceilometerclient.v2 import capabilities @@ -125,3 +127,5 @@ class Client(object): return None except kc_exc.EndpointNotFound: return None + except requests.exceptions.ConnectionError: + return None |