New server version 0.19.0 #302
This commit is contained in:
parent
2b2691d0b9
commit
ab4584bed3
109
server/extension/cdb_dataservices_server--0.18.1--0.19.0.sql
Normal file
109
server/extension/cdb_dataservices_server--0.18.1--0.19.0.sql
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
|
||||||
|
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||||
|
\echo Use "ALTER EXTENSION cdb_dataservices_server UPDATE TO '0.19.0'" to load this file. \quit
|
||||||
|
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'service_type') THEN
|
||||||
|
CREATE TYPE cdb_dataservices_server.service_type AS ENUM (
|
||||||
|
'isolines',
|
||||||
|
'hires_geocoder',
|
||||||
|
'routing',
|
||||||
|
'observatory'
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'service_quota_info') THEN
|
||||||
|
CREATE TYPE cdb_dataservices_server.service_quota_info AS (
|
||||||
|
service cdb_dataservices_server.service_type,
|
||||||
|
monthly_quota NUMERIC,
|
||||||
|
used_quota NUMERIC,
|
||||||
|
soft_limit BOOLEAN,
|
||||||
|
provider TEXT
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_service_quota_info(
|
||||||
|
username TEXT,
|
||||||
|
orgname TEXT)
|
||||||
|
RETURNS SETOF cdb_dataservices_server.service_quota_info AS $$
|
||||||
|
from cartodb_services.metrics.user import UserMetricsService
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
|
plpy.execute("SELECT cdb_dataservices_server._connect_to_redis('{0}')".format(username))
|
||||||
|
redis_conn = GD["redis_connection_{0}".format(username)]['redis_metrics_connection']
|
||||||
|
|
||||||
|
today = date.today()
|
||||||
|
ret = []
|
||||||
|
|
||||||
|
#-- Isolines
|
||||||
|
service = 'isolines'
|
||||||
|
plpy.execute("SELECT cdb_dataservices_server._get_isolines_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
|
||||||
|
user_isolines_config = GD["user_isolines_routing_config_{0}".format(username)]
|
||||||
|
user_service = UserMetricsService(user_isolines_config, redis_conn)
|
||||||
|
|
||||||
|
monthly_quota = user_isolines_config.isolines_quota
|
||||||
|
used_quota = user_service.used_quota(user_isolines_config.service_type, today)
|
||||||
|
soft_limit = user_isolines_config.soft_isolines_limit
|
||||||
|
provider = user_isolines_config.provider
|
||||||
|
ret += [[service, monthly_quota, used_quota, soft_limit, provider]]
|
||||||
|
|
||||||
|
#-- Hires Geocoder
|
||||||
|
service = 'hires_geocoder'
|
||||||
|
plpy.execute("SELECT cdb_dataservices_server._get_geocoder_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
|
||||||
|
user_geocoder_config = GD["user_geocoder_config_{0}".format(username)]
|
||||||
|
user_service = UserMetricsService(user_geocoder_config, redis_conn)
|
||||||
|
|
||||||
|
monthly_quota = user_geocoder_config.geocoding_quota
|
||||||
|
used_quota = user_service.used_quota(user_geocoder_config.service_type, today)
|
||||||
|
soft_limit = user_geocoder_config.soft_geocoding_limit
|
||||||
|
provider = user_geocoder_config.provider
|
||||||
|
ret += [[service, monthly_quota, used_quota, soft_limit, provider]]
|
||||||
|
|
||||||
|
#-- Routing
|
||||||
|
service = 'routing'
|
||||||
|
plpy.execute("SELECT cdb_dataservices_server._get_routing_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
|
||||||
|
user_routing_config = GD["user_routing_config_{0}".format(username)]
|
||||||
|
user_service = UserMetricsService(user_routing_config, redis_conn)
|
||||||
|
|
||||||
|
monthly_quota = user_routing_config.monthly_quota
|
||||||
|
used_quota = user_service.used_quota(user_routing_config.service_type, today)
|
||||||
|
soft_limit = user_routing_config.soft_limit
|
||||||
|
provider = user_routing_config.provider
|
||||||
|
ret += [[service, monthly_quota, used_quota, soft_limit, provider]]
|
||||||
|
|
||||||
|
#-- Observatory
|
||||||
|
service = 'observatory'
|
||||||
|
plpy.execute("SELECT cdb_dataservices_server._get_obs_config({0}, {1})".format(plpy.quote_nullable(username), plpy.quote_nullable(orgname)))
|
||||||
|
user_obs_config = GD["user_obs_config_{0}".format(username)]
|
||||||
|
user_service = UserMetricsService(user_obs_config, redis_conn)
|
||||||
|
|
||||||
|
monthly_quota = user_obs_config.monthly_quota
|
||||||
|
used_quota = user_service.used_quota(user_obs_config.service_type, today)
|
||||||
|
soft_limit = user_obs_config.soft_limit
|
||||||
|
provider = user_obs_config.provider
|
||||||
|
ret += [[service, monthly_quota, used_quota, soft_limit, provider]]
|
||||||
|
|
||||||
|
return ret
|
||||||
|
$$ LANGUAGE plpythonu;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION cdb_dataservices_server.cdb_enough_quota(
|
||||||
|
username TEXT,
|
||||||
|
orgname TEXT,
|
||||||
|
service_ TEXT,
|
||||||
|
input_size NUMERIC)
|
||||||
|
returns BOOLEAN AS $$
|
||||||
|
DECLARE
|
||||||
|
params cdb_dataservices_server.service_quota_info;
|
||||||
|
BEGIN
|
||||||
|
SELECT * INTO params
|
||||||
|
FROM cdb_dataservices_server.cdb_service_quota_info(username, orgname) AS p
|
||||||
|
WHERE p.service = service_::cdb_dataservices_server.service_type;
|
||||||
|
RETURN params.soft_limit OR ((params.used_quota + input_size) <= params.monthly_quota);
|
||||||
|
END
|
||||||
|
$$ LANGUAGE plpgsql;
|
17
server/extension/cdb_dataservices_server--0.19.0--0.18.1.sql
Normal file
17
server/extension/cdb_dataservices_server--0.19.0--0.18.1.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
--DO NOT MODIFY THIS FILE, IT IS GENERATED AUTOMATICALLY FROM SOURCES
|
||||||
|
-- Complain if script is sourced in psql, rather than via CREATE EXTENSION
|
||||||
|
\echo Use "ALTER EXTENSION cdb_dataservices_server UPDATE TO '0.18.1'" to load this file. \quit
|
||||||
|
|
||||||
|
DROP FUNCTION IF EXISTS cdb_dataservices_server.cdb_enough_quota(
|
||||||
|
username TEXT,
|
||||||
|
orgname TEXT,
|
||||||
|
service_ TEXT,
|
||||||
|
input_size NUMERIC);
|
||||||
|
|
||||||
|
DROP FUNCTION IF EXISTS cdb_dataservices_server.cdb_service_quota_info(
|
||||||
|
username TEXT,
|
||||||
|
orgname TEXT);
|
||||||
|
|
||||||
|
DROP TYPE IF EXISTS cdb_dataservices_server.service_quota_info;
|
||||||
|
|
||||||
|
DROP TYPE IF EXISTS cdb_dataservices_server.service_type;
|
2669
server/extension/cdb_dataservices_server--0.19.0.sql
Normal file
2669
server/extension/cdb_dataservices_server--0.19.0.sql
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
comment = 'CartoDB dataservices server extension'
|
comment = 'CartoDB dataservices server extension'
|
||||||
default_version = '0.18.1'
|
default_version = '0.19.0'
|
||||||
requires = 'plpythonu, plproxy, postgis, cdb_geocoder'
|
requires = 'plpythonu, plproxy, postgis, cdb_geocoder'
|
||||||
superuser = true
|
superuser = true
|
||||||
schema = cdb_dataservices_server
|
schema = cdb_dataservices_server
|
||||||
|
Loading…
Reference in New Issue
Block a user