summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliusheng <liusheng@huawei.com>2016-03-08 09:41:22 +0800
committergordon chung <gord@live.ca>2016-03-11 17:40:29 +0000
commit5a56d6eb8fef918f227aaa42d1e5b2ad2972d00e (patch)
treee1debc81ddb61ff3d01fe1414d36e6aaee6cfbbb
parent48a2ba2b26e33c3429e85f3fd7594bf95640bd5c (diff)
downloadpython-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.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 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