{
case 1:
//DROP the rule that prohibits updates (change of spec).
- $local_sql = "DROP RULE log_update";
-// $dbms->query($local_sql); DISABLED FOR NEW ROLE LOG-tABLE
+ $local_sql = "DROP RULE log_update ON log";
+ $dbms->query($local_sql); //DISABLED FOR NEW ROLE LOG-tABLE ???
case 2:
//In the log table processed should be false by default
$dbms->query($local_sql);
case 18:
- $local_sql = "UPDATE action SET actionname = 'Investigation completed', statuscode = 'PEN', description = 'Investigation has been done.' ";
+ $local_sql = "UPDATE action SET actionname = 'Investigation completed', statuscode = 'PEN', description = 'Investigation has been done. Information is available to fix the problem.' ";
$local_sql .= "WHERE actionid = '9'";
$dbms->query($local_sql);
case 19:
- $local_sql = "insert into type_of_issue (name, suggested_priority, description)";
- $local_sql .= " values ('parameter created',3,'A new parameter was created')";
+ $local_sql = "insert into type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " values ('parameter created',3,'A new parameter was created', true)";
$dbms->query($local_sql);
- $local_sql = "insert into type_of_issue (name, suggested_priority, description)";
- $local_sql .= " values ('property modified',3,'The STATIC property of a parameter was modified')";
+ $local_sql = "insert into type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " values ('property modified',3,'The STATIC property of a parameter was modified', true)";
$dbms->query($local_sql);
- $local_sql = "insert into type_of_issue (name, suggested_priority, description)";
- $local_sql .= " values ('parameter removed',3,'A parameter was removed') ";
+ $local_sql = "insert into type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " values ('parameter removed',3,'A parameter was removed', true) ";
$dbms->query($local_sql);
case 20:
$local_sql = "CREATE TABLE notification_check (";
$local_sql .= "checkid bigint DEFAULT nextval('checkid_seq'::text) NOT NULL,";
$local_sql .= "checkname TEXT, description TEXT, time_between_executions INTERVAL, ";
- $local_sql .= "last_execution DATETIME, execution_counter BIGINT,";
+ $local_sql .= "last_execution timestamp, execution_counter BIGINT,";
$local_sql .= "notificationcounter BIGINT)";
$dbms->query($local_sql);
$local_sql = "ALTER TABLE notification_check ADD COLUMN type_of_issueid BIGINT";
$dbms->query($local_sql);
- $local_sql = "ALTER TABLE notification_check ALTER COLUMN decreasinglist SET DEFAULT 'FALSE'";
+ $local_sql = "ALTER TABLE notification_check ALTER COLUMN decreasinglist SET DEFAULT false";
$dbms->query($local_sql);
$local_sql = "CREATE SEQUENCE checklineid_seq";
$local_sql = "ALTER TABLE notification_check_line ALTER COLUMN historicboundary SET DEFAULT '0'";
$dbms->query($local_sql);
- $local_sql = "ALTER TABLE notification_check_line ALTER COLUMN use_logid SET DEFAULT 'FALSE'";
+ $local_sql = "ALTER TABLE notification_check_line ALTER COLUMN use_logid SET DEFAULT false";
$dbms->query($local_sql);
- $local_sql = "ALTER TABLE notification_check_line ALTER COLUMN last_logid SET DEFAULT '0'";
+ $local_sql = "ALTER TABLE notification_check_line ALTER COLUMN last_logid SET DEFAULT 0";
$dbms->query($local_sql);
case 38:
$local_sql = "CREATE INDEX obj_stat_objid ON object_statistics USING btree (objectid)";
$dbms->query($local_sql);
+case 41:
+ $local_sql = "CREATE INDEX history_pid_mod ON history(paramid, modified)";
+ $dbms->query($local_sql);
+
+case 42:
+
+ // The secondary indices on log_notification should not be unique
+
+ $local_sql = "DROP INDEX lon_notificationid";
+ $dbms->query($local_sql);
+ $local_sql = "CREATE INDEX lon_notificationid ON log_notification USING btree (notificationid)";
+ $dbms->query($local_sql);
+
+ $local_sql = "DROP INDEX lon_logid";
+ $dbms->query($local_sql);
+ $local_sql = "CREATE INDEX lon_logid ON log_notification USING btree (logid)";
+ $dbms->query($local_sql);
+
+ // Additional information for the users
+
+ $local_sql = "ALTER TABLE usr ADD COLUMN display_name text";
+ $dbms->query($local_sql);
+ $local_sql = "ALTER TABLE usr ADD COLUMN email text";
+ $dbms->query($local_sql);
+
+ // Add issues for the services check
+
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('service unknown',5,'Service in log entry is unknown', true) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('service not used',5,'Service in log entry is not used', true) ";
+ $dbms->query($local_sql);
+
+ // Add a few more services
+
+ $local_sql = "INSERT INTO service VALUES ('CROND','Cron Daemon', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('gnucomo','Gnucomo Daemon', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('sendmail','Mail Transport Agent', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('dhcpd','DHCP Daemon', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('rpc','NFS Services', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('named','DNS Services', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('xinetd','Internet Daemon', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('ipop','Post Office Protocol', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('mgetty','Serial port login and fax', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('login','User login', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('pam','Authentication modules', 1, 5) ";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service VALUES ('modprobe','Kernel modules', 1, 5) ";
+ $dbms->query($local_sql);
+
+case 43:
+
+ // We need to change the type of the 'delay' and 'xdelay' fields in
+ // the 'log_adv_daemon_email' table from type time to type interval.
+ // This can not be done directly; it requires recreating the entire
+ // table and copying data from the old table.
+
+ $local_sql = "ALTER TABLE log_adv_daemon_email RENAME TO old_table";
+ $dbms->query($local_sql);
+
+ $local_sql = "CREATE TABLE log_adv_daemon_email
+ (
+ source_ip INET,
+ destination_ip INET,
+ internal_messageid TEXT,
+ external_messageid TEXT,
+ to_email TEXT,
+ from_email TEXT,
+ delay interval,
+ xdelay interval,
+ mailer TEXT,
+ status TEXT,
+ pid INT,
+ size INT,
+ pri INT,
+ relay TEXT,
+ status_details TEXT,
+ dsn TEXT
+ ) INHERITS (log_adv_daemon)";
+ $dbms->query($local_sql);
+
+ $local_sql = "INSERT INTO log_adv_daemon_email SELECT * FROM old_table";
+ $dbms->query($local_sql);
+
+ $local_sql = "DROP TABLE old_table";
+ $dbms->query($local_sql);
+
+ // The indices need to be recreated as well.
+
+ $local_sql = "CREATE INDEX log_adv_daemon_email_s_ip ON log_adv_daemon_email (source_ip)";
+ $dbms->query($local_sql);
+
+ $local_sql = "CREATE INDEX log_adv_daemon_email_d_ip ON log_adv_daemon_email (destination_ip)";
+ $dbms->query($local_sql);
+
+ $local_sql = "CREATE INDEX log_adv_daemon_email_to ON log_adv_daemon_email (to_email)";
+ $dbms->query($local_sql);
+
+ $local_sql = "CREATE INDEX log_adv_daemon_email_from ON log_adv_daemon_email (from_email)";
+ $dbms->query($local_sql);
+
+ $local_sql = "CREATE INDEX log_adv_email_status ON log_adv_daemon_email (status)";
+ $dbms->query($local_sql);
+
+ case 44:
+
+ $local_sql = "CREATE TABLE object_abuse
+ (
+ objectid bigint,
+ source inet,
+ nr_abuses integer,
+ status text,
+
+ primary key (objectid, source)
+ );";
+ $dbms->query($local_sql);
+ $dbms->query("GRANT SELECT ON log_adv_daemon_email TO GROUP view, GROUP ops, GROUP admin");
+ $dbms->query("GRANT SELECT ON object_abuse TO GROUP view, GROUP ops, GROUP admin");
+ $dbms->query("GRANT INSERT ON object_abuse TO GROUP admin");
+ $dbms->query("GRANT UPDATE ON object_abuse TO GROUP ops, GROUP admin");
+ $dbms->query("GRANT DELETE ON object_abuse TO GROUP admin");
+ $dbms->query("GRANT SELECT ON object_statistics TO GROUP view, GROUP ops, GROUP admin");
+
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('abuses exceeded',5,'Abuse treshold exceeded from an IP address', true) ";
+ $dbms->query($local_sql);
+
+ case 45:
+
+ $local_sql = "CREATE TABLE service_pattern
+ (
+ service text,
+ rank int,
+ pattern text,
+ action text,
+ argument text,
+
+ primary key (service, rank)
+ )";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO service_pattern VALUES ('ANY', 999999, '.+', 'notify', 'unmatched log')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('unmatched log',5,'Log entries could not be matched', true) ";
+ $dbms->query($local_sql);
+
+ case 46:
+
+ $local_sql = "CREATE TABLE log_abuse
+ (
+ logid bigint,
+ objectid bigint,
+ source inet
+ )";
+ $dbms->query($local_sql);
+
+ case 47:
+
+ $local_sql = "INSERT INTO service_pattern VALUES ('ANY', 999990, '[Ee][Rr][Rr][Oo][Rr]', 'notify', 'Error detected')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('Error detected',5,'An Error is reported in the log', true) ";
+ $dbms->query($local_sql);
+
+ $local_sql = "INSERT INTO service_pattern VALUES ('ANY', 999991, '[Ff][Aa][Ii][Ll]', 'notify', 'Failure detected')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('Failure detected',5,'A Failure is reported in the log', true) ";
+ $dbms->query($local_sql);
+
+ $local_sql = "INSERT INTO service_pattern VALUES ('ANY', 999992, '[Ww][Aa][Rr][Nn]', 'notify', 'Warning detected')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('Warning detected',3,'A Warning is reported in the log', true) ";
+ $dbms->query($local_sql);
+
+ case 48:
+
+ $dbms->query("GRANT SELECT ON service_pattern TO GROUP view, GROUP ops, GROUP admin");
+ $dbms->query("GRANT INSERT ON service_pattern TO GROUP admin");
+ $dbms->query("GRANT UPDATE ON service_pattern TO GROUP ops, GROUP admin");
+ $dbms->query("GRANT DELETE ON service_pattern TO GROUP admin");
+ $dbms->query("GRANT SELECT ON log_abuse TO GROUP view, GROUP ops, GROUP admin");
+
+ case 49:
+ $local_sql = "ALTER TABLE object_abuse ADD COLUMN last_change timestamp";
+ $dbms->query($local_sql);
+
+ case 50:
+
+ $dbms->query("DROP SEQUENCE log_advid_seq");
+ $dbms->query("DROP TABLE log_adv_kernel_network");
+ $dbms->query("DROP TABLE log_adv_daemon_email");
+ $dbms->query("DROP TABLE log_adv_daemon");
+ $dbms->query("DROP TABLE log_adv");
+
+ case 51:
+
+ $local_sql = "INSERT INTO type_of_issue (name, suggested_priority, description, active)";
+ $local_sql .= " VALUES ('property out of range',5,'The DYNAMIC property of a parameter is out of range', true) ";
+ $dbms->query($local_sql);
+
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, notify)";
+ $local_sql .= " VALUES ('filesystem', 'device', 'Volume on which the filesystem resides', 'STATIC', 't')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, notify)";
+ $local_sql .= " VALUES ('filesystem', 'size', 'Total size in kilobytes', 'STATIC', 't')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)";
+ $local_sql .= " VALUES ('filesystem', 'used', 'Number of kilobytes used', 'DYNAMIC', 0, 1000000, 't')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)";
+ $local_sql .= " VALUES ('filesystem', 'available', 'Number of kilobytes available', 'DYNAMIC', 1000, 1000000, 't')";
+ $dbms->query($local_sql);
+
+ case 52:
+
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, notify)";
+ $local_sql .= " VALUES ('filesystem', 'Inodes', 'Total number of i-nodes', 'STATIC', 't')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)";
+ $local_sql .= " VALUES ('filesystem', 'Iused', 'Number of i-nodes used', 'DYNAMIC', 0, 1000000, 't')";
+ $dbms->query($local_sql);
+ $local_sql = "INSERT INTO parameter_class (name, property_name, description, property_type, min, max, notify)";
+ $local_sql .= " VALUES ('filesystem', 'Ifree', 'Number of i-nodes available', 'DYNAMIC', 1000, 1000000, 't')";
+ $dbms->query($local_sql);
+
+ case 53:
+
+ $dbms->query("GRANT UPDATE ON action_user_actionstepid_seq TO GROUP ops, GROUP admin");
+
+ $dbms->query("GRANT INSERT ON property TO GROUP admin");
+ $dbms->query("GRANT UPDATE ON property TO GROUP admin");
+
+/*
+TODO:
+*/
//These columns have to be removed when a new version of PGSQL has become mainstream that supportsa DROP COLUMN
/*
$local_sql = "ALTER TABLE log DROP COLUMN recognized";
$dbms->query($local_sql);
- $local_sql = "ALTER TABLE logng DROP COLUMN recognized";
- $dbms->query($local_sql);
*/
}