diff --git a/watcher/datasource/ceilometer.py b/watcher/datasource/ceilometer.py index c4b351625..6465ad60e 100644 --- a/watcher/datasource/ceilometer.py +++ b/watcher/datasource/ceilometer.py @@ -136,15 +136,15 @@ class CeilometerHelper(base.DataSourceBase): self.osc.reset_clients() self.ceilometer = self.osc.ceilometer() return f(*args, **kargs) - except Exception: - raise + except Exception as e: + LOG.exception(e) def check_availability(self): - try: - self.query_retry(self.ceilometer.resources.list) - except Exception: + status = self.query_retry(self.ceilometer.resources.list) + if status: + return 'available' + else: return 'not available' - return 'available' def query_sample(self, meter_name, query, limit=1): return self.query_retry(f=self.ceilometer.samples.list, @@ -162,9 +162,8 @@ class CeilometerHelper(base.DataSourceBase): def list_metrics(self): """List the user's meters.""" - try: - meters = self.query_retry(f=self.ceilometer.meters.list) - except Exception: + meters = self.query_retry(f=self.ceilometer.meters.list) + if not meters: return set() else: return meters diff --git a/watcher/datasource/gnocchi.py b/watcher/datasource/gnocchi.py index a41f79277..fb57deceb 100644 --- a/watcher/datasource/gnocchi.py +++ b/watcher/datasource/gnocchi.py @@ -24,7 +24,6 @@ from oslo_config import cfg from oslo_log import log from watcher.common import clients -from watcher.common import exception from watcher.common import utils as common_utils from watcher.datasource import base @@ -60,20 +59,18 @@ class GnocchiHelper(base.DataSourceBase): except Exception as e: LOG.exception(e) time.sleep(CONF.gnocchi_client.query_timeout) - raise exception.DataSourceNotAvailable(datasource='gnocchi') def check_availability(self): - try: - self.query_retry(self.gnocchi.status.get) - except Exception: + status = self.query_retry(self.gnocchi.status.get) + if status: + return 'available' + else: return 'not available' - return 'available' def list_metrics(self): """List the user's meters.""" - try: - response = self.query_retry(f=self.gnocchi.metric.list) - except Exception: + response = self.query_retry(f=self.gnocchi.metric.list) + if not response: return set() else: return set([metric['name'] for metric in response]) @@ -106,8 +103,9 @@ class GnocchiHelper(base.DataSourceBase): f=self.gnocchi.resource.search, **kwargs) if not resources: - raise exception.ResourceNotFound(name='gnocchi', - id=resource_id) + LOG.warning("The {0} resource {1} could not be " + "found".format(self.NAME, resource_id)) + return resource_id = resources[0]['id'] diff --git a/watcher/datasource/monasca.py b/watcher/datasource/monasca.py index 2847cc73f..3c1055fb2 100644 --- a/watcher/datasource/monasca.py +++ b/watcher/datasource/monasca.py @@ -19,11 +19,14 @@ import datetime from monascaclient import exc +from oslo_log import log from watcher.common import clients from watcher.common import exception from watcher.datasource import base +LOG = log.getLogger(__name__) + class MonascaHelper(base.DataSourceBase): @@ -53,8 +56,8 @@ class MonascaHelper(base.DataSourceBase): self.osc.reset_clients() self.monasca = self.osc.monasca() return f(*args, **kwargs) - except Exception: - raise + except Exception as e: + LOG.exception(e) def _format_time_params(self, start_time, end_time, period): """Format time-related params to the correct Monasca format @@ -78,11 +81,11 @@ class MonascaHelper(base.DataSourceBase): return start_timestamp, end_timestamp, period def check_availability(self): - try: - self.query_retry(self.monasca.metrics.list) - except Exception: + status = self.query_retry(self.monasca.metrics.list) + if status: + return 'available' + else: return 'not available' - return 'available' def list_metrics(self): # TODO(alexchadin): this method should be implemented in accordance to