--- trunk/network_topology/network_topology.sql 2005/02/15 18:56:19 6 +++ trunk/network_topology/network_topology.sql 2005/02/16 12:21:09 7 @@ -43,19 +43,45 @@ select link_id as id, link_name as text - from link; + from link order by link_name; + +-- countries + +create table country ( + country_id serial not null, + country_name text not null, + primary key (country_id) +); + +comment on table country is 'Countries'; +comment on column country.country_id is 'id'; +comment on column country.country_name is 'Country'; + +grant all on country to public ; + +create view country_combo as + select + country_id as id, + country_name as text + from country order by country_name; -- location create table location ( location_id serial not null, location_name text check (location_name != ''), + location_country_id int references country(country_id), + location_comment text, primary key(location_id) ); comment on table location is 'Locations'; comment on column location.location_id is 'id'; comment on column location.location_name is 'Location name'; +comment on column location.location_comment is 'Comment'; +comment on column location.location_country_id is 'Country'; + +INSERT INTO meta_fields VALUES ('location', 'location_comment', 'widget', 'area'); GRANT ALL ON location TO PUBLIC; @@ -64,9 +90,16 @@ location_id as id, location_name as text from location; - --- VPN connection +create view location_list as + select location_id, + location_name, + country_name, + location_comment + from location, country + where location_country_id = country_id; + +-- VPN connections create table vpn ( vpn_id serial not null, @@ -81,7 +114,7 @@ ); create unique index vpn_index on vpn(vpn_from_location_id, vpn_to_location_id, vpn_link); -comment on table vpn is 'VPN connection'; +comment on table vpn is 'VPN connections'; comment on column vpn.vpn_from_location_id is 'From location'; comment on column vpn.vpn_to_location_id is 'To location'; comment on column vpn.vpn_link is 'Using link'; @@ -89,7 +122,7 @@ comment on column vpn.vpn_remote_gw is 'Remote gateway'; comment on column vpn.vpn_comment is 'Comment'; -INSERT INTO meta_fields VALUES ('vpn', 'comment', 'widget', 'area'); +INSERT INTO meta_fields VALUES ('vpn', 'vpn_comment', 'widget', 'area'); GRANT ALL ON vpn TO PUBLIC; @@ -107,6 +140,7 @@ comment on column vpn_list.from_location is 'From location'; comment on column vpn_list.to_location is 'To location'; + -- location trust create table trust ( @@ -126,7 +160,7 @@ comment on column trust.trust_mutual is 'two-way trust'; comment on column trust.trust_comment is 'Comment'; -INSERT INTO meta_fields VALUES ('trust', 'comment', 'widget', 'area'); +INSERT INTO meta_fields VALUES ('trust', 'trust_comment', 'widget', 'area'); GRANT ALL ON trust TO PUBLIC; @@ -142,21 +176,53 @@ comment on column trust_list.from_location is 'From location'; comment on column trust_list.to_location is 'To location'; +-- combo for DNS type +create table dns_type ( + dns_type_id serial not null, + dns_type_name text not null, + primary key(dns_type_id) +) ; +insert into dns_type values(1, 'primary'); +insert into dns_type values(2, 'secondary'); +insert into dns_type values(3, 'forwarder'); + +grant all on dns_type to public; + +create view dns_type_combo as + select dns_type_id as id, dns_type_name as text + from dns_type order by dns_type_id; + + +-- hide this table +-- INSERT INTO meta_tables VALUES ('dns_type_combo', 'hide', 1); + -- DNS on location create table dns ( + dns_id serial not null, dns_on_location_id int references location(location_id), - dns_type varchar(1) not null check (dns_type like 'p' or dns_type like 's' or dns_type like 'f'), + dns_type int not null references dns_type(dns_type_id), dns_domain varchar(255) not null, primary key (dns_on_location_id, dns_type, dns_domain) ); -comment on table dns is 'Location DNS'; -comment on column dns.dns_on_location_id is 'Location'; -comment on column dns.dns_type is 'DNS type'; -comment on column dns.dns_domain is 'DNS domain'; +-- this has to go on table, not on view! +insert into meta_fields values ('dns', 'dns_domain', 'widget', 'text(size=25)') ; -GRANT ALL ON dns TO PUBLIC; +create unique index dns_id_ind on dns(dns_id); -create table dns_type ( id varchar(1) not null, text text, primary key(id) ) ; +create view dns_list as + select dns_id, + l.location_name as location, + t.dns_type_name as type, + dns_domain + from dns, location l, dns_type t + where location_id = dns_on_location_id and dns_type_id = dns_type ; + +comment on view dns_list is 'DNS on locations'; +comment on column dns_list.location is 'Location'; +comment on column dns_list.type is 'server type'; +comment on column dns_list.dns_domain is 'DNS domain'; + +GRANT ALL ON dns TO PUBLIC;