From ef5b82450aa6da2421364f9baa26350f42be0aea Mon Sep 17 00:00:00 2001 From: antoniocarlon Date: Tue, 11 Feb 2020 15:25:12 +0100 Subject: [PATCH] Avoid renaming the matrix parameter to isolines --- README.md | 2 +- .../test/expected/00_install_test.out | 2 +- server/extension/test/sql/00_install_test.sql | 2 +- .../cartodb_services/mapbox/isolines.py | 4 +- .../cartodb_services/metrics/config.py | 43 ++++++++++++------- .../service/mapbox_isolines_config.py | 7 ++- .../cartodb_services/test/test_helper.py | 2 +- 7 files changed, 39 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index faa6ef5..72be30b 100644 --- a/README.md +++ b/README.md @@ -167,7 +167,7 @@ SELECT CDB_Conf_SetConf( ```sql SELECT CDB_Conf_SetConf( 'mapbox_conf', - '{"routing": {"api_keys": ["your_api_key"], "monthly_quota": 999999}, "geocoder": {"api_keys": ["your_api_key"], "monthly_quota": 999999}, "isolines": {"api_keys": ["your_api_key"], "monthly_quota": 1500000}}' + '{"routing": {"api_keys": ["your_api_key"], "monthly_quota": 999999}, "geocoder": {"api_keys": ["your_api_key"], "monthly_quota": 999999}, "matrix": {"api_keys": ["your_api_key"], "monthly_quota": 1500000}}' ); ``` diff --git a/server/extension/test/expected/00_install_test.out b/server/extension/test/expected/00_install_test.out index 43c6941..016e70c 100644 --- a/server/extension/test/expected/00_install_test.out +++ b/server/extension/test/expected/00_install_test.out @@ -33,7 +33,7 @@ SELECT cartodb.cdb_conf_setconf('mapzen_conf', '{"routing": {"api_key": "routing (1 row) -SELECT cartodb.cdb_conf_setconf('mapbox_conf', '{"routing": {"api_keys": ["routing_dummy_api_key"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}, "isolines": {"api_keys": ["isolines_dummy_api_key"], "monthly_quota": 1500000}}'); +SELECT cartodb.cdb_conf_setconf('mapbox_conf', '{"routing": {"api_keys": ["routing_dummy_api_key"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}, "matrix": {"api_keys": ["matrix_dummy_api_key"], "monthly_quota": 1500000}}'); cdb_conf_setconf ------------------ diff --git a/server/extension/test/sql/00_install_test.sql b/server/extension/test/sql/00_install_test.sql index 2a4ef6b..a5c3652 100644 --- a/server/extension/test/sql/00_install_test.sql +++ b/server/extension/test/sql/00_install_test.sql @@ -15,7 +15,7 @@ SELECT cartodb.cdb_conf_setconf('redis_metrics_config', '{"redis_host": "localho SELECT cartodb.cdb_conf_setconf('redis_metadata_config', '{"redis_host": "localhost", "redis_port": 6379, "timeout": 0.1, "redis_db": 5}'); SELECT cartodb.cdb_conf_setconf('heremaps_conf', '{"geocoder": {"app_id": "dummy_id", "app_code": "dummy_code", "geocoder_cost_per_hit": 1}, "isolines": {"app_id": "dummy_id", "app_code": "dummy_code"}}'); SELECT cartodb.cdb_conf_setconf('mapzen_conf', '{"routing": {"api_key": "routing_dummy_api_key", "monthly_quota": 1500000}, "geocoder": {"api_key": "geocoder_dummy_api_key", "monthly_quota": 1500000}, "matrix": {"api_key": "matrix_dummy_api_key", "monthly_quota": 1500000}}'); -SELECT cartodb.cdb_conf_setconf('mapbox_conf', '{"routing": {"api_keys": ["routing_dummy_api_key"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}, "isolines": {"api_keys": ["isolines_dummy_api_key"], "monthly_quota": 1500000}}'); +SELECT cartodb.cdb_conf_setconf('mapbox_conf', '{"routing": {"api_keys": ["routing_dummy_api_key"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}, "matrix": {"api_keys": ["matrix_dummy_api_key"], "monthly_quota": 1500000}}'); SELECT cartodb.cdb_conf_setconf('tomtom_conf', '{"routing": {"api_keys": ["routing_dummy_api_key"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}, "isolines": {"api_keys": ["isolines_dummy_api_key"], "monthly_quota": 1500000}}'); SELECT cartodb.cdb_conf_setconf('geocodio_conf', '{"geocoder": {"api_keys": ["geocoder_dummy_api_key"], "monthly_quota": 1500000}}'); SELECT cartodb.cdb_conf_setconf('logger_conf', '{"geocoder_log_path": "/dev/null"}'); 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 f3056e7..700c62b 100644 --- a/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py +++ b/server/lib/python/cartodb_services/cartodb_services/mapbox/isolines.py @@ -22,9 +22,9 @@ MAX_SPEEDS = { PROFILE_DRIVING: 38.89 # In m/s, assuming 140km/h max speed } -VALID_PROFILES = [PROFILE_DRIVING, +VALID_PROFILES = (PROFILE_DRIVING, PROFILE_CYCLING, - PROFILE_WALKING] + PROFILE_WALKING) ENTRY_FEATURES = 'features' ENTRY_GEOMETRY = 'geometry' diff --git a/server/lib/python/cartodb_services/cartodb_services/metrics/config.py b/server/lib/python/cartodb_services/cartodb_services/metrics/config.py index dc7625d..68c9a9c 100644 --- a/server/lib/python/cartodb_services/cartodb_services/metrics/config.py +++ b/server/lib/python/cartodb_services/cartodb_services/metrics/config.py @@ -255,8 +255,9 @@ class IsolinesRoutingConfig(ServiceConfig): self._mapzen_matrix_service_params = db_config.mapzen_matrix_service_params self._mapzen_isochrones_service_params = db_config.mapzen_isochrones_service_params elif self._isolines_provider == self.MAPBOX_PROVIDER: - self._mapbox_isolinesx_api_keys = self._db_config.mapbox_isolines_api_keys - self._mapbox_isolines_service_params = db_config.mapbox_isolines_service_params + self._mapbox_matrix_api_key = self._db_config.mapbox_matrix_api_key + self._mapbox_matrix_service_params = db_config.mapbox_matrix_service_params + self._mapbox_isochrones_service_params = db_config.mapbox_isochrones_service_params elif self._isolines_provider == self.TOMTOM_PROVIDER: self._tomtom_isolinesx_api_keys = self._db_config.tomtom_isolines_api_keys self._tomtom_isolines_service_params = db_config.tomtom_isolines_service_params @@ -317,12 +318,16 @@ class IsolinesRoutingConfig(ServiceConfig): return self._isolines_provider == self.MAPZEN_PROVIDER @property - def mapbox_isolines_api_keys(self): - return self._mapbox_isolines_api_keys + def mapbox_matrix_api_key(self): + return self._mapbox_matrix_api_key @property - def mapbox_isolines_service_params(self): - return self._mapbox_isolines_service_params + def mapbox_matrix_service_params(self): + return self._mapbox_matrix_service_params + + @property + def mapbox_isochrones_service_params(self): + return self._mapbox_isochrones_service_params @property def mapbox_provider(self): @@ -671,9 +676,13 @@ class ServicesDBConfig: raise ConfigException('Mapbox configuration missing') mapbox_conf = json.loads(mapbox_conf_json) - self._mapbox_isolines_api_keys = mapbox_conf['isolines']['api_keys'] - self._mapbox_isolines_quota = mapbox_conf['isolines']['monthly_quota'] - self._mapbox_isolines_service_params = mapbox_conf.get('isolines', {}).get('service', {}) + + # Note: We are no longer using the Matrix API but we have avoided renaming the `matrix` parameter + # to `isolines` to ensure retrocompatibility + self._mapbox_matrix_api_key = mapbox_conf['matrix']['api_key'] + self._mapbox_matrix_quota = mapbox_conf['matrix']['monthly_quota'] + self._mapbox_matrix_service_params = mapbox_conf['matrix'].get('service', {}) + self._mapbox_isochrones_service_params = mapbox_conf.get('isochrones', {}).get('service', {}) self._mapbox_routing_api_keys = mapbox_conf['routing']['api_keys'] self._mapbox_routing_quota = mapbox_conf['routing']['monthly_quota'] self._mapbox_routing_service_params = mapbox_conf['routing'].get('service', {}) @@ -801,16 +810,20 @@ class ServicesDBConfig: return self._mapzen_geocoder_service_params @property - def mapbox_isolines_api_keys(self): - return self._mapbox_isolines_api_keys + def mapbox_matrix_api_keys(self): + return self._mapbox_matrix_api_keys @property - def mapbox_isolines_monthly_quota(self): - return self._mapbox_isolines_quota + def mapbox_matrix_monthly_quota(self): + return self._mapbox_matrix_quota @property - def mapbox_isolines_service_params(self): - return self._mapbox_isolines_service_params + def mapbox_matrix_service_params(self): + return self._mapbox_matrix_service_params + + @property + def mapbox_isochrones_service_params(self): + return self._mapbox_isochrones_service_params @property def mapbox_routing_api_keys(self): diff --git a/server/lib/python/cartodb_services/cartodb_services/refactor/service/mapbox_isolines_config.py b/server/lib/python/cartodb_services/cartodb_services/refactor/service/mapbox_isolines_config.py index 5a252e9..b65707c 100644 --- a/server/lib/python/cartodb_services/cartodb_services/refactor/service/mapbox_isolines_config.py +++ b/server/lib/python/cartodb_services/cartodb_services/refactor/service/mapbox_isolines_config.py @@ -92,8 +92,11 @@ class MapboxIsolinesConfigBuilder(object): def get(self): mapbox_server_conf = self._server_conf.get('mapbox_conf') - mapbox_api_keys = mapbox_server_conf['isolines']['api_keys'] - mapbox_service_params = mapbox_server_conf['isolines'].get('service', {}) + + # Note: We are no longer using the Matrix API but we have avoided renaming the `matrix` parameter + # to `isolines` to ensure retrocompatibility + mapbox_api_keys = mapbox_server_conf['matrix']['api_keys'] + mapbox_service_params = mapbox_server_conf['matrix'].get('service', {}) isolines_quota = self._get_quota() soft_isolines_limit = self._user_conf.get('soft_here_isolines_limit').lower() == 'true' diff --git a/server/lib/python/cartodb_services/test/test_helper.py b/server/lib/python/cartodb_services/test/test_helper.py index 82bb84b..79ec6e2 100644 --- a/server/lib/python/cartodb_services/test/test_helper.py +++ b/server/lib/python/cartodb_services/test/test_helper.py @@ -76,7 +76,7 @@ def increment_service_uses(redis_conn, username, orgname=None, def plpy_mock_config(): plpy_mock._define_result("CDB_Conf_GetConf\('heremaps_conf'\)", [{'conf': '{"geocoder": {"app_id": "app_id", "app_code": "code", "geocoder_cost_per_hit": 1}, "isolines": {"app_id": "app_id", "app_code": "code"}}'}]) plpy_mock._define_result("CDB_Conf_GetConf\('mapzen_conf'\)", [{'conf': '{"routing": {"api_key": "api_key_rou", "monthly_quota": 1500000}, "geocoder": {"api_key": "api_key_geo", "monthly_quota": 1500000}, "matrix": {"api_key": "api_key_mat", "monthly_quota": 1500000}}'}]) - plpy_mock._define_result("CDB_Conf_GetConf\('mapbox_conf'\)", [{'conf': '{"routing": {"api_keys": ["api_key_rou"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["api_key_geo"], "monthly_quota": 1500000}, "isolines": {"api_keys": ["api_key_mat"], "monthly_quota": 1500000}}'}]) + plpy_mock._define_result("CDB_Conf_GetConf\('mapbox_conf'\)", [{'conf': '{"routing": {"api_keys": ["api_key_rou"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["api_key_geo"], "monthly_quota": 1500000}, "matrix": {"api_keys": ["api_key_mat"], "monthly_quota": 1500000}}'}]) plpy_mock._define_result("CDB_Conf_GetConf\('tomtom_conf'\)", [{'conf': '{"routing": {"api_keys": ["api_key_rou"], "monthly_quota": 1500000}, "geocoder": {"api_keys": ["api_key_geo"], "monthly_quota": 1500000}, "isolines": {"api_keys": ["api_key_mat"], "monthly_quota": 1500000}}'}]) plpy_mock._define_result("CDB_Conf_GetConf\('geocodio_conf'\)", [{'conf': '{"geocoder": {"api_keys": ["api_key_geo"], "monthly_quota": 1500000}}'}]) plpy_mock._define_result("CDB_Conf_GetConf\('logger_conf'\)", [{'conf': '{"geocoder_log_path": "/dev/null"}'}])