]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Jede Menge neue Views
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 2 Nov 2017 17:52:33 +0000 (18:52 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 2 Nov 2017 17:52:33 +0000 (18:52 +0100)
dns/schema.pgsql.sql

index f77a54516069e3258d26bf27d62f7952748484ad..bebba86de81e9ac8d2516a089052be352747e206 100644 (file)
@@ -171,3 +171,116 @@ ALTER SEQUENCE IF EXISTS tsigkeys_id_seq OWNER TO pdns;
 GRANT SELECT ON TABLE tsigkeys TO dns;
 
 COMMIT;
+
+-- ----------------------------------------------------------------------
+
+BEGIN WORK;
+
+-- ----------------
+
+CREATE or REPLACE VIEW v_records AS
+SELECT r.id              AS record_id,
+       r.domain_id       AS domain_id,
+       r.name            AS record_name,
+       r.type            AS record_type,
+       r.content         AS record_content,
+       r.ttl             AS record_ttl,
+       r.prio            AS record_prio,
+       r.change_date     AS record_change_date,
+       r.disabled        AS record_disabled,
+       r.ordername       AS record_ordername,
+       r.auth            AS record_auth,
+       d.name            AS domain_name,
+       d.master          AS domain_master,
+       d.last_check      AS domain_last_check,
+       d.type            AS domain_type,
+       d.notified_serial AS domain_notified_serial,
+       d.account         AS domain_account,
+       c.id              AS comment_id,
+       c.name            AS comment_name,
+       c.type            AS comment_type,
+       c.modified_at     AS comment_modified_at,
+       c.account         AS comment_account,
+       c.comment         AS comment
+  FROM records AS r
+  LEFT join domains  AS d ON d.id = r.domain_id
+  LEFT join comments AS c ON r.name = c.name AND r.type = c.type
+  ORDER BY d.name, r.name;
+
+ALTER TABLE IF EXISTS v_records OWNER TO pdns;
+
+GRANT SELECT ON TABLE v_records TO dns;
+
+COMMIT;
+
+-- ----------------------------------------------------------------------
+
+\connect pdns_local
+
+BEGIN WORK;
+
+CREATE EXTENSION IF NOT EXISTS postgres_fdw;
+
+CREATE SERVER pdns_master FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'systemshare.pixelpark.com', dbname 'pdns');
+ALTER SERVER pdns_master OWNER TO pdns_local;
+CREATE USER MAPPING FOR pdns_local SERVER pdns_master OPTIONS (user 'pdns_local', password 'Neingeichee(ghahn7ah');
+
+CREATE SCHEMA IF NOT EXISTS pdns;
+ALTER SCHEMA pdns OWNER TO pdns_local;
+IMPORT FOREIGN SCHEMA public FROM SERVER pdns_master INTO pdns;
+
+COMMIT;
+
+-- ----------------
+
+BEGIN WORK;
+
+CREATE or REPLACE VIEW public.domains AS
+SELECT id, name, master, last_check, type, notified_serial, account
+  FROM pdns.domains
+ ORDER BY name;
+
+ALTER TABLE IF EXISTS public.domains OWNER TO pdns_local;
+
+COMMIT;
+
+-- ----------------
+
+BEGIN WORK;
+
+CREATE or REPLACE VIEW public.records AS
+SELECT id, domain_id, name, type, content, ttl, prio, change_date, disabled, ordername, auth
+  FROM pdns.records
+ WHERE name NOT in ( SELECT name FROM pdns.comments WHERE comment ~* '.*public.*');
+
+ALTER TABLE IF EXISTS public.records OWNER TO pdns_local;
+
+COMMIT;
+
+-- ----------------
+
+BEGIN WORK;
+
+CREATE or REPLACE VIEW public.supermasters AS
+SELECT ip, nameserver, account
+  FROM pdns.supermasters
+ ORDER BY nameserver;
+
+ALTER TABLE IF EXISTS public.supermasters OWNER TO pdns_local;
+
+COMMIT;
+
+-- ----------------
+
+BEGIN WORK;
+
+CREATE or REPLACE VIEW public.comments AS
+SELECT id, domain_id, name, type, modified_at, account, comment
+  FROM pdns.comments 
+ WHERE comment IS NULL OR comment !~* '.*public.*';
+
+ALTER TABLE IF EXISTS public.comments OWNER TO pdns_local;
+
+COMMIT;
+
+