diff --git a/server/extension/cdb_dataservices_server--0.5.0.sql b/server/extension/cdb_dataservices_server--0.5.0.sql index 05bac88..9f027b8 100644 --- a/server/extension/cdb_dataservices_server--0.5.0.sql +++ b/server/extension/cdb_dataservices_server--0.5.0.sql @@ -2,10 +2,9 @@ -- Complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION cdb_dataservices_server" to load this file. \quit CREATE TYPE cdb_dataservices_server._redis_conf_params AS ( - sentinel_host text, - sentinel_port int, sentinel_master_id text, redis_host text, + redis_port int, redis_db text, timeout float ); @@ -21,10 +20,9 @@ RETURNS cdb_dataservices_server._redis_conf_params AS $$ import json params = json.loads(conf) return { - "sentinel_host": params['sentinel_host'], - "sentinel_port": params['sentinel_port'], "sentinel_master_id": params['sentinel_master_id'], "redis_host": params['redis_host'], + "redis_port": params['redis_port'], "timeout": params['timeout'], "redis_db": params['redis_db'] } @@ -38,22 +36,20 @@ RETURNS boolean AS $$ return False else: from cartodb_services.tools import RedisConnection - metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, - c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db + metadata_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host, + c.redis_port, c.timeout, c.redis_db from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] - metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, - c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db + metrics_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host, + c.redis_port, c.timeout, c.redis_db from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] - redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], - metadata_config_params['sentinel_port'], - metadata_config_params['sentinel_master_id'], + redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_master_id'], metadata_config_params['redis_host'], + metadata_config_params['redis_port'], timeout=metadata_config_params['timeout'], redis_db=metadata_config_params['redis_db']).redis_connection() - redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_host'], - metrics_config_params['sentinel_port'], - metrics_config_params['sentinel_master_id'], + redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_master_id'], metrics_config_params['redis_host'], + metrics_config_params['redis_port'], timeout=metrics_config_params['timeout'], redis_db=metrics_config_params['redis_db']).redis_connection() GD[cache_key] = { diff --git a/server/extension/sql/0.5.0/10_redis_helper.sql b/server/extension/sql/0.5.0/10_redis_helper.sql index 9200b26..97223f4 100644 --- a/server/extension/sql/0.5.0/10_redis_helper.sql +++ b/server/extension/sql/0.5.0/10_redis_helper.sql @@ -1,8 +1,7 @@ CREATE TYPE cdb_dataservices_server._redis_conf_params AS ( - sentinel_host text, - sentinel_port int, sentinel_master_id text, redis_host text, + redis_port int, redis_db text, timeout float ); @@ -18,10 +17,9 @@ RETURNS cdb_dataservices_server._redis_conf_params AS $$ import json params = json.loads(conf) return { - "sentinel_host": params['sentinel_host'], - "sentinel_port": params['sentinel_port'], "sentinel_master_id": params['sentinel_master_id'], "redis_host": params['redis_host'], + "redis_port": params['redis_port'], "timeout": params['timeout'], "redis_db": params['redis_db'] } @@ -35,22 +33,20 @@ RETURNS boolean AS $$ return False else: from cartodb_services.tools import RedisConnection - metadata_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, - c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db + metadata_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host, + c.redis_port, c.timeout, c.redis_db from cdb_dataservices_server._get_redis_conf_v2('redis_metadata_config') c;""")[0] - metrics_config_params = plpy.execute("""select c.sentinel_host, c.sentinel_port, - c.sentinel_master_id, c.redis_host, c.timeout, c.redis_db + metrics_config_params = plpy.execute("""select c.sentinel_master_id, c.redis_host, + c.redis_port, c.timeout, c.redis_db from cdb_dataservices_server._get_redis_conf_v2('redis_metrics_config') c;""")[0] - redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_host'], - metadata_config_params['sentinel_port'], - metadata_config_params['sentinel_master_id'], + redis_metadata_connection = RedisConnection(metadata_config_params['sentinel_master_id'], metadata_config_params['redis_host'], + metadata_config_params['redis_port'], timeout=metadata_config_params['timeout'], redis_db=metadata_config_params['redis_db']).redis_connection() - redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_host'], - metrics_config_params['sentinel_port'], - metrics_config_params['sentinel_master_id'], + redis_metrics_connection = RedisConnection(metrics_config_params['sentinel_master_id'], metrics_config_params['redis_host'], + metrics_config_params['redis_port'], timeout=metrics_config_params['timeout'], redis_db=metrics_config_params['redis_db']).redis_connection() GD[cache_key] = { diff --git a/server/lib/python/cartodb_services/cartodb_services/tools/redis_tools.py b/server/lib/python/cartodb_services/cartodb_services/tools/redis_tools.py index 8a24bb3..24888dd 100644 --- a/server/lib/python/cartodb_services/cartodb_services/tools/redis_tools.py +++ b/server/lib/python/cartodb_services/cartodb_services/tools/redis_tools.py @@ -6,28 +6,26 @@ class RedisConnection: REDIS_DEFAULT_USER_DB = 5 REDIS_DEFAULT_TIMEOUT = 2 #seconds - REDIS_SENTINEL_DEFAULT_PORT = 26379 - REDIS_DEFAULT_PORT = 6379 + #REDIS_SENTINEL_DEFAULT_PORT = 26379 + #REDIS_DEFAULT_PORT = 6379 - def __init__(self, sentinel_host, sentinel_port, sentinel_master_id, - redis_host, redis_db=REDIS_DEFAULT_USER_DB, **kwargs): - self.sentinel_host = sentinel_host - self.sentinel_port = sentinel_port - self.sentinel_master_id = sentinel_master_id + def __init__(self, sentinel_master_id, redis_host, redis_port, + redis_db=REDIS_DEFAULT_USER_DB, **kwargs): self.redis_host = redis_host + self.redis_port = redis_port + self.sentinel_master_id = sentinel_master_id self.timeout = kwargs['timeout'] if 'timeout' in kwargs else self.REDIS_DEFAULT_TIMEOUT self.redis_db = redis_db - self.redis_port = self.REDIS_DEFAULT_PORT def redis_connection(self): return self.__create_redis_connection() def __create_redis_connection(self): - if (self.sentinel_host == None) or (self.sentinel_master_id == None): + if self.sentinel_master_id == None: return StrictRedis(host=self.redis_host, port=self.redis_port, db=self.redis_db) else: - sentinel = Sentinel([(self.sentinel_host, - self.REDIS_SENTINEL_DEFAULT_PORT)], + sentinel = Sentinel([(self.redis_host, + self.redis_port)], socket_timeout=self.timeout) return sentinel.master_for( self.sentinel_master_id,