From fcca5da302646b52b1e6b8f150dcfc8d4a7d38f8 Mon Sep 17 00:00:00 2001 From: Rafa de la Torre Date: Mon, 3 Oct 2016 16:47:45 +0200 Subject: [PATCH] Add a RedisMetricsConnectionFactory class --- server/extension/sql/20_geocode_street.sql | 11 ++--------- .../backend/redis_metrics_connection.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) create mode 100644 server/lib/python/cartodb_services/cartodb_services/refactor/backend/redis_metrics_connection.py diff --git a/server/extension/sql/20_geocode_street.sql b/server/extension/sql/20_geocode_street.sql index d912320..20f7e16 100644 --- a/server/extension/sql/20_geocode_street.sql +++ b/server/extension/sql/20_geocode_street.sql @@ -145,13 +145,11 @@ RETURNS Geometry AS $$ from cartodb_services.tools import Logger from cartodb_services.refactor.storage.server_config import InDbServerConfigStorage from cartodb_services.refactor.tools.logger import LoggerConfigBuilder - from cartodb_services.refactor.tools.redis_mock import RedisConnectionMock - from cartodb_services.refactor.storage.redis_connection_config import RedisMetricsConnectionConfigBuilder - from cartodb_services.refactor.storage.redis_connection import RedisConnectionBuilder from cartodb_services.refactor.service.mapzen_geocoder_config import MapzenGeocoderConfigBuilder from cartodb_services.refactor.core.environment import ServerEnvironmentBuilder from cartodb_services.refactor.backend.user_config import UserConfigBackendFactory from cartodb_services.refactor.backend.org_config import OrgConfigBackendFactory + from cartodb_services.refactor.backend.redis_metrics_connection import RedisMetricsConnectionFactory server_config_storage = InDbServerConfigStorage() @@ -164,12 +162,7 @@ RETURNS Geometry AS $$ mapzen_geocoder_config = MapzenGeocoderConfigBuilder(server_config_storage, user_config_backend, org_config_backend, username, orgname).get() - # TODO encapsulate the connection creation - if environment.is_onpremise: - redis_metrics_connection = RedisConnectionMock() - else: - redis_metrics_connection_config = RedisMetricsConnectionConfigBuilder(server_config_storage).get() - redis_metrics_connection = RedisConnectionBuilder(redis_metrics_connection_config).get() + redis_metrics_connection = RedisMetricsConnectionFactory(environment, server_config_storage).get() quota_service = QuotaService(mapzen_geocoder_config, redis_metrics_connection) if not quota_service.check_user_quota(): diff --git a/server/lib/python/cartodb_services/cartodb_services/refactor/backend/redis_metrics_connection.py b/server/lib/python/cartodb_services/cartodb_services/refactor/backend/redis_metrics_connection.py new file mode 100644 index 0000000..c32283b --- /dev/null +++ b/server/lib/python/cartodb_services/cartodb_services/refactor/backend/redis_metrics_connection.py @@ -0,0 +1,17 @@ +from cartodb_services.refactor.tools.redis_mock import RedisConnectionMock +from cartodb_services.refactor.storage.redis_connection_config import RedisMetricsConnectionConfigBuilder +from cartodb_services.refactor.storage.redis_connection import RedisConnectionBuilder + +class RedisMetricsConnectionFactory(object): + def __init__(self, environment, server_config_storage): + self._environment = environment + self._server_config_storage = server_config_storage + + def get(self): + if self._environment.is_onpremise: + redis_metrics_connection = RedisConnectionMock() + else: + redis_metrics_connection_config = RedisMetricsConnectionConfigBuilder(self._server_config_storage).get() + redis_metrics_connection = RedisConnectionBuilder(redis_metrics_connection_config).get() + return redis_metrics_connection +