Don't throw exception when missing metrics
When querying data from datasource, it's possible to miss some data. In this case if we throw an exception, Audit will failed because of the exception. We should remove the exception and give the decision to the strategy. Change-Id: I1b0e6b78b3bba4df9ba16e093b3910aab1de922e Closes-Bug: #1847434 can not cherry picke from master because of code refactoring
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user