From c9eb2d44df7cafde1294123d66445ebef4cfb76d Mon Sep 17 00:00:00 2001 From: Lan Qi song Date: Mon, 25 May 2015 10:35:57 +0800 Subject: [PATCH] Disable rgw pollster when aws module not found This patch will raise PollsterPermanentError in rgw pollster to disable those pollsters when requests-aws module not found. Change-Id: I880ec77467fae026f25e61d04d7dd76e08834b08 Closes-Bug: #1424746 --- ceilometer/objectstore/rgw.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ceilometer/objectstore/rgw.py b/ceilometer/objectstore/rgw.py index 4efd33f82..e2c3ace56 100644 --- a/ceilometer/objectstore/rgw.py +++ b/ceilometer/objectstore/rgw.py @@ -23,7 +23,6 @@ import six.moves.urllib.parse as urlparse from ceilometer.agent import plugin_base from ceilometer.i18n import _ -from ceilometer.objectstore.rgw_client import RGWAdminClient as rgwclient from ceilometer import sample LOG = log.getLogger(__name__) @@ -91,7 +90,12 @@ class _Base(plugin_base.PollsterBase): if not endpoint: raise StopIteration() - rgw_client = rgwclient(endpoint, self.access_key, self.secret) + try: + from ceilometer.objectstore.rgw_client import RGWAdminClient + rgw_client = RGWAdminClient(endpoint, self.access_key, self.secret) + except ImportError as e: + raise plugin_base.PollsterPermanentError(e) + for t in tenants: api_method = 'get_%s' % self.METHOD yield t.id, getattr(rgw_client, api_method)(t.id)