
CREATE TABLE host_network (
  public_ipv4_cidr_block  TEXT NOT NULL,
  network_name       TEXT NOT NULL,
  host               TEXT NOT NULL REFERENCES hosts(id) ON DELETE RESTRICT,
  PRIMARY KEY (host, network_name)
);


INSERT INTO host_network (host, network_name, public_ipv4_cidr_block) VALUES ('baikal', 'virbr1', '69.61.2.162/27'),
                                                                             ('baikal', 'virbr2', '69.61.2.194/26');
ALTER TABLE vms RENAME COLUMN last_seen_ipv4 TO public_ipv4;
ALTER TABLE vms RENAME COLUMN last_seen_ipv6 TO public_ipv6;
ALTER TABLE vms ADD COLUMN network_name TEXT;

UPDATE vms SET network_name = 'virbr1' WHERE public_ipv4 < '69.61.2.192' OR public_ipv4 is NULL;
UPDATE vms SET network_name = 'virbr2' WHERE public_ipv4 >= '69.61.2.192';

ALTER TABLE vms ALTER COLUMN network_name SET NOT NULL;

ALTER TABLE vms ADD FOREIGN KEY (host, network_name) REFERENCES host_network(host, network_name) ON DELETE RESTRICT;


UPDATE schemaversion SET version = 16;

