diff --git a/server/extension/sql/0.5.1/100_routing_helper.sql b/server/extension/sql/0.5.1/100_routing_helper.sql index e23a1c5..26a8880 100644 --- a/server/extension/sql/0.5.1/100_routing_helper.sql +++ b/server/extension/sql/0.5.1/100_routing_helper.sql @@ -39,17 +39,17 @@ RETURNS cdb_dataservices_server.simple_route AS $$ if resp: shape_linestring = polyline_to_linestring(resp.shape) - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return [shape_linestring, resp.length, resp.duration] else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to obtain route using mapzen provider: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu SECURITY DEFINER; diff --git a/server/extension/sql/0.5.1/20_geocode_street.sql b/server/extension/sql/0.5.1/20_geocode_street.sql index de77f62..3c73087 100644 --- a/server/extension/sql/0.5.1/20_geocode_street.sql +++ b/server/extension/sql/0.5.1/20_geocode_street.sql @@ -34,22 +34,22 @@ RETURNS Geometry AS $$ geocoder = HereMapsGeocoder(user_geocoder_config.heremaps_app_id, user_geocoder_config.heremaps_app_code) coordinates = geocoder.geocode(searchtext=searchtext, city=city, state=state_province, country=country) if coordinates: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() plan = plpy.prepare("SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326); ", ["double precision", "double precision"]) point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0] return point['st_setsrid'] else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using here maps geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; CREATE OR REPLACE FUNCTION cdb_dataservices_server._cdb_google_geocode_street_point(username TEXT, orgname TEXT, searchtext TEXT, city TEXT DEFAULT NULL, state_province TEXT DEFAULT NULL, country TEXT DEFAULT NULL) @@ -65,20 +65,20 @@ RETURNS Geometry AS $$ geocoder = GoogleMapsGeocoder(user_geocoder_config.google_client_id, user_geocoder_config.google_api_key) coordinates = geocoder.geocode(searchtext=searchtext, city=city, state=state_province, country=country) if coordinates: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() plan = plpy.prepare("SELECT ST_SetSRID(ST_MakePoint($1, $2), 4326); ", ["double precision", "double precision"]) point = plpy.execute(plan, [coordinates[0], coordinates[1]], 1)[0] return point['st_setsrid'] else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using google maps geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; diff --git a/server/extension/sql/0.5.1/30_admin0.sql b/server/extension/sql/0.5.1/30_admin0.sql index ec8fe5c..395253b 100644 --- a/server/extension/sql/0.5.1/30_admin0.sql +++ b/server/extension/sql/0.5.1/30_admin0.sql @@ -13,20 +13,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [country_name], 1) result = rv[0]["mypolygon"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; diff --git a/server/extension/sql/0.5.1/40_admin1.sql b/server/extension/sql/0.5.1/40_admin1.sql index dc8e037..011514b 100644 --- a/server/extension/sql/0.5.1/40_admin1.sql +++ b/server/extension/sql/0.5.1/40_admin1.sql @@ -14,20 +14,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [admin1_name], 1) result = rv[0]["mypolygon"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; ---- cdb_geocode_admin1_polygon(admin1_name text, country_name text) @@ -46,20 +46,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [admin1_name, country_name], 1) result = rv[0]["mypolygon"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; -------------------------------------------------------------------------------- diff --git a/server/extension/sql/0.5.1/50_namedplaces.sql b/server/extension/sql/0.5.1/50_namedplaces.sql index 80306cb..0ee069f 100644 --- a/server/extension/sql/0.5.1/50_namedplaces.sql +++ b/server/extension/sql/0.5.1/50_namedplaces.sql @@ -14,20 +14,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [city_name], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; ---- cdb_geocode_namedplace_point(city_name text, country_name text) @@ -46,20 +46,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [city_name, country_name], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; ---- cdb_geocode_namedplace_point(city_name text, admin1_name text, country_name text) @@ -78,20 +78,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [city_name, admin1_name, country_name], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; -------------------------------------------------------------------------------- diff --git a/server/extension/sql/0.5.1/60_postalcodes.sql b/server/extension/sql/0.5.1/60_postalcodes.sql index 4ba321b..35540a3 100644 --- a/server/extension/sql/0.5.1/60_postalcodes.sql +++ b/server/extension/sql/0.5.1/60_postalcodes.sql @@ -13,20 +13,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [code], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_point(username text, orgname text, code text, country text) @@ -44,20 +44,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [code, country], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text) @@ -75,20 +75,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [code], 1) result = rv[0]["mypolygon"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_geocode_postalcode_polygon(username text, orgname text, code text, country text) @@ -106,20 +106,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [code, country], 1) result = rv[0]["mypolygon"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; -------------------------------------------------------------------------------- diff --git a/server/extension/sql/0.5.1/70_ips.sql b/server/extension/sql/0.5.1/70_ips.sql index f76190f..5b70606 100644 --- a/server/extension/sql/0.5.1/70_ips.sql +++ b/server/extension/sql/0.5.1/70_ips.sql @@ -13,20 +13,20 @@ RETURNS Geometry AS $$ rv = plpy.execute(plan, [ip], 1) result = rv[0]["mypoint"] if result: - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() return None except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to geocode using admin0 geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu; -------------------------------------------------------------------------------- diff --git a/server/extension/sql/0.5.1/80_isolines_helper.sql b/server/extension/sql/0.5.1/80_isolines_helper.sql index eb15963..7eb7cdc 100644 --- a/server/extension/sql/0.5.1/80_isolines_helper.sql +++ b/server/extension/sql/0.5.1/80_isolines_helper.sql @@ -37,18 +37,18 @@ RETURNS SETOF cdb_dataservices_server.isoline AS $$ polyline = isoline['geom'] multipolygon = geo_polyline_to_multipolygon(polyline) result.append([source, data_range_n, multipolygon]) - quota_service.increment_success_geocoder_use() + quota_service.increment_success_service_use() quota_service.increment_isolines_service_use(len(resp)) return result else: - quota_service.increment_empty_geocoder_use() + quota_service.increment_empty_service_use() except BaseException as e: import sys, traceback type_, value_, traceback_ = sys.exc_info() - quota_service.increment_failed_geocoder_use() + quota_service.increment_failed_service_use() error_msg = 'There was an error trying to obtain isodistances using here maps geocoder: {0}'.format(e) plpy.notice(traceback.format_tb(traceback_)) plpy.error(error_msg) finally: - quota_service.increment_total_geocoder_use() + quota_service.increment_total_service_use() $$ LANGUAGE plpythonu SECURITY DEFINER; diff --git a/server/lib/python/cartodb_services/cartodb_services/metrics/quota.py b/server/lib/python/cartodb_services/cartodb_services/metrics/quota.py index aba6135..33550cc 100644 --- a/server/lib/python/cartodb_services/cartodb_services/metrics/quota.py +++ b/server/lib/python/cartodb_services/cartodb_services/metrics/quota.py @@ -18,28 +18,22 @@ class QuotaService: def check_user_quota(self): return self._quota_checker.check() - # TODO - # We are going to change this class to be the generic one and - # create specific for routing and geocoding services but because - # this implies change all the extension functions, we are going to - # make the change in a minor release - - def increment_success_geocoder_use(self, amount=1): + def increment_success_service_use(self, amount=1): self._user_service.increment_service_use( self._user_service_config.service_type, "success_responses", amount=amount) - def increment_empty_geocoder_use(self, amount=1): + def increment_empty_service_use(self, amount=1): self._user_service.increment_service_use( self._user_service_config.service_type, "empty_responses", amount=amount) - def increment_failed_geocoder_use(self, amount=1): + def increment_failed_service_use(self, amount=1): self._user_service.increment_service_use( self._user_service_config.service_type, "fail_responses", amount=amount) - def increment_total_geocoder_use(self, amount=1): + def increment_total_service_use(self, amount=1): self._user_service.increment_service_use( self._user_service_config.service_type, "total_requests", amount=amount) diff --git a/server/lib/python/cartodb_services/setup.py b/server/lib/python/cartodb_services/setup.py index 550bfbd..499e833 100644 --- a/server/lib/python/cartodb_services/setup.py +++ b/server/lib/python/cartodb_services/setup.py @@ -10,7 +10,7 @@ from setuptools import setup, find_packages setup( name='cartodb_services', - version='0.3.1', + version='0.3.2', description='CartoDB Services API Python Library', diff --git a/server/lib/python/cartodb_services/test/test_quota_service.py b/server/lib/python/cartodb_services/test/test_quota_service.py index ef63c5a..fbbb4ff 100644 --- a/server/lib/python/cartodb_services/test/test_quota_service.py +++ b/server/lib/python/cartodb_services/test/test_quota_service.py @@ -63,18 +63,18 @@ class TestQuotaService(TestCase): def test_should_check_user_increment_and_quota_check_correctly(self): qs = self.__build_quota_service('test_user', quota=2) - qs.increment_success_geocoder_use() + qs.increment_success_service_use() assert qs.check_user_quota() is True - qs.increment_success_geocoder_use(amount=2) + qs.increment_success_service_use(amount=2) assert qs.check_user_quota() is False month = date.today().strftime('%Y%m') def test_should_check_org_increment_and_quota_check_correctly(self): qs = self.__build_quota_service('test_user', orgname='test_org', quota=2) - qs.increment_success_geocoder_use() + qs.increment_success_service_use() assert qs.check_user_quota() is True - qs.increment_success_geocoder_use(amount=2) + qs.increment_success_service_use(amount=2) assert qs.check_user_quota() is False month = date.today().strftime('%Y%m')