From 314e709f3b5dad7753db866ea01ce89cb44ed66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Tue, 17 Nov 2020 17:41:54 +0100 Subject: [PATCH] Server: Better error handling and provide error details --- server/extension/sql/100_routing_helper.sql | 5 +++-- .../cartodb_services/cartodb_services/mapbox/isolines.py | 2 +- .../cartodb_services/cartodb_services/mapbox/routing.py | 2 +- .../cartodb_services/cartodb_services/tomtom/isolines.py | 2 +- .../cartodb_services/cartodb_services/tomtom/routing.py | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/server/extension/sql/100_routing_helper.sql b/server/extension/sql/100_routing_helper.sql index eeafba5..ce7a1da 100644 --- a/server/extension/sql/100_routing_helper.sql +++ b/server/extension/sql/100_routing_helper.sql @@ -66,11 +66,12 @@ RETURNS cdb_dataservices_server.simple_route AS $$ import sys service_manager.quota_service.increment_failed_service_use() service_manager.logger.error('Error trying to calculate Mapbox routing', sys.exc_info(), data={"username": username, "orgname": orgname}) - raise Exception('Error trying to calculate Mapbox routing') + raise Exception('Error trying to calculate Mapbox routing: ' + str(e)) finally: service_manager.quota_service.increment_total_service_use() $$ LANGUAGE @@plpythonu@@ SECURITY DEFINER STABLE PARALLEL RESTRICTED; + CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_tomtom_route_with_waypoints( username TEXT, orgname TEXT, @@ -134,7 +135,7 @@ RETURNS cdb_dataservices_server.simple_route AS $$ import sys service_manager.quota_service.increment_failed_service_use() service_manager.logger.error('Error trying to calculate TomTom routing', sys.exc_info(), data={"username": username, "orgname": orgname}) - raise Exception('Error trying to calculate TomTom routing') + raise Exception('Error trying to calculate TomTom routing: ' + str(e)) finally: service_manager.quota_service.increment_total_service_use() $$ LANGUAGE @@plpythonu@@ SECURITY DEFINER STABLE PARALLEL RESTRICTED; diff --git a/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py b/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py index 700c62b..1ffae9d 100644 --- a/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py +++ b/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py @@ -105,7 +105,7 @@ class MapboxIsolines(): elif response.status_code == requests.codes.unprocessable_entity: return [] else: - raise ServiceException(response.status_code, response) + raise ServiceException('Unexpected response (' + str(response.status_code) + '): ' + str(response.content), response) except requests.Timeout as te: # In case of timeout we want to stop the job because the server # could be down diff --git a/server/lib/python/cartodb_services/cartodb_services/mapbox/routing.py b/server/lib/python/cartodb_services/cartodb_services/mapbox/routing.py index 3f30268..c784295 100644 --- a/server/lib/python/cartodb_services/cartodb_services/mapbox/routing.py +++ b/server/lib/python/cartodb_services/cartodb_services/mapbox/routing.py @@ -94,7 +94,7 @@ class MapboxRouting(Traceable): elif response.status_code == requests.codes.unprocessable_entity: return MapboxRoutingResponse(None, None, None) else: - raise ServiceException(response.status_code, response) + raise ServiceException('Unexpected response (' + str(response.status_code) + '): ' + str(response.content), response) except requests.Timeout as te: # In case of timeout we want to stop the job because the server # could be down diff --git a/server/lib/python/cartodb_services/cartodb_services/tomtom/isolines.py b/server/lib/python/cartodb_services/cartodb_services/tomtom/isolines.py index 8a58f12..3a9665d 100644 --- a/server/lib/python/cartodb_services/cartodb_services/tomtom/isolines.py +++ b/server/lib/python/cartodb_services/cartodb_services/tomtom/isolines.py @@ -82,7 +82,7 @@ class TomTomIsolines(): elif response.status_code == requests.codes.unprocessable_entity: return [] else: - raise ServiceException(response.status_code, response) + raise ServiceException('Unexpected response (' + str(response.status_code) + '): ' + str(response.content), response) except requests.Timeout as te: # In case of timeout we want to stop the job because the server # could be down diff --git a/server/lib/python/cartodb_services/cartodb_services/tomtom/routing.py b/server/lib/python/cartodb_services/cartodb_services/tomtom/routing.py index a863e25..82308c5 100644 --- a/server/lib/python/cartodb_services/cartodb_services/tomtom/routing.py +++ b/server/lib/python/cartodb_services/cartodb_services/tomtom/routing.py @@ -120,7 +120,7 @@ class TomTomRouting(Traceable): elif response.status_code == requests.codes.unprocessable_entity: return TomTomRoutingResponse(None, None, None) else: - raise ServiceException(response.status_code, response) + raise ServiceException('Unexpected response (' + str(response.status_code) + '): ' + str(response.content), response) except requests.Timeout as te: # In case of timeout we want to stop the job because the server # could be down