Avoid treating quota exception as bug exception
This commit is contained in:
@@ -90,6 +90,7 @@ $$ LANGUAGE plpythonu STABLE PARALLEL RESTRICTED;
|
|||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_here_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
from cartodb_services.tools import LegacyServiceManager
|
from cartodb_services.tools import LegacyServiceManager
|
||||||
|
from cartodb_services.tools import QuotaExceededException
|
||||||
from cartodb_services.here import HereMapsGeocoder
|
from cartodb_services.here import HereMapsGeocoder
|
||||||
|
|
||||||
plpy.execute("SELECT cdb_dataservices_server._get_logger_config()")
|
plpy.execute("SELECT cdb_dataservices_server._get_logger_config()")
|
||||||
@@ -107,6 +108,8 @@ RETURNS Geometry AS $$
|
|||||||
else:
|
else:
|
||||||
service_manager.quota_service.increment_empty_service_use()
|
service_manager.quota_service.increment_empty_service_use()
|
||||||
return None
|
return None
|
||||||
|
except QuotaExceededException as qe:
|
||||||
|
return None
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
import sys
|
import sys
|
||||||
service_manager.quota_service.increment_failed_service_use()
|
service_manager.quota_service.increment_failed_service_use()
|
||||||
@@ -147,7 +150,7 @@ $$ LANGUAGE plpythonu STABLE PARALLEL RESTRICTED;
|
|||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_mapzen_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_mapzen_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
from cartodb_services.tools import ServiceManager
|
from cartodb_services.tools import ServiceManager, QuotaExceededException
|
||||||
from cartodb_services.mapzen import MapzenGeocoder
|
from cartodb_services.mapzen import MapzenGeocoder
|
||||||
from cartodb_services.tools.country import country_to_iso3
|
from cartodb_services.tools.country import country_to_iso3
|
||||||
from cartodb_services.refactor.service.mapzen_geocoder_config import MapzenGeocoderConfigBuilder
|
from cartodb_services.refactor.service.mapzen_geocoder_config import MapzenGeocoderConfigBuilder
|
||||||
@@ -174,6 +177,8 @@ RETURNS Geometry AS $$
|
|||||||
else:
|
else:
|
||||||
service_manager.quota_service.increment_empty_service_use()
|
service_manager.quota_service.increment_empty_service_use()
|
||||||
return None
|
return None
|
||||||
|
except QuotaExceededException as qe:
|
||||||
|
return None
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
import sys
|
import sys
|
||||||
service_manager.quota_service.increment_failed_service_use()
|
service_manager.quota_service.increment_failed_service_use()
|
||||||
@@ -186,7 +191,7 @@ $$ LANGUAGE plpythonu STABLE PARALLEL RESTRICTED;
|
|||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_mapbox_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_mapbox_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL)
|
||||||
RETURNS Geometry AS $$
|
RETURNS Geometry AS $$
|
||||||
from iso3166 import countries
|
from iso3166 import countries
|
||||||
from cartodb_services.tools import ServiceManager
|
from cartodb_services.tools import ServiceManager, QuotaExceededException
|
||||||
from cartodb_services.mapbox import MapboxGeocoder
|
from cartodb_services.mapbox import MapboxGeocoder
|
||||||
from cartodb_services.tools.country import country_to_iso3
|
from cartodb_services.tools.country import country_to_iso3
|
||||||
from cartodb_services.refactor.service.mapbox_geocoder_config import MapboxGeocoderConfigBuilder
|
from cartodb_services.refactor.service.mapbox_geocoder_config import MapboxGeocoderConfigBuilder
|
||||||
@@ -217,6 +222,8 @@ RETURNS Geometry AS $$
|
|||||||
else:
|
else:
|
||||||
service_manager.quota_service.increment_empty_service_use()
|
service_manager.quota_service.increment_empty_service_use()
|
||||||
return None
|
return None
|
||||||
|
except QuotaExceededException as qe:
|
||||||
|
return None
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
import sys
|
import sys
|
||||||
service_manager.quota_service.increment_failed_service_use()
|
service_manager.quota_service.increment_failed_service_use()
|
||||||
|
|||||||
@@ -3,5 +3,5 @@ from coordinates import Coordinate
|
|||||||
from polyline import PolyLine
|
from polyline import PolyLine
|
||||||
from log import Logger, LoggerConfig
|
from log import Logger, LoggerConfig
|
||||||
from rate_limiter import RateLimiter
|
from rate_limiter import RateLimiter
|
||||||
from service_manager import ServiceManager, RateLimitExceeded
|
from service_manager import ServiceManager, RateLimitExceeded, QuotaExceededException
|
||||||
from legacy_service_manager import LegacyServiceManager
|
from legacy_service_manager import LegacyServiceManager
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ class RateLimitExceeded(Exception):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return repr('Rate limit exceeded')
|
return repr('Rate limit exceeded')
|
||||||
|
|
||||||
|
class QuotaExceededException(Exception):
|
||||||
|
def __str__(self):
|
||||||
|
return repr('You have reached the limit of your quota')
|
||||||
|
|
||||||
|
|
||||||
class ServiceManagerBase:
|
class ServiceManagerBase:
|
||||||
"""
|
"""
|
||||||
@@ -37,7 +41,7 @@ class ServiceManagerBase:
|
|||||||
if rate and not self.rate_limiter.check():
|
if rate and not self.rate_limiter.check():
|
||||||
raise RateLimitExceeded()
|
raise RateLimitExceeded()
|
||||||
if quota and not self.quota_service.check_user_quota():
|
if quota and not self.quota_service.check_user_quota():
|
||||||
raise Exception('You have reached the limit of your quota')
|
raise QuotaExceededException()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def config(self):
|
def config(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user