X-Git-Url: http://www.andromeda.nl/gitweb/?a=blobdiff_plain;f=src%2Fgcm_daemon%2Fclasses%2Fgnucomo_db_version.php;h=d84a3e56a919fb94b75404e22ca1a8c84f906fa1;hb=9feb4b819b2254ff385c8ddb14022c653d21ef37;hp=ff05e7ee6a5ba185bd229ad7dc289886d749ec18;hpb=4d57a7e6a9acd5f8ad538e3a4725ee4534d78c74;p=gnucomo.git diff --git a/src/gcm_daemon/classes/gnucomo_db_version.php b/src/gcm_daemon/classes/gnucomo_db_version.php index ff05e7e..d84a3e5 100644 --- a/src/gcm_daemon/classes/gnucomo_db_version.php +++ b/src/gcm_daemon/classes/gnucomo_db_version.php @@ -14,8 +14,8 @@ { 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 @@ -168,21 +168,21 @@ $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: @@ -339,7 +339,7 @@ case 36: $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); @@ -360,7 +360,7 @@ case 37: $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"; @@ -376,10 +376,10 @@ case 37: $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: @@ -425,14 +425,261 @@ case 40: $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"); + $dbms->query("CREATE INDEX log_ab_src ON log_abuse (source, objectid)"); + +/* +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); */ }