--
-- Copyright (C) 2006 The Trustees of Princeton University
--
--- $Id: planetlab4.sql,v 1.70 2007/01/31 19:54:42 mlhuang Exp $
+-- $Id$
--
SET client_encoding = 'UNICODE';
latitude real,
longitude real,
url text,
+ ext_consortium_id integer, -- external consortium id
-- Timestamps
date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
-- Timestamps
date_created timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
- last_updated timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP
+ last_updated timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ last_contact timestamp without time zone
) WITH OIDS;
CREATE INDEX nodes_hostname_idx ON nodes (hostname) WHERE deleted IS false;
CREATE INDEX nodes_site_id_idx ON nodes (site_id) WHERE deleted IS false;
FROM slice_attribute
GROUP BY slice_id;
+--------------------------------------------------------------------------------
+-- Initscripts
+--------------------------------------------------------------------------------
+
+-- Initscripts
+CREATE TABLE initscripts (
+ initscript_id serial PRIMARY KEY, -- Initscript identifier
+ name text NOT NULL, -- Initscript name
+ enabled bool NOT NULL DEFAULT true, -- Initscript is active
+ script text NOT NULL, -- Initscript
+ UNIQUE (name)
+) WITH OIDS;
+CREATE INDEX initscripts_name_idx ON initscripts (name);
+
+
--------------------------------------------------------------------------------
-- Peers
--------------------------------------------------------------------------------
event_id serial PRIMARY KEY, -- Event identifier
person_id integer REFERENCES persons, -- Person responsible for event, if any
node_id integer REFERENCES nodes, -- Node responsible for event, if any
+ auth_type text, -- Type of auth used. i.e. AuthMethod
fault_code integer NOT NULL DEFAULT 0, -- Did this event result in error
call_name text NOT NULL, -- Call responsible for this event
call text NOT NULL, -- Call responsible for this event, including parameters
- object_type text, -- What type of object is this event affecting
message text, -- High level description of this event
runtime float DEFAULT 0, -- Event run time
time timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP -- Event timestamp
-- Database object(s) that may have been affected by a particular event
CREATE TABLE event_object (
event_id integer REFERENCES events NOT NULL, -- Event identifier
- object_id integer NOT NULL -- Object identifier
+ object_id integer NOT NULL, -- Object identifier
+ object_type text NOT NULL Default 'Unknown' -- What type of object is this event affecting
) WITH OIDS;
CREATE INDEX event_object_event_id_idx ON event_object (event_id);
CREATE INDEX event_object_object_id_idx ON event_object (object_id);
+CREATE INDEX event_object_object_type_idx ON event_object (object_type);
CREATE VIEW event_objects AS
SELECT event_id,
-array_accum(object_id) AS object_ids
+array_accum(object_id) AS object_ids,
+array_accum(object_type) AS object_types
FROM event_object
GROUP BY event_id;
events.event_id,
events.person_id,
events.node_id,
+events.auth_type,
events.fault_code,
events.call_name,
events.call,
-events.object_type,
events.message,
events.runtime,
CAST(date_part('epoch', events.time) AS bigint) AS time,
-COALESCE((SELECT object_ids FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_ids
+COALESCE((SELECT object_ids FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_ids,
+COALESCE((SELECT object_types FROM event_objects WHERE event_objects.event_id = events.event_id), '{}') AS object_types
FROM events;
CREATE OR REPLACE VIEW view_persons AS
nodes.key,
CAST(date_part('epoch', nodes.date_created) AS bigint) AS date_created,
CAST(date_part('epoch', nodes.last_updated) AS bigint) AS last_updated,
+CAST(date_part('epoch', nodes.last_contact) AS bigint) AS last_contact,
peer_node.peer_id,
peer_node.peer_node_id,
COALESCE((SELECT nodenetwork_ids FROM node_nodenetworks WHERE node_nodenetworks.node_id = nodes.node_id), '{}') AS nodenetwork_ids,
sites.latitude,
sites.longitude,
sites.url,
+sites.ext_consortium_id,
CAST(date_part('epoch', sites.date_created) AS bigint) AS date_created,
CAST(date_part('epoch', sites.last_updated) AS bigint) AS last_updated,
peer_site.peer_id,