Merge "Fix exception handling for python3"
This commit is contained in:
commit
9f64836e1a
@ -300,7 +300,7 @@ class MetricsRepository(metrics_repository.AbstractMetricsRepository):
|
||||
return json_metric_list
|
||||
|
||||
except InfluxDBClientError as ex:
|
||||
if ex.message.startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
if str(ex).startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
return []
|
||||
else:
|
||||
LOG.exception(ex)
|
||||
@ -585,8 +585,8 @@ class MetricsRepository(metrics_repository.AbstractMetricsRepository):
|
||||
|
||||
except exceptions.RepositoryException as ex:
|
||||
|
||||
if (isinstance(ex.message, InfluxDBClientError) and
|
||||
ex.message.message.startswith(MEASUREMENT_NOT_FOUND_MSG)):
|
||||
if (len(ex.args) and isinstance(ex.args[0], InfluxDBClientError) and
|
||||
str(ex.args[0]).startswith(MEASUREMENT_NOT_FOUND_MSG)):
|
||||
|
||||
return json_measurement_list
|
||||
|
||||
@ -598,7 +598,7 @@ class MetricsRepository(metrics_repository.AbstractMetricsRepository):
|
||||
|
||||
except InfluxDBClientError as ex:
|
||||
|
||||
if ex.message.startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
if str(ex).startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
|
||||
return json_measurement_list
|
||||
|
||||
@ -696,8 +696,8 @@ class MetricsRepository(metrics_repository.AbstractMetricsRepository):
|
||||
|
||||
except exceptions.RepositoryException as ex:
|
||||
|
||||
if (isinstance(ex.message, InfluxDBClientError) and
|
||||
ex.message.message.startswith(MEASUREMENT_NOT_FOUND_MSG)):
|
||||
if (len(ex.args) and isinstance(ex.args[0], InfluxDBClientError) and
|
||||
str(ex.args[0]).startswith(MEASUREMENT_NOT_FOUND_MSG)):
|
||||
|
||||
return json_statistics_list
|
||||
|
||||
@ -709,7 +709,7 @@ class MetricsRepository(metrics_repository.AbstractMetricsRepository):
|
||||
|
||||
except InfluxDBClientError as ex:
|
||||
|
||||
if ex.message.startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
if str(ex).startswith(MEASUREMENT_NOT_FOUND_MSG):
|
||||
|
||||
return json_statistics_list
|
||||
|
||||
|
@ -204,7 +204,7 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Period can only be set with webhooks", ex.message)
|
||||
self.assertEqual("Period can only be set with webhooks", str(ex))
|
||||
|
||||
def test_validation_for_webhook(self):
|
||||
notification = {"name": "MyWebhook", "type": "WEBHOOK", "address": "http://somedomain.com"}
|
||||
@ -226,21 +226,21 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Address //somedomain.com does not have URL scheme", ex.message)
|
||||
self.assertEqual("Address //somedomain.com does not have URL scheme", str(ex))
|
||||
|
||||
def test_validation_exception_for_webhook_no_netloc(self):
|
||||
notification = {"name": "MyWebhook", "type": "WEBHOOK", "address": "http://"}
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Address http:// does not have network location", ex.message)
|
||||
self.assertEqual("Address http:// does not have network location", str(ex))
|
||||
|
||||
def test_validation_exception_for_webhook_invalid_scheme(self):
|
||||
notification = {"name": "MyWebhook", "type": "WEBHOOK", "address": "ftp://somedomain.com"}
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Address ftp://somedomain.com scheme is not in ['http', 'https']", ex.message)
|
||||
self.assertEqual("Address ftp://somedomain.com scheme is not in ['http', 'https']", str(ex))
|
||||
|
||||
def test_validation_exception_for_webhook_invalid_period(self):
|
||||
notification = {"name": "MyWebhook", "type": "WEBHOOK", "address": "//somedomain.com",
|
||||
@ -248,7 +248,7 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("10 is not a valid period, not in [0, 60]", ex.message)
|
||||
self.assertEqual("10 is not a valid period, not in [0, 60]", str(ex))
|
||||
|
||||
def test_validation_for_pagerduty(self):
|
||||
notification = {"name": "MyPagerduty", "type": "PAGERDUTY",
|
||||
@ -264,7 +264,7 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Period can only be set with webhooks", ex.message)
|
||||
self.assertEqual("Period can only be set with webhooks", str(ex))
|
||||
|
||||
def test_validation_for_max_name_address(self):
|
||||
name = "A" * 250
|
||||
@ -300,7 +300,7 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("expected int for dictionary value @ data['period']", ex.message)
|
||||
self.assertEqual("expected int for dictionary value @ data['period']", str(ex))
|
||||
|
||||
def test_validation_exception_for_invalid_period_non_int(self):
|
||||
notification = {"name": "MyWebhook", "type": "WEBHOOK", "address": "//somedomain.com",
|
||||
@ -308,14 +308,14 @@ class TestNotificationValidation(base.BaseTestCase):
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods)
|
||||
self.assertEqual("Period zero must be a valid integer", ex.message)
|
||||
self.assertEqual("Period zero must be a valid integer", str(ex))
|
||||
|
||||
def test_validation_exception_for_missing_period(self):
|
||||
notification = {"name": "MyEmail", "type": "EMAIL", "address": "name@domain."}
|
||||
ex = self.assertRaises(schemas_exceptions.ValidationException,
|
||||
schemas_notifications.parse_and_validate,
|
||||
notification, valid_periods, require_all=True)
|
||||
self.assertEqual("Period is required", ex.message)
|
||||
self.assertEqual("Period is required", str(ex))
|
||||
|
||||
|
||||
class TestAlarmDefinitionValidation(base.BaseTestCase):
|
||||
|
@ -372,7 +372,7 @@ class AlarmDefinitions(alarm_definitions_api_v2.AlarmDefinitionsV2API,
|
||||
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
def _alarm_definition_update_or_patch(self, tenant_id,
|
||||
definition_id,
|
||||
@ -620,7 +620,7 @@ def get_query_alarm_definition_name(alarm_definition, return_none=False):
|
||||
raise Exception("Missing name")
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_alarm_definition_expression(alarm_definition,
|
||||
@ -636,7 +636,7 @@ def get_query_alarm_definition_expression(alarm_definition,
|
||||
raise Exception("Missing expression")
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_alarm_definition_description(alarm_definition,
|
||||
@ -726,7 +726,7 @@ def get_query_alarm_definition_actions_enabled(alarm_definition,
|
||||
return ''
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_comma_separated_str_as_list(comma_separated_str):
|
||||
|
@ -179,4 +179,4 @@ class Alarming(object):
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError(
|
||||
'Message queue service unavailable'.encode('utf8'),
|
||||
ex.message.encode('utf8'))
|
||||
str(ex).encode('utf8'))
|
||||
|
@ -133,7 +133,7 @@ def get_query_param(req, param_name, required=False, default_val=None):
|
||||
return default_val
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_name(req, name_required=False):
|
||||
@ -153,7 +153,7 @@ def get_query_name(req, name_required=False):
|
||||
return ''
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_dimensions(req, param_key='dimensions'):
|
||||
@ -189,7 +189,7 @@ def get_query_dimensions(req, param_key='dimensions'):
|
||||
return dimensions
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_starttime_timestamp(req, required=True):
|
||||
@ -204,7 +204,7 @@ def get_query_starttime_timestamp(req, required=True):
|
||||
return None
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_endtime_timestamp(req, required=True):
|
||||
@ -219,7 +219,7 @@ def get_query_endtime_timestamp(req, required=True):
|
||||
return None
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def validate_start_end_timestamps(start_timestamp, end_timestamp=None):
|
||||
@ -255,7 +255,7 @@ def get_query_statistics(req):
|
||||
raise Exception("Missing statistics")
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_period(req):
|
||||
@ -274,7 +274,7 @@ def get_query_period(req):
|
||||
return None
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def get_query_group_by(req):
|
||||
@ -289,7 +289,7 @@ def get_query_group_by(req):
|
||||
return None
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def validate_query_name(name):
|
||||
@ -304,7 +304,7 @@ def validate_query_name(name):
|
||||
metric_validation.validate_name(name)
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def validate_query_dimensions(dimensions):
|
||||
@ -328,7 +328,7 @@ def validate_query_dimensions(dimensions):
|
||||
metric_validation.validate_dimension_value(key, value)
|
||||
except Exception as ex:
|
||||
LOG.debug(ex)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', ex.message)
|
||||
raise HTTPUnprocessableEntityError('Unprocessable Entity', str(ex))
|
||||
|
||||
|
||||
def paginate(resource, uri, limit):
|
||||
|
@ -68,7 +68,7 @@ class Metrics(metrics_api_v2.MetricsV2API):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
def _send_metrics(self, metrics):
|
||||
try:
|
||||
@ -76,7 +76,7 @@ class Metrics(metrics_api_v2.MetricsV2API):
|
||||
except message_queue_exceptions.MessageQueueException as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPServiceUnavailable('Service unavailable',
|
||||
ex.message, 60)
|
||||
str(ex), 60)
|
||||
|
||||
def _list_metrics(self, tenant_id, name, dimensions, req_uri, offset,
|
||||
limit, start_timestamp, end_timestamp):
|
||||
@ -101,7 +101,7 @@ class Metrics(metrics_api_v2.MetricsV2API):
|
||||
metric_validation.validate(metrics)
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise HTTPUnprocessableEntityError("Unprocessable Entity", ex.message)
|
||||
raise HTTPUnprocessableEntityError("Unprocessable Entity", str(ex))
|
||||
|
||||
tenant_id = (
|
||||
helpers.get_x_tenant_or_tenant_id(req,
|
||||
@ -152,7 +152,7 @@ class MetricsMeasurements(metrics_api_v2.MetricsMeasurementsV2API):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
@resource.resource_try_catch_block
|
||||
def on_get(self, req, res):
|
||||
@ -214,7 +214,7 @@ class MetricsStatistics(metrics_api_v2.MetricsStatisticsV2API):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
@resource.resource_try_catch_block
|
||||
def on_get(self, req, res):
|
||||
@ -279,7 +279,7 @@ class MetricsNames(metrics_api_v2.MetricsNamesV2API):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
@resource.resource_try_catch_block
|
||||
def on_get(self, req, res):
|
||||
@ -320,8 +320,7 @@ class DimensionValues(metrics_api_v2.DimensionValuesV2API):
|
||||
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable', str(ex))
|
||||
|
||||
@resource.resource_try_catch_block
|
||||
def on_get(self, req, res):
|
||||
@ -365,7 +364,7 @@ class DimensionNames(metrics_api_v2.DimensionNamesV2API):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
@resource.resource_try_catch_block
|
||||
def on_get(self, req, res):
|
||||
|
@ -58,7 +58,7 @@ class Notifications(notifications_api_v2.NotificationsV2API):
|
||||
schemas_notifications.parse_and_validate(notification, self.valid_periods, require_all=require_all)
|
||||
except schemas_exceptions.ValidationException as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPBadRequest('Bad Request', ex.message)
|
||||
raise falcon.HTTPBadRequest('Bad Request', str(ex))
|
||||
|
||||
def _validate_name_not_conflicting(self, tenant_id, name, expected_id=None):
|
||||
notification = self._notifications_repo.find_notification_by_name(tenant_id, name)
|
||||
|
@ -34,17 +34,17 @@ def resource_try_catch_block(fun):
|
||||
raise falcon.HTTPNotFound
|
||||
|
||||
except exceptions.MultipleMetricsException as ex:
|
||||
raise falcon.HTTPConflict("MultipleMetrics", ex.message)
|
||||
raise falcon.HTTPConflict("MultipleMetrics", str(ex))
|
||||
|
||||
except exceptions.AlreadyExistsException as ex:
|
||||
raise falcon.HTTPConflict(ex.__class__.__name__, ex.message)
|
||||
raise falcon.HTTPConflict(ex.__class__.__name__, str(ex))
|
||||
|
||||
except exceptions.InvalidUpdateException as ex:
|
||||
raise HTTPUnprocessableEntityError(ex.__class__.__name__, ex.message)
|
||||
raise HTTPUnprocessableEntityError(ex.__class__.__name__, str(ex))
|
||||
|
||||
except exceptions.RepositoryException as ex:
|
||||
LOG.exception(ex)
|
||||
msg = " ".join(map(str, ex.message.args))
|
||||
msg = " ".join(map(str, ex.args[0].args))
|
||||
raise falcon.HTTPInternalServerError('The repository was unable '
|
||||
'to process your request',
|
||||
msg)
|
||||
@ -52,6 +52,6 @@ def resource_try_catch_block(fun):
|
||||
except Exception as ex:
|
||||
LOG.exception(ex)
|
||||
raise falcon.HTTPInternalServerError('Service unavailable',
|
||||
ex.message)
|
||||
str(ex))
|
||||
|
||||
return try_it
|
||||
|
Loading…
Reference in New Issue
Block a user