From 2a807af6df17a92cb3c94596e0d2de1d2f07a1dc Mon Sep 17 00:00:00 2001 From: Luis Bosque Date: Mon, 22 Feb 2016 10:06:09 +0100 Subject: [PATCH] Fix upgrade/downgrade paths to 0.5.0 --- .../cdb_dataservices_server--0.4.0--0.5.0.sql | 28 +++++++++---------- .../cdb_dataservices_server--0.5.0--0.4.0.sql | 5 +++- .../test/0.5.0/expected/00_install_test.out | 4 +-- .../test/0.5.0/sql/00_install_test.sql | 4 +-- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/server/extension/cdb_dataservices_server--0.4.0--0.5.0.sql b/server/extension/cdb_dataservices_server--0.4.0--0.5.0.sql index ff54a09..11e2e71 100644 --- a/server/extension/cdb_dataservices_server--0.4.0--0.5.0.sql +++ b/server/extension/cdb_dataservices_server--0.4.0--0.5.0.sql @@ -1,4 +1,7 @@ -ALTER TYPE cdb_dataservices_server._redis_conf_params ADD ATTRIBUTE redis_host text; +ALTER TYPE cdb_dataservices_server._redis_conf_params ADD ATTRIBUTE redis_host text + ADD ATTRIBUTE redis_port int + DROP ATTRIBUTE IF EXISTS sentinel_host + DROP ATTRIBUTE IF EXISTS sentinel_port; -- Get the Redis configuration from the _conf table -- CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text) @@ -11,10 +14,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_host": params['redis_host'], + "redis_port": params['redis_port'], "timeout": params['timeout'], "redis_db": params['redis_db'] } @@ -28,22 +30,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/cdb_dataservices_server--0.5.0--0.4.0.sql b/server/extension/cdb_dataservices_server--0.5.0--0.4.0.sql index fcc28c6..db9371d 100644 --- a/server/extension/cdb_dataservices_server--0.5.0--0.4.0.sql +++ b/server/extension/cdb_dataservices_server--0.5.0--0.4.0.sql @@ -1,4 +1,7 @@ -ALTER TYPE cdb_dataservices_server._redis_conf_params DROP ATTRIBUTE IF EXISTS redis_host; +ALTER TYPE cdb_dataservices_server._redis_conf_params DROP ATTRIBUTE IF EXISTS redis_host, + DROP ATTRIBUTE IF EXISTS redis_port, + ADD ATTRIBUTE sentinel_host text, + ADD ATTRIBUTE sentinel_port int; -- Get the Redis configuration from the _conf table -- CREATE OR REPLACE FUNCTION cdb_dataservices_server._get_redis_conf_v2(config_key text) diff --git a/server/extension/test/0.5.0/expected/00_install_test.out b/server/extension/test/0.5.0/expected/00_install_test.out index db041d0..d55743f 100644 --- a/server/extension/test/0.5.0/expected/00_install_test.out +++ b/server/extension/test/0.5.0/expected/00_install_test.out @@ -7,13 +7,13 @@ CREATE EXTENSION cdb_geocoder; -- Install the extension CREATE EXTENSION cdb_dataservices_server; -- Mock the redis server connection to point to this very test db -SELECT cartodb.cdb_conf_setconf('redis_metrics_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); +SELECT cartodb.cdb_conf_setconf('redis_metrics_config', '{"redis_host": "localhost", "redis_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); cdb_conf_setconf ------------------ (1 row) -SELECT cartodb.cdb_conf_setconf('redis_metadata_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); +SELECT cartodb.cdb_conf_setconf('redis_metadata_config', '{"redis_host": "localhost", "redis_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); cdb_conf_setconf ------------------ diff --git a/server/extension/test/0.5.0/sql/00_install_test.sql b/server/extension/test/0.5.0/sql/00_install_test.sql index da91608..ad69ffb 100644 --- a/server/extension/test/0.5.0/sql/00_install_test.sql +++ b/server/extension/test/0.5.0/sql/00_install_test.sql @@ -9,8 +9,8 @@ CREATE EXTENSION cdb_geocoder; CREATE EXTENSION cdb_dataservices_server; -- Mock the redis server connection to point to this very test db -SELECT cartodb.cdb_conf_setconf('redis_metrics_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); -SELECT cartodb.cdb_conf_setconf('redis_metadata_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); +SELECT cartodb.cdb_conf_setconf('redis_metrics_config', '{"redis_host": "localhost", "redis_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); +SELECT cartodb.cdb_conf_setconf('redis_metadata_config', '{"redis_host": "localhost", "redis_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}'); -- Mock the varnish invalidation function -- (used by cdb_geocoder tests)