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
This commit is contained in:
liusheng 2016-03-08 09:41:22 +08:00
parent b4e91a250c
commit 78869fbcca
2 changed files with 14 additions and 0 deletions

View File

@ -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):

View File

@ -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