Use the current quota for mapzen services
This commit is contained in:
@@ -43,12 +43,20 @@ class ServiceConfig(object):
|
|||||||
def metrics_log_path(self):
|
def metrics_log_path(self):
|
||||||
return self._metrics_log_path
|
return self._metrics_log_path
|
||||||
|
|
||||||
|
def _get_effective_monthly_quota(self, quota_key, default=0):
|
||||||
|
quota_from_redis = self._redis_config.get(quota_key, None)
|
||||||
|
if quota_from_redis and quota_from_redis <> '':
|
||||||
|
return int(quota_from_redis)
|
||||||
|
else:
|
||||||
|
return default
|
||||||
|
|
||||||
def __get_metrics_log_path(self):
|
def __get_metrics_log_path(self):
|
||||||
if self.METRICS_LOG_KEY:
|
if self.METRICS_LOG_KEY:
|
||||||
return self._db_config.logger_config.get(self.METRICS_LOG_KEY, None)
|
return self._db_config.logger_config.get(self.METRICS_LOG_KEY, None)
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
class DataObservatoryConfig(ServiceConfig):
|
class DataObservatoryConfig(ServiceConfig):
|
||||||
|
|
||||||
METRICS_LOG_KEY = 'do_log_path'
|
METRICS_LOG_KEY = 'do_log_path'
|
||||||
@@ -92,9 +100,7 @@ class ObservatorySnapshotConfig(DataObservatoryConfig):
|
|||||||
self._soft_limit = True
|
self._soft_limit = True
|
||||||
else:
|
else:
|
||||||
self._soft_limit = False
|
self._soft_limit = False
|
||||||
self._monthly_quota = 0
|
self._monthly_quota = self._get_effective_monthly_quota(self.QUOTA_KEY)
|
||||||
if self.QUOTA_KEY in self._redis_config:
|
|
||||||
self._monthly_quota = int(self._redis_config[self.QUOTA_KEY])
|
|
||||||
self._connection_str = self._db_config.data_observatory_connection_str
|
self._connection_str = self._db_config.data_observatory_connection_str
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -116,9 +122,7 @@ class ObservatoryConfig(DataObservatoryConfig):
|
|||||||
self._soft_limit = True
|
self._soft_limit = True
|
||||||
else:
|
else:
|
||||||
self._soft_limit = False
|
self._soft_limit = False
|
||||||
self._monthly_quota = 0
|
self._monthly_quota = self._get_effective_monthly_quota(self.QUOTA_KEY)
|
||||||
if self.QUOTA_KEY in self._redis_config:
|
|
||||||
self._monthly_quota = int(self._redis_config[self.QUOTA_KEY])
|
|
||||||
self._connection_str = self._db_config.data_observatory_connection_str
|
self._connection_str = self._db_config.data_observatory_connection_str
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -173,14 +177,7 @@ class RoutingConfig(ServiceConfig):
|
|||||||
return self._soft_limit
|
return self._soft_limit
|
||||||
|
|
||||||
def _set_monthly_quota(self):
|
def _set_monthly_quota(self):
|
||||||
self._monthly_quota = self._get_effective_monthly_quota()
|
self._monthly_quota = self._get_effective_monthly_quota(self.QUOTA_KEY)
|
||||||
|
|
||||||
def _get_effective_monthly_quota(self):
|
|
||||||
quota_from_redis = self._redis_config.get(self.QUOTA_KEY)
|
|
||||||
if quota_from_redis and quota_from_redis <> '':
|
|
||||||
return int(quota_from_redis)
|
|
||||||
else:
|
|
||||||
return self._db_config.mapzen_routing_monthly_quota
|
|
||||||
|
|
||||||
def _set_soft_limit(self):
|
def _set_soft_limit(self):
|
||||||
if self.SOFT_LIMIT_KEY in self._redis_config and self._redis_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
if self.SOFT_LIMIT_KEY in self._redis_config and self._redis_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
||||||
@@ -217,18 +214,16 @@ class IsolinesRoutingConfig(ServiceConfig):
|
|||||||
self._isolines_provider = self.DEFAULT_PROVIDER
|
self._isolines_provider = self.DEFAULT_PROVIDER
|
||||||
self._geocoder_provider = filtered_config[self.GEOCODER_PROVIDER_KEY].lower()
|
self._geocoder_provider = filtered_config[self.GEOCODER_PROVIDER_KEY].lower()
|
||||||
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
||||||
|
self._isolines_quota = self._get_effective_monthly_quota(self.QUOTA_KEY)
|
||||||
|
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
||||||
|
self._soft_isolines_limit = True
|
||||||
|
else:
|
||||||
|
self._soft_isolines_limit = False
|
||||||
if self._isolines_provider == self.HEREMAPS_PROVIDER:
|
if self._isolines_provider == self.HEREMAPS_PROVIDER:
|
||||||
self._isolines_quota = int(filtered_config[self.QUOTA_KEY])
|
|
||||||
self._heremaps_app_id = db_config.heremaps_isolines_app_id
|
self._heremaps_app_id = db_config.heremaps_isolines_app_id
|
||||||
self._heremaps_app_code = db_config.heremaps_isolines_app_code
|
self._heremaps_app_code = db_config.heremaps_isolines_app_code
|
||||||
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
|
||||||
self._soft_isolines_limit = True
|
|
||||||
else:
|
|
||||||
self._soft_isolines_limit = False
|
|
||||||
elif self._isolines_provider == self.MAPZEN_PROVIDER:
|
elif self._isolines_provider == self.MAPZEN_PROVIDER:
|
||||||
self._mapzen_matrix_api_key = self._db_config.mapzen_matrix_api_key
|
self._mapzen_matrix_api_key = self._db_config.mapzen_matrix_api_key
|
||||||
self._isolines_quota = self._db_config.mapzen_matrix_monthly_quota
|
|
||||||
self._soft_isolines_limit = False
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def service_type(self):
|
def service_type(self):
|
||||||
@@ -361,8 +356,10 @@ class GeocoderConfig(ServiceConfig):
|
|||||||
self._geocoder_provider = filtered_config[self.GEOCODER_PROVIDER].lower()
|
self._geocoder_provider = filtered_config[self.GEOCODER_PROVIDER].lower()
|
||||||
else:
|
else:
|
||||||
self._geocoder_provider = self.DEFAULT_PROVIDER
|
self._geocoder_provider = self.DEFAULT_PROVIDER
|
||||||
self._geocoding_quota = int(filtered_config[self.QUOTA_KEY])
|
|
||||||
|
self._geocoding_quota = self._get_effective_monthly_quota(self.QUOTA_KEY)
|
||||||
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
self._period_end_date = date_parse(filtered_config[self.PERIOD_END_DATE])
|
||||||
|
|
||||||
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
if filtered_config[self.SOFT_LIMIT_KEY].lower() == 'true':
|
||||||
self._soft_geocoding_limit = True
|
self._soft_geocoding_limit = True
|
||||||
else:
|
else:
|
||||||
@@ -377,7 +374,6 @@ class GeocoderConfig(ServiceConfig):
|
|||||||
self._cost_per_hit = 0
|
self._cost_per_hit = 0
|
||||||
elif self._geocoder_provider == self.MAPZEN_GEOCODER:
|
elif self._geocoder_provider == self.MAPZEN_GEOCODER:
|
||||||
self._mapzen_api_key = db_config.mapzen_geocoder_api_key
|
self._mapzen_api_key = db_config.mapzen_geocoder_api_key
|
||||||
self._geocoding_quota = db_config.mapzen_geocoder_monthly_quota
|
|
||||||
self._cost_per_hit = 0
|
self._cost_per_hit = 0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
+10
-5
@@ -67,6 +67,7 @@ class MapzenGeocoderConfig(object):
|
|||||||
@property
|
@property
|
||||||
def username(self):
|
def username(self):
|
||||||
return self._username
|
return self._username
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def organization(self):
|
def organization(self):
|
||||||
return self._organization
|
return self._organization
|
||||||
@@ -86,16 +87,13 @@ class MapzenGeocoderConfigBuilder(object):
|
|||||||
self._username = username
|
self._username = username
|
||||||
self._orgname = orgname
|
self._orgname = orgname
|
||||||
|
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
mapzen_server_conf = self._server_conf.get('mapzen_conf')
|
mapzen_server_conf = self._server_conf.get('mapzen_conf')
|
||||||
geocoding_quota = mapzen_server_conf['geocoder']['monthly_quota']
|
|
||||||
mapzen_api_key = mapzen_server_conf['geocoder']['api_key']
|
mapzen_api_key = mapzen_server_conf['geocoder']['api_key']
|
||||||
|
|
||||||
|
geocoding_quota = int(self._get_quota(mapzen_server_conf))
|
||||||
soft_geocoding_limit = self._user_conf.get('soft_geocoding_limit').lower() == 'true'
|
soft_geocoding_limit = self._user_conf.get('soft_geocoding_limit').lower() == 'true'
|
||||||
|
cost_per_hit = 0
|
||||||
cost_per_hit=0
|
|
||||||
|
|
||||||
period_end_date_str = self._org_conf.get('period_end_date') or self._user_conf.get('period_end_date')
|
period_end_date_str = self._org_conf.get('period_end_date') or self._user_conf.get('period_end_date')
|
||||||
period_end_date = date_parse(period_end_date_str)
|
period_end_date = date_parse(period_end_date_str)
|
||||||
|
|
||||||
@@ -110,3 +108,10 @@ class MapzenGeocoderConfigBuilder(object):
|
|||||||
mapzen_api_key,
|
mapzen_api_key,
|
||||||
self._username,
|
self._username,
|
||||||
self._orgname)
|
self._orgname)
|
||||||
|
|
||||||
|
def _get_quota(self, mapzen_server_conf):
|
||||||
|
geocoding_quota = self._org_conf.get('geocoding_quota') or self._user_conf.get('geocoding_quota')
|
||||||
|
if not geocoding_quota:
|
||||||
|
geocoding_quota = mapzen_server_conf['geocoder']['monthly_quota']
|
||||||
|
|
||||||
|
return geocoding_quota
|
||||||
|
|||||||
Reference in New Issue
Block a user