X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab5.sql;h=a4ec8917df8b335cf9dc243205ccd38289d4d1de;hb=a3e24c0cc306a2cbad33de238c004a9f107a2f71;hp=6c4cc986d2f1d9d89d9c194b346929f90356cc61;hpb=40d48fabe01e13685cf380e69797ec1ed2e97eaa;p=plcapi.git diff --git a/planetlab5.sql b/planetlab5.sql index 6c4cc98..a4ec891 100644 --- a/planetlab5.sql +++ b/planetlab5.sql @@ -10,7 +10,10 @@ -- -- Copyright (C) 2006 The Trustees of Princeton University -- +-- NOTE: this file was first created for version 4.3, the filename might be confusing +-- -- $Id$ +-- $URL$ -- SET client_encoding = 'UNICODE'; @@ -259,10 +262,16 @@ CREATE TABLE boot_states ( ) WITH OIDS; INSERT INTO boot_states (boot_state) VALUES ('boot'); INSERT INTO boot_states (boot_state) VALUES ('safeboot'); -INSERT INTO boot_states (boot_state) VALUES ('failboot'); -INSERT INTO boot_states (boot_state) VALUES ('disabled'); -INSERT INTO boot_states (boot_state) VALUES ('install'); INSERT INTO boot_states (boot_state) VALUES ('reinstall'); +INSERT INTO boot_states (boot_state) VALUES ('disabled'); + +CREATE TABLE run_levels ( + run_level text PRIMARY KEY +) WITH OIDS; +INSERT INTO run_levels (run_level) VALUES ('boot'); +INSERT INTO run_levels (run_level) VALUES ('safeboot'); +INSERT INTO run_levels (run_level) VALUES ('failboot'); +INSERT INTO run_levels (run_level) VALUES ('reinstall'); -- Known node types (Nodes.py expect max length to be 20) CREATE TABLE node_types ( @@ -281,7 +290,8 @@ CREATE TABLE nodes ( hostname text NOT NULL, -- Node hostname site_id integer REFERENCES sites NOT NULL, -- At which site boot_state text REFERENCES boot_states NOT NULL -- Node boot state - DEFAULT 'install', + DEFAULT 'reinstall', + run_level text REFERENCES run_levels DEFAULT NULL, -- Node Run Level deleted boolean NOT NULL DEFAULT false, -- Is deleted -- Optional @@ -290,6 +300,7 @@ CREATE TABLE nodes ( version text, -- Boot CD version string updated by Boot Manager ssh_rsa_key text, -- SSH host key updated by Boot Manager key text, -- Node key generated when boot file is downloaded + verified boolean NOT NULL DEFAULT false, -- whether or not the node & pcu are verified -- Timestamps date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -451,23 +462,10 @@ CREATE OR REPLACE VIEW view_ilinks AS SELECT * FROM tag_types INNER JOIN ilink USING (tag_type_id); --- expose node_ids ??? --- -- cannot mention the same table twice in a join ? --- -- CREATE OR REPLACE VIEW ilink_src_node AS --- SELECT --- ilink.tag_type_id, --- ilink.src_interface_id, --- interfaces.node_id AS src_node_id, --- ilink.dst_interface_id --- FROM ilink --- INNER JOIN interfaces ON ilink.src_interface_id = interfaces.interface_id; --- --- CREATE OR REPLACE VIEW ilink_nodes AS --- SELECT --- ilink_src_node.*, --- interfaces.node_id as dst_node_id --- FROM ilink_src_node --- INNER JOIN interfaces ON ilink_src_node.dst_interface_id = interfaces.interface_id; +-- xxx TODO : expose to view_interfaces the set of ilinks a given interface is part of +-- this is needed for properly deleting these ilinks when an interface gets deleted +-- as this is not done yet, it prevents DeleteInterface, thus DeleteNode, thus DeleteSite +-- from working correctly when an iLink is set -------------------------------------------------------------------------------- -- Node groups @@ -771,7 +769,7 @@ CREATE INDEX initscripts_name_idx ON initscripts (name); -- Peers CREATE TABLE peers ( peer_id serial PRIMARY KEY, -- Peer identifier - peername text UNIQUE NOT NULL, -- Peer name + peername text NOT NULL, -- Peer name peer_url text NOT NULL, -- (HTTPS) URL of the peer PLCAPI interface cacert text, -- (SSL) Public certificate of peer API server key text, -- (GPG) Public key used for authentication @@ -1076,10 +1074,12 @@ nodes.node_type, nodes.hostname, nodes.site_id, nodes.boot_state, +nodes.run_level, nodes.deleted, nodes.model, nodes.boot_nonce, nodes.version, +nodes.verified, nodes.ssh_rsa_key, nodes.key, CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,