summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliusheng <liusheng@huawei.com>2016-03-08 09:41:22 +0800
committerliusheng <liusheng@huawei.com>2016-03-08 09:52:36 +0800
commit78869fbccaffdf625fc1ec4ed3108bb7de892720 (patch)
tree954f8b5100abe9c0107c94382227ceb674e16e46
parentb4e91a250ccd3b34f0d44732aaedee380f258e08 (diff)
downloadpython-ceilometerclient-78869fbccaffdf625fc1ec4ed3108bb7de892720.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
-rw-r--r--ceilometerclient/tests/unit/test_client.py10
-rw-r--r--ceilometerclient/v2/client.py4
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 3aaf9b1..9620c4a 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