upgrade schema to ndoutils-1.5.2 - took the table structure from /usr/share/ndoutils/mysql.sql - merged indexes from npc/upgrade_schema.sql - some indexes are still questionable - three tables are cacti-only: * npc_service_graphs * npc_host_graphs * npc_settings - mysql table type changed (back to) MyISAM - latin1 charset enforcing on tables, seems wrong (fix it in ndoutils?) --- cacti-plugin-npc-2.0.4/npc/setup.php 2012-11-25 16:32:50.264148508 +0200 +++ plugins/npc/setup.php 2012-11-25 23:44:50.785915818 +0200 @@ -307,1168 +307,1352 @@ } } + + // Add some default values + $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_date_format','Y-m-d');"; + $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_time_format','H:i');"; + $sql[] = "INSERT IGNORE INTO settings (name, value) VALUES ('npc_log_level','0');"; + if (!in_array('npc_acknowledgements', $tables)) { - $sql[] = "CREATE TABLE `npc_acknowledgements` ( - `acknowledgement_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `entry_time_usec` int(11) NOT NULL default '0', - `acknowledgement_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `author_name` varchar(64) NOT NULL default '', - `comment_data` varchar(255) NOT NULL default '', - `is_sticky` smallint(6) NOT NULL default '0', - `persistent_comment` smallint(6) NOT NULL default '0', - `notify_contacts` smallint(6) NOT NULL default '0', - PRIMARY KEY (`acknowledgement_id`) - ) ENGINE=InnoDB COMMENT='Current and historical host and service acknowledgements';"; - - // Add some default values - $sql[] = "INSERT INTO settings VALUES ('npc_date_format','Y-m-d');"; - $sql[] = "INSERT INTO settings VALUES ('npc_time_format','H:i');"; - $sql[] = "INSERT INTO settings VALUES ('npc_log_level','0');"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_acknowledgements` ( + `acknowledgement_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `entry_time_usec` int(11) NOT NULL default '0', + `acknowledgement_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `author_name` varchar(64) character set latin1 NOT NULL default '', + `comment_data` varchar(255) character set latin1 NOT NULL default '', + `is_sticky` smallint(6) NOT NULL default '0', + `persistent_comment` smallint(6) NOT NULL default '0', + `notify_contacts` smallint(6) NOT NULL default '0', + PRIMARY KEY (`acknowledgement_id`) + ) ENGINE=MyISAM COMMENT='Current and historical host and service acknowledgements'; + "; } if (!in_array('npc_commands', $tables)) { - $sql[] = "CREATE TABLE `npc_commands` ( - `command_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `command_line` varchar(255) NOT NULL default '', - PRIMARY KEY (`command_id`), - UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`config_type`) - ) ENGINE=InnoDB COMMENT='Command definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_commands` ( + `command_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `command_line` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`command_id`), + UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`config_type`) + ) ENGINE=MyISAM COMMENT='Command definitions'; + "; } if (!in_array('npc_commenthistory', $tables)) { - $sql[] = "CREATE TABLE `npc_commenthistory` ( - `commenthistory_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `entry_time_usec` int(11) NOT NULL default '0', - `comment_type` smallint(6) NOT NULL default '0', - `entry_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', - `internal_comment_id` int(11) NOT NULL default '0', - `author_name` varchar(64) NOT NULL default '', - `comment_data` varchar(255) NOT NULL default '', - `is_persistent` smallint(6) NOT NULL default '0', - `comment_source` smallint(6) NOT NULL default '0', - `expires` smallint(6) NOT NULL default '0', - `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', - `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', - `deletion_time_usec` int(11) NOT NULL default '0', - PRIMARY KEY (`commenthistory_id`), - UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`), - KEY `idx_internal_comment_id` (`internal_comment_id`) - ) ENGINE=InnoDB COMMENT='Historical host and service comments';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_commenthistory` ( + `commenthistory_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `entry_time_usec` int(11) NOT NULL default '0', + `comment_type` smallint(6) NOT NULL default '0', + `entry_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', + `internal_comment_id` int(11) NOT NULL default '0', + `author_name` varchar(64) character set latin1 NOT NULL default '', + `comment_data` varchar(255) character set latin1 NOT NULL default '', + `is_persistent` smallint(6) NOT NULL default '0', + `comment_source` smallint(6) NOT NULL default '0', + `expires` smallint(6) NOT NULL default '0', + `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', + `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', + `deletion_time_usec` int(11) NOT NULL default '0', + PRIMARY KEY (`commenthistory_id`), + UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`) + ) ENGINE=MyISAM COMMENT='Historical host and service comments'; + "; } if (!in_array('npc_comments', $tables)) { - $sql[] = "CREATE TABLE `npc_comments` ( - `comment_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `entry_time_usec` int(11) NOT NULL default '0', - `comment_type` smallint(6) NOT NULL default '0', - `entry_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', - `internal_comment_id` int(11) NOT NULL default '0', - `author_name` varchar(64) NOT NULL default '', - `comment_data` varchar(255) NOT NULL default '', - `is_persistent` smallint(6) NOT NULL default '0', - `comment_source` smallint(6) NOT NULL default '0', - `expires` smallint(6) NOT NULL default '0', - `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', - PRIMARY KEY (`comment_id`), - UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`), - KEY `idx1` (`object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_comments` ( + `comment_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `entry_time_usec` int(11) NOT NULL default '0', + `comment_type` smallint(6) NOT NULL default '0', + `entry_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', + `internal_comment_id` int(11) NOT NULL default '0', + `author_name` varchar(64) character set latin1 NOT NULL default '', + `comment_data` varchar(255) character set latin1 NOT NULL default '', + `is_persistent` smallint(6) NOT NULL default '0', + `comment_source` smallint(6) NOT NULL default '0', + `expires` smallint(6) NOT NULL default '0', + `expiration_time` datetime NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (`comment_id`), + UNIQUE KEY `instance_id` (`instance_id`,`comment_time`,`internal_comment_id`) + ) ENGINE=MyISAM ; + "; + $sql[] = "CREATE INDEX idx1 ON npc_comments(object_id);"; } if (!in_array('npc_configfiles', $tables)) { - $sql[] = "CREATE TABLE `npc_configfiles` ( - `configfile_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `configfile_type` smallint(6) NOT NULL default '0', - `configfile_path` varchar(255) NOT NULL default '', - PRIMARY KEY (`configfile_id`), - UNIQUE KEY `instance_id` (`instance_id`,`configfile_type`,`configfile_path`) - ) ENGINE=InnoDB COMMENT='Configuration files';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_configfiles` ( + `configfile_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `configfile_type` smallint(6) NOT NULL default '0', + `configfile_path` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`configfile_id`), + UNIQUE KEY `instance_id` (`instance_id`,`configfile_type`,`configfile_path`) + ) ENGINE=MyISAM COMMENT='Configuration files'; + "; } if (!in_array('npc_configfilevariables', $tables)) { - $sql[] = "CREATE TABLE `npc_configfilevariables` ( - `configfilevariable_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `configfile_id` int(11) NOT NULL default '0', - `varname` varchar(64) NOT NULL default '', - `varvalue` varchar(255) NOT NULL default '', - PRIMARY KEY (`configfilevariable_id`), - KEY `instance_id` (`instance_id`,`configfile_id`) - ) ENGINE=InnoDB COMMENT='Configuration file variables';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_configfilevariables` ( + `configfilevariable_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `configfile_id` int(11) NOT NULL default '0', + `varname` varchar(64) character set latin1 NOT NULL default '', + `varvalue` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`configfilevariable_id`) + ) ENGINE=MyISAM COMMENT='Configuration file variables'; + "; + // TODO? $sql[] = "KEY `instance_id` (`instance_id`,`configfile_id`"; } if (!in_array('npc_conninfo', $tables)) { - $sql[] = "CREATE TABLE `npc_conninfo` ( - `conninfo_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `agent_name` varchar(32) NOT NULL default '', - `agent_version` varchar(8) NOT NULL default '', - `disposition` varchar(16) NOT NULL default '', - `connect_source` varchar(16) NOT NULL default '', - `connect_type` varchar(16) NOT NULL default '', - `connect_time` datetime NOT NULL default '0000-00-00 00:00:00', - `disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00', - `last_checkin_time` datetime NOT NULL default '0000-00-00 00:00:00', - `data_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `data_end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `bytes_processed` int(11) NOT NULL default '0', - `lines_processed` int(11) NOT NULL default '0', - `entries_processed` int(11) NOT NULL default '0', - PRIMARY KEY (`conninfo_id`) - ) ENGINE=InnoDB COMMENT='NDO2DB daemon connection information';"; + $sql[] = " + + CREATE TABLE IF NOT EXISTS `npc_conninfo` ( + `conninfo_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `agent_name` varchar(32) character set latin1 NOT NULL default '', + `agent_version` varchar(8) character set latin1 NOT NULL default '', + `disposition` varchar(16) character set latin1 NOT NULL default '', + `connect_source` varchar(16) character set latin1 NOT NULL default '', + `connect_type` varchar(16) character set latin1 NOT NULL default '', + `connect_time` datetime NOT NULL default '0000-00-00 00:00:00', + `disconnect_time` datetime NOT NULL default '0000-00-00 00:00:00', + `last_checkin_time` datetime NOT NULL default '0000-00-00 00:00:00', + `data_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `data_end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `bytes_processed` int(11) NOT NULL default '0', + `lines_processed` int(11) NOT NULL default '0', + `entries_processed` int(11) NOT NULL default '0', + PRIMARY KEY (`conninfo_id`) + ) ENGINE=MyISAM COMMENT='NDO2DB daemon connection information'; + "; } if (!in_array('npc_contact_addresses', $tables)) { - $sql[] = "CREATE TABLE `npc_contact_addresses` ( - `contact_address_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `contact_id` int(11) NOT NULL default '0', - `address_number` smallint(6) NOT NULL default '0', - `address` varchar(255) NOT NULL default '', - PRIMARY KEY (`contact_address_id`), - UNIQUE KEY `contact_id` (`contact_id`,`address_number`) - ) ENGINE=InnoDB COMMENT='Contact addresses';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contact_addresses` ( + `contact_address_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `contact_id` int(11) NOT NULL default '0', + `address_number` smallint(6) NOT NULL default '0', + `address` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`contact_address_id`), + UNIQUE KEY `contact_id` (`contact_id`,`address_number`) + ) ENGINE=MyISAM COMMENT='Contact addresses'; + "; } if (!in_array('npc_contact_notificationcommands', $tables)) { - $sql[] = "CREATE TABLE `npc_contact_notificationcommands` ( - `contact_notificationcommand_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `contact_id` int(11) NOT NULL default '0', - `notification_type` smallint(6) NOT NULL default '0', - `command_object_id` int(11) NOT NULL default '0', - `command_args` varchar(255) NOT NULL default '', - PRIMARY KEY (`contact_notificationcommand_id`), - UNIQUE KEY `contact_id` (`contact_id`,`notification_type`,`command_object_id`,`command_args`) - ) ENGINE=InnoDB COMMENT='Contact host and service notification commands';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contact_notificationcommands` ( + `contact_notificationcommand_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `contact_id` int(11) NOT NULL default '0', + `notification_type` smallint(6) NOT NULL default '0', + `command_object_id` int(11) NOT NULL default '0', + `command_args` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`contact_notificationcommand_id`), + UNIQUE KEY `contact_id` (`contact_id`,`notification_type`,`command_object_id`,`command_args`) + ) ENGINE=MyISAM COMMENT='Contact host and service notification commands'; + "; } if (!in_array('npc_contactgroup_members', $tables)) { - $sql[] = "CREATE TABLE `npc_contactgroup_members` ( - `contactgroup_member_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `contactgroup_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`contactgroup_member_id`), - UNIQUE KEY `instance_id` (`contactgroup_id`,`contact_object_id`) - ) ENGINE=InnoDB COMMENT='Contactgroup members';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contactgroup_members` ( + `contactgroup_member_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `contactgroup_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`contactgroup_member_id`), + UNIQUE KEY `instance_id` (`contactgroup_id`,`contact_object_id`) + ) ENGINE=MyISAM COMMENT='Contactgroup members'; + "; } if (!in_array('npc_contactgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_contactgroups` ( - `contactgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `contactgroup_object_id` int(11) NOT NULL default '0', - `alias` varchar(255) NOT NULL default '', - PRIMARY KEY (`contactgroup_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contactgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Contactgroup definitions';"; + $sql[] = " + + CREATE TABLE IF NOT EXISTS `npc_contactgroups` ( + `contactgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `contactgroup_object_id` int(11) NOT NULL default '0', + `alias` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`contactgroup_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contactgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Contactgroup definitions'; + "; } if (!in_array('npc_contactnotificationmethods', $tables)) { - $sql[] = "CREATE TABLE `npc_contactnotificationmethods` ( - `contactnotificationmethod_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `contactnotification_id` int(11) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `command_object_id` int(11) NOT NULL default '0', - `command_args` varchar(255) NOT NULL default '', - PRIMARY KEY (`contactnotificationmethod_id`), - UNIQUE KEY `instance_id` (`instance_id`,`contactnotification_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical record of contact notification methods';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contactnotificationmethods` ( + `contactnotificationmethod_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `contactnotification_id` int(11) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `command_object_id` int(11) NOT NULL default '0', + `command_args` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`contactnotificationmethod_id`), + UNIQUE KEY `instance_id` (`instance_id`,`contactnotification_id`,`start_time`,`start_time_usec`) + ) ENGINE=MyISAM COMMENT='Historical record of contact notification methods'; + "; } if (!in_array('npc_contactnotifications', $tables)) { - $sql[] = "CREATE TABLE `npc_contactnotifications` ( - `contactnotification_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `notification_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - PRIMARY KEY (`contactnotification_id`), - UNIQUE KEY `instance_id` (`instance_id`,`contact_object_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical record of contact notifications';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contactnotifications` ( + `contactnotification_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `notification_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + PRIMARY KEY (`contactnotification_id`), + UNIQUE KEY `instance_id` (`instance_id`,`contact_object_id`,`start_time`,`start_time_usec`) + ) ENGINE=MyISAM COMMENT='Historical record of contact notifications'; + "; } if (!in_array('npc_contacts', $tables)) { - $sql[] = "CREATE TABLE `npc_contacts` ( - `contact_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - `alias` varchar(64) NOT NULL default '', - `email_address` varchar(255) NOT NULL default '', - `pager_address` varchar(64) NOT NULL default '', - `host_timeperiod_object_id` int(11) NOT NULL default '0', - `service_timeperiod_object_id` int(11) NOT NULL default '0', - `host_notifications_enabled` smallint(6) NOT NULL default '0', - `service_notifications_enabled` smallint(6) NOT NULL default '0', - `can_submit_commands` smallint(6) NOT NULL default '0', - `notify_service_recovery` smallint(6) NOT NULL default '0', - `notify_service_warning` smallint(6) NOT NULL default '0', - `notify_service_unknown` smallint(6) NOT NULL default '0', - `notify_service_critical` smallint(6) NOT NULL default '0', - `notify_service_flapping` smallint(6) NOT NULL default '0', - `notify_service_downtime` smallint(6) NOT NULL default '0', - `notify_host_recovery` smallint(6) NOT NULL default '0', - `notify_host_down` smallint(6) NOT NULL default '0', - `notify_host_unreachable` smallint(6) NOT NULL default '0', - `notify_host_flapping` smallint(6) NOT NULL default '0', - `notify_host_downtime` smallint(6) NOT NULL default '0', - PRIMARY KEY (`contact_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contact_object_id`) - ) ENGINE=InnoDB COMMENT='Contact definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contacts` ( + `contact_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + `alias` varchar(64) character set latin1 NOT NULL default '', + `email_address` varchar(255) character set latin1 NOT NULL default '', + `pager_address` varchar(64) character set latin1 NOT NULL default '', + `host_timeperiod_object_id` int(11) NOT NULL default '0', + `service_timeperiod_object_id` int(11) NOT NULL default '0', + `host_notifications_enabled` smallint(6) NOT NULL default '0', + `service_notifications_enabled` smallint(6) NOT NULL default '0', + `can_submit_commands` smallint(6) NOT NULL default '0', + `notify_service_recovery` smallint(6) NOT NULL default '0', + `notify_service_warning` smallint(6) NOT NULL default '0', + `notify_service_unknown` smallint(6) NOT NULL default '0', + `notify_service_critical` smallint(6) NOT NULL default '0', + `notify_service_flapping` smallint(6) NOT NULL default '0', + `notify_service_downtime` smallint(6) NOT NULL default '0', + `notify_host_recovery` smallint(6) NOT NULL default '0', + `notify_host_down` smallint(6) NOT NULL default '0', + `notify_host_unreachable` smallint(6) NOT NULL default '0', + `notify_host_flapping` smallint(6) NOT NULL default '0', + `notify_host_downtime` smallint(6) NOT NULL default '0', + PRIMARY KEY (`contact_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`contact_object_id`) + ) ENGINE=MyISAM COMMENT='Contact definitions'; + "; } if (!in_array('npc_contactstatus', $tables)) { - $sql[] = "CREATE TABLE `npc_contactstatus` ( - `contactstatus_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', - `host_notifications_enabled` smallint(6) NOT NULL default '0', - `service_notifications_enabled` smallint(6) NOT NULL default '0', - `last_host_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `last_service_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `modified_attributes` int(11) NOT NULL default '0', - `modified_host_attributes` int(11) NOT NULL default '0', - `modified_service_attributes` int(11) NOT NULL default '0', - PRIMARY KEY (`contactstatus_id`), - UNIQUE KEY `contact_object_id` (`contact_object_id`) - ) ENGINE=InnoDB COMMENT='Contact status';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_contactstatus` ( + `contactstatus_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', + `host_notifications_enabled` smallint(6) NOT NULL default '0', + `service_notifications_enabled` smallint(6) NOT NULL default '0', + `last_host_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `last_service_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `modified_attributes` int(11) NOT NULL default '0', + `modified_host_attributes` int(11) NOT NULL default '0', + `modified_service_attributes` int(11) NOT NULL default '0', + PRIMARY KEY (`contactstatus_id`), + UNIQUE KEY `contact_object_id` (`contact_object_id`) + ) ENGINE=MyISAM COMMENT='Contact status'; + "; } if (!in_array('npc_customvariables', $tables)) { - $sql[] = "CREATE TABLE `npc_customvariables` ( - `customvariable_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `has_been_modified` smallint(6) NOT NULL default '0', - `varname` varchar(255) NOT NULL default '', - `varvalue` varchar(255) NOT NULL default '', - PRIMARY KEY (`customvariable_id`), - UNIQUE KEY `object_id_2` (`object_id`,`config_type`,`varname`), - KEY `varname` (`varname`) - ) ENGINE=InnoDB COMMENT='Custom variables';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_customvariables` ( + `customvariable_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `has_been_modified` smallint(6) NOT NULL default '0', + `varname` varchar(255) character set latin1 NOT NULL default '', + `varvalue` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`customvariable_id`), + UNIQUE KEY `object_id_2` (`object_id`,`config_type`,`varname`), + KEY `varname` (`varname`) + ) ENGINE=MyISAM COMMENT='Custom variables'; + "; } if (!in_array('npc_customvariablestatus', $tables)) { - $sql[] = "CREATE TABLE `npc_customvariablestatus` ( - `customvariablestatus_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', - `has_been_modified` smallint(6) NOT NULL default '0', - `varname` varchar(255) NOT NULL default '', - `varvalue` varchar(255) NOT NULL default '', - PRIMARY KEY (`customvariablestatus_id`), - UNIQUE KEY `object_id_2` (`object_id`,`varname`), - KEY `varname` (`varname`) - ) ENGINE=InnoDB COMMENT='Custom variable status information';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_customvariablestatus` ( + `customvariablestatus_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', + `has_been_modified` smallint(6) NOT NULL default '0', + `varname` varchar(255) character set latin1 NOT NULL default '', + `varvalue` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`customvariablestatus_id`), + UNIQUE KEY `object_id_2` (`object_id`,`varname`), + KEY `varname` (`varname`) + ) ENGINE=MyISAM COMMENT='Custom variable status information'; + "; } if (!in_array('npc_dbversion', $tables)) { - $sql[] = "CREATE TABLE `npc_dbversion` ( - `name` varchar(10) NOT NULL default '', - `version` varchar(10) NOT NULL default '' - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_dbversion` ( + `name` varchar(10) character set latin1 NOT NULL default '', + `version` varchar(10) character set latin1 NOT NULL default '' + ) ENGINE=MyISAM; + "; } if (!in_array('npc_downtimehistory', $tables)) { - $sql[] = "CREATE TABLE `npc_downtimehistory` ( - `downtimehistory_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `downtime_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `author_name` varchar(64) NOT NULL default '', - `comment_data` varchar(255) NOT NULL default '', - `internal_downtime_id` int(11) NOT NULL default '0', - `triggered_by_id` int(11) NOT NULL default '0', - `is_fixed` smallint(6) NOT NULL default '0', - `duration` smallint(6) NOT NULL default '0', - `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `was_started` smallint(6) NOT NULL default '0', - `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `actual_start_time_usec` int(11) NOT NULL default '0', - `actual_end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `actual_end_time_usec` int(11) NOT NULL default '0', - `was_cancelled` smallint(6) NOT NULL default '0', - PRIMARY KEY (`downtimehistory_id`), - UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`) - ) ENGINE=InnoDB COMMENT='Historical scheduled host and service downtime';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_downtimehistory` ( + `downtimehistory_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `downtime_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `author_name` varchar(64) character set latin1 NOT NULL default '', + `comment_data` varchar(255) character set latin1 NOT NULL default '', + `internal_downtime_id` int(11) NOT NULL default '0', + `triggered_by_id` int(11) NOT NULL default '0', + `is_fixed` smallint(6) NOT NULL default '0', + `duration` smallint(6) NOT NULL default '0', + `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `was_started` smallint(6) NOT NULL default '0', + `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `actual_start_time_usec` int(11) NOT NULL default '0', + `actual_end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `actual_end_time_usec` int(11) NOT NULL default '0', + `was_cancelled` smallint(6) NOT NULL default '0', + PRIMARY KEY (`downtimehistory_id`), + UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`) + ) ENGINE=MyISAM COMMENT='Historical scheduled host and service downtime'; + "; } if (!in_array('npc_eventhandlers', $tables)) { - $sql[] = "CREATE TABLE `npc_eventhandlers` ( - `eventhandler_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `eventhandler_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `state_type` smallint(6) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `command_object_id` int(11) NOT NULL default '0', - `command_args` varchar(255) NOT NULL default '', - `command_line` varchar(255) NOT NULL default '', - `timeout` smallint(6) NOT NULL default '0', - `early_timeout` smallint(6) NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `return_code` smallint(6) NOT NULL default '0', - `output` varchar(255) NOT NULL default '', - PRIMARY KEY (`eventhandler_id`), - UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical host and service event handlers';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_eventhandlers` ( + `eventhandler_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `eventhandler_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `state_type` smallint(6) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `command_object_id` int(11) NOT NULL default '0', + `command_args` varchar(255) character set latin1 NOT NULL default '', + `command_line` varchar(255) character set latin1 NOT NULL default '', + `timeout` smallint(6) NOT NULL default '0', + `early_timeout` smallint(6) NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `return_code` smallint(6) NOT NULL default '0', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + PRIMARY KEY (`eventhandler_id`), + UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`) + ) ENGINE=MyISAM COMMENT='Historical host and service event handlers'; + "; } if (!in_array('npc_externalcommands', $tables)) { - $sql[] = "CREATE TABLE `npc_externalcommands` ( - `externalcommand_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `command_type` smallint(6) NOT NULL default '0', - `command_name` varchar(128) NOT NULL default '', - `command_args` varchar(255) NOT NULL default '', - PRIMARY KEY (`externalcommand_id`) - ) ENGINE=InnoDB COMMENT='Historical record of processed external commands';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_externalcommands` ( + `externalcommand_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `command_type` smallint(6) NOT NULL default '0', + `command_name` varchar(128) character set latin1 NOT NULL default '', + `command_args` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`externalcommand_id`) + ) ENGINE=MyISAM COMMENT='Historical record of processed external commands'; + "; } if (!in_array('npc_flappinghistory', $tables)) { - $sql[] = "CREATE TABLE `npc_flappinghistory` ( - `flappinghistory_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `event_time` datetime NOT NULL default '0000-00-00 00:00:00', - `event_time_usec` int(11) NOT NULL default '0', - `event_type` smallint(6) NOT NULL default '0', - `reason_type` smallint(6) NOT NULL default '0', - `flapping_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `percent_state_change` double NOT NULL default '0', - `low_threshold` double NOT NULL default '0', - `high_threshold` double NOT NULL default '0', - `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', - `internal_comment_id` int(11) NOT NULL default '0', - PRIMARY KEY (`flappinghistory_id`) - ) ENGINE=InnoDB COMMENT='Current and historical record of host and service flapping';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_flappinghistory` ( + `flappinghistory_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `event_time` datetime NOT NULL default '0000-00-00 00:00:00', + `event_time_usec` int(11) NOT NULL default '0', + `event_type` smallint(6) NOT NULL default '0', + `reason_type` smallint(6) NOT NULL default '0', + `flapping_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `percent_state_change` double NOT NULL default '0', + `low_threshold` double NOT NULL default '0', + `high_threshold` double NOT NULL default '0', + `comment_time` datetime NOT NULL default '0000-00-00 00:00:00', + `internal_comment_id` int(11) NOT NULL default '0', + PRIMARY KEY (`flappinghistory_id`) + ) ENGINE=MyISAM COMMENT='Current and historical record of host and service flapping'; + "; } if (!in_array('npc_host_contactgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_host_contactgroups` ( - `host_contactgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `host_id` int(11) NOT NULL default '0', - `contactgroup_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`host_contactgroup_id`), - UNIQUE KEY `instance_id` (`host_id`,`contactgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Host contact groups';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_host_contactgroups` ( + `host_contactgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `host_id` int(11) NOT NULL default '0', + `contactgroup_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`host_contactgroup_id`), + UNIQUE KEY `instance_id` (`host_id`,`contactgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Host contact groups'; + "; } if (!in_array('npc_host_contacts', $tables)) { - $sql[] = "CREATE TABLE `npc_host_contacts` ( - `host_contact_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `host_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`host_contact_id`), - UNIQUE KEY `instance_id` (`instance_id`,`host_id`,`contact_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_host_contacts` ( + `host_contact_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `host_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`host_contact_id`), + UNIQUE KEY `instance_id` (`instance_id`,`host_id`,`contact_object_id`) + ) ENGINE=MyISAM ; + "; } if (!in_array('npc_host_parenthosts', $tables)) { - $sql[] = "CREATE TABLE `npc_host_parenthosts` ( - `host_parenthost_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `host_id` int(11) NOT NULL default '0', - `parent_host_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`host_parenthost_id`), - UNIQUE KEY `instance_id` (`host_id`,`parent_host_object_id`) - ) ENGINE=InnoDB COMMENT='Parent hosts';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_host_parenthosts` ( + `host_parenthost_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `host_id` int(11) NOT NULL default '0', + `parent_host_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`host_parenthost_id`), + UNIQUE KEY `instance_id` (`host_id`,`parent_host_object_id`) + ) ENGINE=MyISAM COMMENT='Parent hosts'; + "; } if (!in_array('npc_hostchecks', $tables)) { - $sql[] = "CREATE TABLE `npc_hostchecks` ( - `hostcheck_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `check_type` smallint(6) NOT NULL default '0', - `is_raw_check` smallint(6) NOT NULL default '0', - `current_check_attempt` smallint(6) NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `state_type` smallint(6) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `command_object_id` int(11) NOT NULL default '0', - `command_args` varchar(255) NOT NULL default '', - `command_line` varchar(255) NOT NULL default '', - `timeout` smallint(6) NOT NULL default '0', - `early_timeout` smallint(6) NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `latency` double NOT NULL default '0', - `return_code` smallint(6) NOT NULL default '0', - `output` varchar(255) NOT NULL default '', - `perfdata` varchar(255) NOT NULL default '', - PRIMARY KEY (`hostcheck_id`), - UNIQUE KEY `instance_id` (`instance_id`,`host_object_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical host checks';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostchecks` ( + `hostcheck_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `check_type` smallint(6) NOT NULL default '0', + `is_raw_check` smallint(6) NOT NULL default '0', + `current_check_attempt` smallint(6) NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `state_type` smallint(6) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `command_object_id` int(11) NOT NULL default '0', + `command_args` varchar(255) character set latin1 NOT NULL default '', + `command_line` varchar(255) character set latin1 NOT NULL default '', + `timeout` smallint(6) NOT NULL default '0', + `early_timeout` smallint(6) NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `latency` double NOT NULL default '0', + `return_code` smallint(6) NOT NULL default '0', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + `perfdata` TEXT character set latin1 NOT NULL default '', + PRIMARY KEY (`hostcheck_id`), + UNIQUE KEY `instance_id` (`instance_id`,`host_object_id`,`start_time`,`start_time_usec`) + ) ENGINE=MyISAM COMMENT='Historical host checks'; + "; } if (!in_array('npc_hostdependencies', $tables)) { - $sql[] = "CREATE TABLE `npc_hostdependencies` ( - `hostdependency_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `dependent_host_object_id` int(11) NOT NULL default '0', - `dependency_type` smallint(6) NOT NULL default '0', - `inherits_parent` smallint(6) NOT NULL default '0', - `timeperiod_object_id` int(11) NOT NULL default '0', - `fail_on_up` smallint(6) NOT NULL default '0', - `fail_on_down` smallint(6) NOT NULL default '0', - `fail_on_unreachable` smallint(6) NOT NULL default '0', - PRIMARY KEY (`hostdependency_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`dependent_host_object_id`,`dependency_type`,`inherits_parent`,`fail_on_up`,`fail_on_down`,`fail_on_unreachable`) - ) ENGINE=InnoDB COMMENT='Host dependency definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostdependencies` ( + `hostdependency_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `dependent_host_object_id` int(11) NOT NULL default '0', + `dependency_type` smallint(6) NOT NULL default '0', + `inherits_parent` smallint(6) NOT NULL default '0', + `timeperiod_object_id` int(11) NOT NULL default '0', + `fail_on_up` smallint(6) NOT NULL default '0', + `fail_on_down` smallint(6) NOT NULL default '0', + `fail_on_unreachable` smallint(6) NOT NULL default '0', + PRIMARY KEY (`hostdependency_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`dependent_host_object_id`,`dependency_type`,`inherits_parent`,`fail_on_up`,`fail_on_down`,`fail_on_unreachable`) + ) ENGINE=MyISAM COMMENT='Host dependency definitions'; + "; } if (!in_array('npc_hostescalation_contactgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_hostescalation_contactgroups` ( - `hostescalation_contactgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `hostescalation_id` int(11) NOT NULL default '0', - `contactgroup_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`hostescalation_contactgroup_id`), - UNIQUE KEY `instance_id` (`hostescalation_id`,`contactgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Host escalation contact groups';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostescalation_contactgroups` ( + `hostescalation_contactgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `hostescalation_id` int(11) NOT NULL default '0', + `contactgroup_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`hostescalation_contactgroup_id`), + UNIQUE KEY `instance_id` (`hostescalation_id`,`contactgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Host escalation contact groups'; + "; } if (!in_array('npc_hostescalation_contacts', $tables)) { - $sql[] = "CREATE TABLE `npc_hostescalation_contacts` ( - `hostescalation_contact_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `hostescalation_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`hostescalation_contact_id`), - UNIQUE KEY `instance_id` (`instance_id`,`hostescalation_id`,`contact_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostescalation_contacts` ( + `hostescalation_contact_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `hostescalation_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`hostescalation_contact_id`), + UNIQUE KEY `instance_id` (`instance_id`,`hostescalation_id`,`contact_object_id`) + ) ENGINE=MyISAM ; + "; } if (!in_array('npc_hostescalations', $tables)) { - $sql[] = "CREATE TABLE `npc_hostescalations` ( - `hostescalation_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `timeperiod_object_id` int(11) NOT NULL default '0', - `first_notification` smallint(6) NOT NULL default '0', - `last_notification` smallint(6) NOT NULL default '0', - `notification_interval` double NOT NULL default '0', - `escalate_on_recovery` smallint(6) NOT NULL default '0', - `escalate_on_down` smallint(6) NOT NULL default '0', - `escalate_on_unreachable` smallint(6) NOT NULL default '0', - PRIMARY KEY (`hostescalation_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`) - ) ENGINE=InnoDB COMMENT='Host escalation definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostescalations` ( + `hostescalation_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `timeperiod_object_id` int(11) NOT NULL default '0', + `first_notification` smallint(6) NOT NULL default '0', + `last_notification` smallint(6) NOT NULL default '0', + `notification_interval` double NOT NULL default '0', + `escalate_on_recovery` smallint(6) NOT NULL default '0', + `escalate_on_down` smallint(6) NOT NULL default '0', + `escalate_on_unreachable` smallint(6) NOT NULL default '0', + PRIMARY KEY (`hostescalation_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`) + ) ENGINE=MyISAM COMMENT='Host escalation definitions'; + "; } if (!in_array('npc_hostgroup_members', $tables)) { - $sql[] = "CREATE TABLE `npc_hostgroup_members` ( - `hostgroup_member_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `hostgroup_id` int(11) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`hostgroup_member_id`), - UNIQUE KEY `instance_id` (`hostgroup_id`,`host_object_id`) - ) ENGINE=InnoDB COMMENT='Hostgroup members';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostgroup_members` ( + `hostgroup_member_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `hostgroup_id` int(11) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`hostgroup_member_id`), + UNIQUE KEY `instance_id` (`hostgroup_id`,`host_object_id`) + ) ENGINE=MyISAM COMMENT='Hostgroup members'; + "; } if (!in_array('npc_hostgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_hostgroups` ( - `hostgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `hostgroup_object_id` int(11) NOT NULL default '0', - `alias` varchar(255) NOT NULL default '', - PRIMARY KEY (`hostgroup_id`), - UNIQUE KEY `instance_id` (`instance_id`,`hostgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Hostgroup definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hostgroups` ( + `hostgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `hostgroup_object_id` int(11) NOT NULL default '0', + `alias` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`hostgroup_id`), + UNIQUE KEY `instance_id` (`instance_id`,`hostgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Hostgroup definitions'; + "; } if (!in_array('npc_hosts', $tables)) { - $sql[] = "CREATE TABLE `npc_hosts` ( - `host_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `alias` varchar(64) NOT NULL default '', - `display_name` varchar(64) NOT NULL default '', - `address` varchar(128) NOT NULL default '', - `check_command_object_id` int(11) NOT NULL default '0', - `check_command_args` varchar(255) NOT NULL default '', - `eventhandler_command_object_id` int(11) NOT NULL default '0', - `eventhandler_command_args` varchar(255) NOT NULL default '', - `notification_timeperiod_object_id` int(11) NOT NULL default '0', - `check_timeperiod_object_id` int(11) NOT NULL default '0', - `failure_prediction_options` varchar(64) NOT NULL default '', - `check_interval` double NOT NULL default '0', - `retry_interval` double NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `first_notification_delay` double NOT NULL default '0', - `notification_interval` double NOT NULL default '0', - `notify_on_down` smallint(6) NOT NULL default '0', - `notify_on_unreachable` smallint(6) NOT NULL default '0', - `notify_on_recovery` smallint(6) NOT NULL default '0', - `notify_on_flapping` smallint(6) NOT NULL default '0', - `notify_on_downtime` smallint(6) NOT NULL default '0', - `stalk_on_up` smallint(6) NOT NULL default '0', - `stalk_on_down` smallint(6) NOT NULL default '0', - `stalk_on_unreachable` smallint(6) NOT NULL default '0', - `flap_detection_enabled` smallint(6) NOT NULL default '0', - `flap_detection_on_up` smallint(6) NOT NULL default '0', - `flap_detection_on_down` smallint(6) NOT NULL default '0', - `flap_detection_on_unreachable` smallint(6) NOT NULL default '0', - `low_flap_threshold` double NOT NULL default '0', - `high_flap_threshold` double NOT NULL default '0', - `process_performance_data` smallint(6) NOT NULL default '0', - `freshness_checks_enabled` smallint(6) NOT NULL default '0', - `freshness_threshold` smallint(6) NOT NULL default '0', - `passive_checks_enabled` smallint(6) NOT NULL default '0', - `event_handler_enabled` smallint(6) NOT NULL default '0', - `active_checks_enabled` smallint(6) NOT NULL default '0', - `retain_status_information` smallint(6) NOT NULL default '0', - `retain_nonstatus_information` smallint(6) NOT NULL default '0', - `notifications_enabled` smallint(6) NOT NULL default '0', - `obsess_over_host` smallint(6) NOT NULL default '0', - `failure_prediction_enabled` smallint(6) NOT NULL default '0', - `notes` varchar(255) NOT NULL default '', - `notes_url` varchar(255) NOT NULL default '', - `action_url` varchar(255) NOT NULL default '', - `icon_image` varchar(255) NOT NULL default '', - `icon_image_alt` varchar(255) NOT NULL default '', - `vrml_image` varchar(255) NOT NULL default '', - `statusmap_image` varchar(255) NOT NULL default '', - `have_2d_coords` smallint(6) NOT NULL default '0', - `x_2d` smallint(6) NOT NULL default '0', - `y_2d` smallint(6) NOT NULL default '0', - `have_3d_coords` smallint(6) NOT NULL default '0', - `x_3d` double NOT NULL default '0', - `y_3d` double NOT NULL default '0', - `z_3d` double NOT NULL default '0', - PRIMARY KEY (`host_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`), - KEY `idx1` (`host_object_id`), - KEY `idx2` (`config_type`) - ) ENGINE=InnoDB COMMENT='Host definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hosts` ( + `host_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `alias` varchar(64) character set latin1 NOT NULL default '', + `display_name` varchar(64) character set latin1 NOT NULL default '', + `address` varchar(128) character set latin1 NOT NULL default '', + `check_command_object_id` int(11) NOT NULL default '0', + `check_command_args` varchar(255) character set latin1 NOT NULL default '', + `eventhandler_command_object_id` int(11) NOT NULL default '0', + `eventhandler_command_args` varchar(255) character set latin1 NOT NULL default '', + `notification_timeperiod_object_id` int(11) NOT NULL default '0', + `check_timeperiod_object_id` int(11) NOT NULL default '0', + `failure_prediction_options` varchar(64) character set latin1 NOT NULL default '', + `check_interval` double NOT NULL default '0', + `retry_interval` double NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `first_notification_delay` double NOT NULL default '0', + `notification_interval` double NOT NULL default '0', + `notify_on_down` smallint(6) NOT NULL default '0', + `notify_on_unreachable` smallint(6) NOT NULL default '0', + `notify_on_recovery` smallint(6) NOT NULL default '0', + `notify_on_flapping` smallint(6) NOT NULL default '0', + `notify_on_downtime` smallint(6) NOT NULL default '0', + `stalk_on_up` smallint(6) NOT NULL default '0', + `stalk_on_down` smallint(6) NOT NULL default '0', + `stalk_on_unreachable` smallint(6) NOT NULL default '0', + `flap_detection_enabled` smallint(6) NOT NULL default '0', + `flap_detection_on_up` smallint(6) NOT NULL default '0', + `flap_detection_on_down` smallint(6) NOT NULL default '0', + `flap_detection_on_unreachable` smallint(6) NOT NULL default '0', + `low_flap_threshold` double NOT NULL default '0', + `high_flap_threshold` double NOT NULL default '0', + `process_performance_data` smallint(6) NOT NULL default '0', + `freshness_checks_enabled` smallint(6) NOT NULL default '0', + `freshness_threshold` smallint(6) NOT NULL default '0', + `passive_checks_enabled` smallint(6) NOT NULL default '0', + `event_handler_enabled` smallint(6) NOT NULL default '0', + `active_checks_enabled` smallint(6) NOT NULL default '0', + `retain_status_information` smallint(6) NOT NULL default '0', + `retain_nonstatus_information` smallint(6) NOT NULL default '0', + `notifications_enabled` smallint(6) NOT NULL default '0', + `obsess_over_host` smallint(6) NOT NULL default '0', + `failure_prediction_enabled` smallint(6) NOT NULL default '0', + `notes` varchar(255) character set latin1 NOT NULL default '', + `notes_url` varchar(255) character set latin1 NOT NULL default '', + `action_url` varchar(255) character set latin1 NOT NULL default '', + `icon_image` varchar(255) character set latin1 NOT NULL default '', + `icon_image_alt` varchar(255) character set latin1 NOT NULL default '', + `vrml_image` varchar(255) character set latin1 NOT NULL default '', + `statusmap_image` varchar(255) character set latin1 NOT NULL default '', + `have_2d_coords` smallint(6) NOT NULL default '0', + `x_2d` smallint(6) NOT NULL default '0', + `y_2d` smallint(6) NOT NULL default '0', + `have_3d_coords` smallint(6) NOT NULL default '0', + `x_3d` double NOT NULL default '0', + `y_3d` double NOT NULL default '0', + `z_3d` double NOT NULL default '0', + PRIMARY KEY (`host_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`host_object_id`), + KEY `host_object_id` (`host_object_id`) + ) ENGINE=MyISAM COMMENT='Host definitions'; + "; + $sql[] = "CREATE INDEX idx1 ON npc_hosts(host_object_id);"; + $sql[] = "CREATE INDEX idx2 ON npc_hosts(config_type);"; } if (!in_array('npc_hoststatus', $tables)) { - $sql[] = "CREATE TABLE `npc_hoststatus` ( - `hoststatus_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', - `output` varchar(255) NOT NULL default '', - `perfdata` varchar(255) NOT NULL default '', - `current_state` smallint(6) NOT NULL default '0', - `has_been_checked` smallint(6) NOT NULL default '0', - `should_be_scheduled` smallint(6) NOT NULL default '0', - `current_check_attempt` smallint(6) NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `last_check` datetime NOT NULL default '0000-00-00 00:00:00', - `next_check` datetime NOT NULL default '0000-00-00 00:00:00', - `check_type` smallint(6) NOT NULL default '0', - `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', - `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', - `last_hard_state` smallint(6) NOT NULL default '0', - `last_time_up` datetime NOT NULL default '0000-00-00 00:00:00', - `last_time_down` datetime NOT NULL default '0000-00-00 00:00:00', - `last_time_unreachable` datetime NOT NULL default '0000-00-00 00:00:00', - `state_type` smallint(6) NOT NULL default '0', - `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `no_more_notifications` smallint(6) NOT NULL default '0', - `notifications_enabled` smallint(6) NOT NULL default '0', - `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', - `acknowledgement_type` smallint(6) NOT NULL default '0', - `current_notification_number` smallint(6) NOT NULL default '0', - `passive_checks_enabled` smallint(6) NOT NULL default '0', - `active_checks_enabled` smallint(6) NOT NULL default '0', - `event_handler_enabled` smallint(6) NOT NULL default '0', - `flap_detection_enabled` smallint(6) NOT NULL default '0', - `is_flapping` smallint(6) NOT NULL default '0', - `percent_state_change` double NOT NULL default '0', - `latency` double NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `scheduled_downtime_depth` smallint(6) NOT NULL default '0', - `failure_prediction_enabled` smallint(6) NOT NULL default '0', - `process_performance_data` smallint(6) NOT NULL default '0', - `obsess_over_host` smallint(6) NOT NULL default '0', - `modified_host_attributes` int(11) NOT NULL default '0', - `event_handler` varchar(255) NOT NULL default '', - `check_command` varchar(255) NOT NULL default '', - `normal_check_interval` double NOT NULL default '0', - `retry_check_interval` double NOT NULL default '0', - `check_timeperiod_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`hoststatus_id`), - UNIQUE KEY `object_id` (`host_object_id`), - KEY `idx1` (`current_state`) - ) ENGINE=InnoDB COMMENT='Current host status information';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_hoststatus` ( + `hoststatus_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + `perfdata` TEXT character set latin1 NOT NULL default '', + `current_state` smallint(6) NOT NULL default '0', + `has_been_checked` smallint(6) NOT NULL default '0', + `should_be_scheduled` smallint(6) NOT NULL default '0', + `current_check_attempt` smallint(6) NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `last_check` datetime NOT NULL default '0000-00-00 00:00:00', + `next_check` datetime NOT NULL default '0000-00-00 00:00:00', + `check_type` smallint(6) NOT NULL default '0', + `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', + `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', + `last_hard_state` smallint(6) NOT NULL default '0', + `last_time_up` datetime NOT NULL default '0000-00-00 00:00:00', + `last_time_down` datetime NOT NULL default '0000-00-00 00:00:00', + `last_time_unreachable` datetime NOT NULL default '0000-00-00 00:00:00', + `state_type` smallint(6) NOT NULL default '0', + `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `no_more_notifications` smallint(6) NOT NULL default '0', + `notifications_enabled` smallint(6) NOT NULL default '0', + `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', + `acknowledgement_type` smallint(6) NOT NULL default '0', + `current_notification_number` smallint(6) NOT NULL default '0', + `passive_checks_enabled` smallint(6) NOT NULL default '0', + `active_checks_enabled` smallint(6) NOT NULL default '0', + `event_handler_enabled` smallint(6) NOT NULL default '0', + `flap_detection_enabled` smallint(6) NOT NULL default '0', + `is_flapping` smallint(6) NOT NULL default '0', + `percent_state_change` double NOT NULL default '0', + `latency` double NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `scheduled_downtime_depth` smallint(6) NOT NULL default '0', + `failure_prediction_enabled` smallint(6) NOT NULL default '0', + `process_performance_data` smallint(6) NOT NULL default '0', + `obsess_over_host` smallint(6) NOT NULL default '0', + `modified_host_attributes` int(11) NOT NULL default '0', + `event_handler` varchar(255) character set latin1 NOT NULL default '', + `check_command` varchar(255) character set latin1 NOT NULL default '', + `normal_check_interval` double NOT NULL default '0', + `retry_check_interval` double NOT NULL default '0', + `check_timeperiod_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`hoststatus_id`), + UNIQUE KEY `object_id` (`host_object_id`), + KEY `instance_id` (`instance_id`), + KEY `status_update_time` (`status_update_time`), + KEY `current_state` (`current_state`), + KEY `check_type` (`check_type`), + KEY `state_type` (`state_type`), + KEY `last_state_change` (`last_state_change`), + KEY `notifications_enabled` (`notifications_enabled`), + KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`), + KEY `active_checks_enabled` (`active_checks_enabled`), + KEY `passive_checks_enabled` (`passive_checks_enabled`), + KEY `event_handler_enabled` (`event_handler_enabled`), + KEY `flap_detection_enabled` (`flap_detection_enabled`), + KEY `is_flapping` (`is_flapping`), + KEY `percent_state_change` (`percent_state_change`), + KEY `latency` (`latency`), + KEY `execution_time` (`execution_time`), + KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`) + ) ENGINE=MyISAM COMMENT='Current host status information'; + "; } if (!in_array('npc_instances', $tables)) { - $sql[] = "CREATE TABLE `npc_instances` ( - `instance_id` smallint(6) NOT NULL auto_increment, - `instance_name` varchar(64) NOT NULL default '', - `instance_description` varchar(128) NOT NULL default '', - PRIMARY KEY (`instance_id`) - ) ENGINE=InnoDB COMMENT='Location names of various Nagios installations';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_instances` ( + `instance_id` smallint(6) NOT NULL auto_increment, + `instance_name` varchar(64) character set latin1 NOT NULL default '', + `instance_description` varchar(128) character set latin1 NOT NULL default '', + PRIMARY KEY (`instance_id`) + ) ENGINE=MyISAM COMMENT='Location names of various Nagios installations'; + "; } if (!in_array('npc_logentries', $tables)) { - $sql[] = "CREATE TABLE `npc_logentries` ( - `logentry_id` int(11) NOT NULL auto_increment, - `instance_id` int(11) NOT NULL default '0', - `logentry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `entry_time_usec` int(11) NOT NULL default '0', - `logentry_type` int(11) NOT NULL default '0', - `logentry_data` varchar(255) NOT NULL default '', - `realtime_data` smallint(6) NOT NULL default '0', - `inferred_data_extracted` smallint(6) NOT NULL default '0', - PRIMARY KEY (`logentry_id`), - KEY `idx1` (`entry_time`,`entry_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical record of log entries';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_logentries` ( + `logentry_id` int(11) NOT NULL auto_increment, + `instance_id` int(11) NOT NULL default '0', + `logentry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `entry_time_usec` int(11) NOT NULL default '0', + `logentry_type` int(11) NOT NULL default '0', + `logentry_data` varchar(255) character set latin1 NOT NULL default '', + `realtime_data` smallint(6) NOT NULL default '0', + `inferred_data_extracted` smallint(6) NOT NULL default '0', + PRIMARY KEY (`logentry_id`) + ) ENGINE=MyISAM COMMENT='Historical record of log entries'; + "; + $sql[] = "CREATE INDEX idx1 ON npc_logentries(entry_time, entry_time_usec);"; } if (!in_array('npc_notifications', $tables)) { - $sql[] = "CREATE TABLE `npc_notifications` ( - `notification_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `notification_type` smallint(6) NOT NULL default '0', - `notification_reason` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `output` varchar(255) NOT NULL default '', - `escalated` smallint(6) NOT NULL default '0', - `contacts_notified` smallint(6) NOT NULL default '0', - PRIMARY KEY (`notification_id`), - UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical record of host and service notifications';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_notifications` ( + `notification_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `notification_type` smallint(6) NOT NULL default '0', + `notification_reason` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + `escalated` smallint(6) NOT NULL default '0', + `contacts_notified` smallint(6) NOT NULL default '0', + PRIMARY KEY (`notification_id`), + UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`start_time`,`start_time_usec`) + ) ENGINE=MyISAM COMMENT='Historical record of host and service notifications'; + "; } if (!in_array('npc_objects', $tables)) { - $sql[] = "CREATE TABLE `npc_objects` ( - `object_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `objecttype_id` smallint(6) NOT NULL default '0', - `name1` varchar(128) NOT NULL default '', - `name2` varchar(128) default NULL, - `is_active` smallint(6) NOT NULL default '0', - PRIMARY KEY (`object_id`), - KEY `objecttype_id` (`objecttype_id`,`name1`,`name2`), - KEY `name_idx` (`name1`,`name2`) - ) ENGINE=InnoDB COMMENT='Current and historical objects of all kinds';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_objects` ( + `object_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `objecttype_id` smallint(6) NOT NULL default '0', + `name1` varchar(128) character set latin1 NOT NULL default '', + `name2` varchar(128) character set latin1 default NULL, + `is_active` smallint(6) NOT NULL default '0', + PRIMARY KEY (`object_id`), + KEY `objecttype_id` (`objecttype_id`,`name1`,`name2`) + ) ENGINE=MyISAM COMMENT='Current and historical objects of all kinds'; + "; + // FIXME? $sql[] = "KEY `name_idx` (`name1`,`name2`)"; } if (!in_array('npc_processevents', $tables)) { - $sql[] = "CREATE TABLE `npc_processevents` ( - `processevent_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `event_type` smallint(6) NOT NULL default '0', - `event_time` datetime NOT NULL default '0000-00-00 00:00:00', - `event_time_usec` int(11) NOT NULL default '0', - `process_id` int(11) NOT NULL default '0', - `program_name` varchar(16) NOT NULL default '', - `program_version` varchar(20) NOT NULL default '', - `program_date` varchar(10) NOT NULL default '', - PRIMARY KEY (`processevent_id`) - ) ENGINE=InnoDB COMMENT='Historical Nagios process events';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_processevents` ( + `processevent_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `event_type` smallint(6) NOT NULL default '0', + `event_time` datetime NOT NULL default '0000-00-00 00:00:00', + `event_time_usec` int(11) NOT NULL default '0', + `process_id` int(11) NOT NULL default '0', + `program_name` varchar(16) character set latin1 NOT NULL default '', + `program_version` varchar(20) character set latin1 NOT NULL default '', + `program_date` varchar(10) character set latin1 NOT NULL default '', + PRIMARY KEY (`processevent_id`) + ) ENGINE=MyISAM COMMENT='Historical Nagios process events'; + "; } if (!in_array('npc_programstatus', $tables)) { - $sql[] = "CREATE TABLE `npc_programstatus` ( - `programstatus_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', - `program_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `program_end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `is_currently_running` smallint(6) NOT NULL default '0', - `process_id` int(11) NOT NULL default '0', - `daemon_mode` smallint(6) NOT NULL default '0', - `last_command_check` datetime NOT NULL default '0000-00-00 00:00:00', - `last_log_rotation` datetime NOT NULL default '0000-00-00 00:00:00', - `notifications_enabled` smallint(6) NOT NULL default '0', - `active_service_checks_enabled` smallint(6) NOT NULL default '0', - `passive_service_checks_enabled` smallint(6) NOT NULL default '0', - `active_host_checks_enabled` smallint(6) NOT NULL default '0', - `passive_host_checks_enabled` smallint(6) NOT NULL default '0', - `event_handlers_enabled` smallint(6) NOT NULL default '0', - `flap_detection_enabled` smallint(6) NOT NULL default '0', - `failure_prediction_enabled` smallint(6) NOT NULL default '0', - `process_performance_data` smallint(6) NOT NULL default '0', - `obsess_over_hosts` smallint(6) NOT NULL default '0', - `obsess_over_services` smallint(6) NOT NULL default '0', - `modified_host_attributes` int(11) NOT NULL default '0', - `modified_service_attributes` int(11) NOT NULL default '0', - `global_host_event_handler` varchar(255) NOT NULL default '', - `global_service_event_handler` varchar(255) NOT NULL default '', - PRIMARY KEY (`programstatus_id`), - UNIQUE KEY `instance_id` (`instance_id`) - ) ENGINE=InnoDB COMMENT='Current program status information';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_programstatus` ( + `programstatus_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', + `program_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `program_end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `is_currently_running` smallint(6) NOT NULL default '0', + `process_id` int(11) NOT NULL default '0', + `daemon_mode` smallint(6) NOT NULL default '0', + `last_command_check` datetime NOT NULL default '0000-00-00 00:00:00', + `last_log_rotation` datetime NOT NULL default '0000-00-00 00:00:00', + `notifications_enabled` smallint(6) NOT NULL default '0', + `active_service_checks_enabled` smallint(6) NOT NULL default '0', + `passive_service_checks_enabled` smallint(6) NOT NULL default '0', + `active_host_checks_enabled` smallint(6) NOT NULL default '0', + `passive_host_checks_enabled` smallint(6) NOT NULL default '0', + `event_handlers_enabled` smallint(6) NOT NULL default '0', + `flap_detection_enabled` smallint(6) NOT NULL default '0', + `failure_prediction_enabled` smallint(6) NOT NULL default '0', + `process_performance_data` smallint(6) NOT NULL default '0', + `obsess_over_hosts` smallint(6) NOT NULL default '0', + `obsess_over_services` smallint(6) NOT NULL default '0', + `modified_host_attributes` int(11) NOT NULL default '0', + `modified_service_attributes` int(11) NOT NULL default '0', + `global_host_event_handler` varchar(255) character set latin1 NOT NULL default '', + `global_service_event_handler` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`programstatus_id`), + UNIQUE KEY `instance_id` (`instance_id`) + ) ENGINE=MyISAM COMMENT='Current program status information'; + "; } if (!in_array('npc_runtimevariables', $tables)) { - $sql[] = "CREATE TABLE `npc_runtimevariables` ( - `runtimevariable_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `varname` varchar(64) NOT NULL default '', - `varvalue` varchar(255) NOT NULL default '', - PRIMARY KEY (`runtimevariable_id`), - UNIQUE KEY `instance_id` (`instance_id`,`varname`) - ) ENGINE=InnoDB COMMENT='Runtime variables from the Nagios daemon';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_runtimevariables` ( + `runtimevariable_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `varname` varchar(64) character set latin1 NOT NULL default '', + `varvalue` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`runtimevariable_id`), + UNIQUE KEY `instance_id` (`instance_id`,`varname`) + ) ENGINE=MyISAM COMMENT='Runtime variables from the Nagios daemon'; + "; } if (!in_array('npc_scheduleddowntime', $tables)) { - $sql[] = "CREATE TABLE `npc_scheduleddowntime` ( - `scheduleddowntime_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `downtime_type` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', - `author_name` varchar(64) NOT NULL default '', - `comment_data` varchar(255) NOT NULL default '', - `internal_downtime_id` int(11) NOT NULL default '0', - `triggered_by_id` int(11) NOT NULL default '0', - `is_fixed` smallint(6) NOT NULL default '0', - `duration` smallint(6) NOT NULL default '0', - `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `was_started` smallint(6) NOT NULL default '0', - `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `actual_start_time_usec` int(11) NOT NULL default '0', - PRIMARY KEY (`scheduleddowntime_id`), - UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`) - ) ENGINE=InnoDB COMMENT='Current scheduled host and service downtime';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_scheduleddowntime` ( + `scheduleddowntime_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `downtime_type` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `entry_time` datetime NOT NULL default '0000-00-00 00:00:00', + `author_name` varchar(64) character set latin1 NOT NULL default '', + `comment_data` varchar(255) character set latin1 NOT NULL default '', + `internal_downtime_id` int(11) NOT NULL default '0', + `triggered_by_id` int(11) NOT NULL default '0', + `is_fixed` smallint(6) NOT NULL default '0', + `duration` smallint(6) NOT NULL default '0', + `scheduled_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `scheduled_end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `was_started` smallint(6) NOT NULL default '0', + `actual_start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `actual_start_time_usec` int(11) NOT NULL default '0', + PRIMARY KEY (`scheduleddowntime_id`), + UNIQUE KEY `instance_id` (`instance_id`,`object_id`,`entry_time`,`internal_downtime_id`) + ) ENGINE=MyISAM COMMENT='Current scheduled host and service downtime'; + "; } if (!in_array('npc_service_contactgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_service_contactgroups` ( - `service_contactgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `service_id` int(11) NOT NULL default '0', - `contactgroup_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`service_contactgroup_id`), - UNIQUE KEY `instance_id` (`service_id`,`contactgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Service contact groups';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_service_contactgroups` ( + `service_contactgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `service_id` int(11) NOT NULL default '0', + `contactgroup_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`service_contactgroup_id`), + UNIQUE KEY `instance_id` (`service_id`,`contactgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Service contact groups'; + "; } if (!in_array('npc_service_contacts', $tables)) { - $sql[] = "CREATE TABLE `npc_service_contacts` ( - `service_contact_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `service_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`service_contact_id`), - UNIQUE KEY `instance_id` (`instance_id`,`service_id`,`contact_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_service_contacts` ( + `service_contact_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `service_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`service_contact_id`), + UNIQUE KEY `instance_id` (`instance_id`,`service_id`,`contact_object_id`) + ) ENGINE=MyISAM ; + "; } if (!in_array('npc_servicechecks', $tables)) { - $sql[] = "CREATE TABLE `npc_servicechecks` ( - `servicecheck_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - `check_type` smallint(6) NOT NULL default '0', - `current_check_attempt` smallint(6) NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `state_type` smallint(6) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `command_object_id` int(11) NOT NULL default '0', - `command_args` varchar(255) NOT NULL default '', - `command_line` varchar(255) NOT NULL default '', - `timeout` smallint(6) NOT NULL default '0', - `early_timeout` smallint(6) NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `latency` double NOT NULL default '0', - `return_code` smallint(6) NOT NULL default '0', - `output` varchar(255) NOT NULL default '', - `perfdata` varchar(255) NOT NULL default '', - PRIMARY KEY (`servicecheck_id`), - UNIQUE KEY `instance_id` (`instance_id`,`service_object_id`,`start_time`,`start_time_usec`), - KEY `idx1` (`service_object_id`,`start_time`), - KEY `idx2` (`instance_id`,`start_time`) - ) ENGINE=InnoDB COMMENT='Historical service checks';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_servicechecks` ( + `servicecheck_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + `check_type` smallint(6) NOT NULL default '0', + `current_check_attempt` smallint(6) NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `state_type` smallint(6) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `command_object_id` int(11) NOT NULL default '0', + `command_args` varchar(255) character set latin1 NOT NULL default '', + `command_line` varchar(255) character set latin1 NOT NULL default '', + `timeout` smallint(6) NOT NULL default '0', + `early_timeout` smallint(6) NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `latency` double NOT NULL default '0', + `return_code` smallint(6) NOT NULL default '0', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + `perfdata` TEXT character set latin1 NOT NULL default '', + PRIMARY KEY (`servicecheck_id`), + KEY `instance_id` (`instance_id`), + KEY `service_object_id` (`service_object_id`), + KEY `start_time` (`start_time`) + ) ENGINE=MyISAM COMMENT='Historical service checks'; + "; + $sql[] = "CREATE INDEX idx1 ON npc_servicechecks(service_object_id, start_time);"; + $sql[] = "CREATE INDEX idx2 ON npc_servicechecks(instance_id, start_time);"; + // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`service_object_id`,`start_time`,`start_time_usec`)"; } if (!in_array('npc_servicedependencies', $tables)) { - $sql[] = "CREATE TABLE `npc_servicedependencies` ( - `servicedependency_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - `dependent_service_object_id` int(11) NOT NULL default '0', - `dependency_type` smallint(6) NOT NULL default '0', - `inherits_parent` smallint(6) NOT NULL default '0', - `timeperiod_object_id` int(11) NOT NULL default '0', - `fail_on_ok` smallint(6) NOT NULL default '0', - `fail_on_warning` smallint(6) NOT NULL default '0', - `fail_on_unknown` smallint(6) NOT NULL default '0', - `fail_on_critical` smallint(6) NOT NULL default '0', - PRIMARY KEY (`servicedependency_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`dependent_service_object_id`,`dependency_type`,`inherits_parent`,`fail_on_ok`,`fail_on_warning`,`fail_on_unknown`,`fail_on_critical`) - ) ENGINE=InnoDB COMMENT='Service dependency definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_servicedependencies` ( + `servicedependency_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + `dependent_service_object_id` int(11) NOT NULL default '0', + `dependency_type` smallint(6) NOT NULL default '0', + `inherits_parent` smallint(6) NOT NULL default '0', + `timeperiod_object_id` int(11) NOT NULL default '0', + `fail_on_ok` smallint(6) NOT NULL default '0', + `fail_on_warning` smallint(6) NOT NULL default '0', + `fail_on_unknown` smallint(6) NOT NULL default '0', + `fail_on_critical` smallint(6) NOT NULL default '0', + PRIMARY KEY (`servicedependency_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`dependent_service_object_id`,`dependency_type`,`inherits_parent`,`fail_on_ok`,`fail_on_warning`,`fail_on_unknown`,`fail_on_critical`) + ) ENGINE=MyISAM COMMENT='Service dependency definitions'; + "; } if (!in_array('npc_serviceescalation_contactgroups', $tables)) { - $sql[] = "CREATE TABLE `npc_serviceescalation_contactgroups` ( - `serviceescalation_contactgroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `serviceescalation_id` int(11) NOT NULL default '0', - `contactgroup_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`serviceescalation_contactgroup_id`), - UNIQUE KEY `instance_id` (`serviceescalation_id`,`contactgroup_object_id`) - ) ENGINE=InnoDB COMMENT='Service escalation contact groups';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_serviceescalation_contactgroups` ( + `serviceescalation_contactgroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `serviceescalation_id` int(11) NOT NULL default '0', + `contactgroup_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`serviceescalation_contactgroup_id`), + UNIQUE KEY `instance_id` (`serviceescalation_id`,`contactgroup_object_id`) + ) ENGINE=MyISAM COMMENT='Service escalation contact groups'; + "; } if (!in_array('npc_serviceescalation_contacts', $tables)) { - $sql[] = "CREATE TABLE `npc_serviceescalation_contacts` ( - `serviceescalation_contact_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `serviceescalation_id` int(11) NOT NULL default '0', - `contact_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`serviceescalation_contact_id`), - UNIQUE KEY `instance_id` (`instance_id`,`serviceescalation_id`,`contact_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_serviceescalation_contacts` ( + `serviceescalation_contact_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `serviceescalation_id` int(11) NOT NULL default '0', + `contact_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`serviceescalation_contact_id`), + UNIQUE KEY `instance_id` (`instance_id`,`serviceescalation_id`,`contact_object_id`) + ) ENGINE=MyISAM ; + "; } if (!in_array('npc_serviceescalations', $tables)) { - $sql[] = "CREATE TABLE `npc_serviceescalations` ( - `serviceescalation_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - `timeperiod_object_id` int(11) NOT NULL default '0', - `first_notification` smallint(6) NOT NULL default '0', - `last_notification` smallint(6) NOT NULL default '0', - `notification_interval` double NOT NULL default '0', - `escalate_on_recovery` smallint(6) NOT NULL default '0', - `escalate_on_warning` smallint(6) NOT NULL default '0', - `escalate_on_unknown` smallint(6) NOT NULL default '0', - `escalate_on_critical` smallint(6) NOT NULL default '0', - PRIMARY KEY (`serviceescalation_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`) - ) ENGINE=InnoDB COMMENT='Service escalation definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_serviceescalations` ( + `serviceescalation_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + `timeperiod_object_id` int(11) NOT NULL default '0', + `first_notification` smallint(6) NOT NULL default '0', + `last_notification` smallint(6) NOT NULL default '0', + `notification_interval` double NOT NULL default '0', + `escalate_on_recovery` smallint(6) NOT NULL default '0', + `escalate_on_warning` smallint(6) NOT NULL default '0', + `escalate_on_unknown` smallint(6) NOT NULL default '0', + `escalate_on_critical` smallint(6) NOT NULL default '0', + PRIMARY KEY (`serviceescalation_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`,`timeperiod_object_id`,`first_notification`,`last_notification`) + ) ENGINE=MyISAM COMMENT='Service escalation definitions'; + "; } if (!in_array('npc_servicegroup_members', $tables)) { - $sql[] = "CREATE TABLE `npc_servicegroup_members` ( - `servicegroup_member_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `servicegroup_id` int(11) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`servicegroup_member_id`), - UNIQUE KEY `instance_id` (`servicegroup_id`,`service_object_id`) - ) ENGINE=InnoDB COMMENT='Servicegroup members';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_servicegroup_members` ( + `servicegroup_member_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `servicegroup_id` int(11) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`servicegroup_member_id`), + UNIQUE KEY `instance_id` (`servicegroup_id`,`service_object_id`) + ) ENGINE=MyISAM COMMENT='Servicegroup members'; + "; } if (!in_array('npc_servicegroups', $tables)) { - $sql[] = "CREATE TABLE `npc_servicegroups` ( - `servicegroup_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `servicegroup_object_id` int(11) NOT NULL default '0', - `alias` varchar(255) NOT NULL default '', - PRIMARY KEY (`servicegroup_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`servicegroup_object_id`) - ) ENGINE=InnoDB COMMENT='Servicegroup definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_servicegroups` ( + `servicegroup_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `servicegroup_object_id` int(11) NOT NULL default '0', + `alias` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`servicegroup_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`servicegroup_object_id`) + ) ENGINE=MyISAM COMMENT='Servicegroup definitions'; + "; } if (!in_array('npc_services', $tables)) { - $sql[] = "CREATE TABLE `npc_services` ( - `service_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `host_object_id` int(11) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - `display_name` varchar(64) NOT NULL default '', - `check_command_object_id` int(11) NOT NULL default '0', - `check_command_args` varchar(255) NOT NULL default '', - `eventhandler_command_object_id` int(11) NOT NULL default '0', - `eventhandler_command_args` varchar(255) NOT NULL default '', - `notification_timeperiod_object_id` int(11) NOT NULL default '0', - `check_timeperiod_object_id` int(11) NOT NULL default '0', - `failure_prediction_options` varchar(64) NOT NULL default '', - `check_interval` double NOT NULL default '0', - `retry_interval` double NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `first_notification_delay` double NOT NULL default '0', - `notification_interval` double NOT NULL default '0', - `notify_on_warning` smallint(6) NOT NULL default '0', - `notify_on_unknown` smallint(6) NOT NULL default '0', - `notify_on_critical` smallint(6) NOT NULL default '0', - `notify_on_recovery` smallint(6) NOT NULL default '0', - `notify_on_flapping` smallint(6) NOT NULL default '0', - `notify_on_downtime` smallint(6) NOT NULL default '0', - `stalk_on_ok` smallint(6) NOT NULL default '0', - `stalk_on_warning` smallint(6) NOT NULL default '0', - `stalk_on_unknown` smallint(6) NOT NULL default '0', - `stalk_on_critical` smallint(6) NOT NULL default '0', - `is_volatile` smallint(6) NOT NULL default '0', - `flap_detection_enabled` smallint(6) NOT NULL default '0', - `flap_detection_on_ok` smallint(6) NOT NULL default '0', - `flap_detection_on_warning` smallint(6) NOT NULL default '0', - `flap_detection_on_unknown` smallint(6) NOT NULL default '0', - `flap_detection_on_critical` smallint(6) NOT NULL default '0', - `low_flap_threshold` double NOT NULL default '0', - `high_flap_threshold` double NOT NULL default '0', - `process_performance_data` smallint(6) NOT NULL default '0', - `freshness_checks_enabled` smallint(6) NOT NULL default '0', - `freshness_threshold` smallint(6) NOT NULL default '0', - `passive_checks_enabled` smallint(6) NOT NULL default '0', - `event_handler_enabled` smallint(6) NOT NULL default '0', - `active_checks_enabled` smallint(6) NOT NULL default '0', - `retain_status_information` smallint(6) NOT NULL default '0', - `retain_nonstatus_information` smallint(6) NOT NULL default '0', - `notifications_enabled` smallint(6) NOT NULL default '0', - `obsess_over_service` smallint(6) NOT NULL default '0', - `failure_prediction_enabled` smallint(6) NOT NULL default '0', - `notes` varchar(255) NOT NULL default '', - `notes_url` varchar(255) NOT NULL default '', - `action_url` varchar(255) NOT NULL default '', - `icon_image` varchar(255) NOT NULL default '', - `icon_image_alt` varchar(255) NOT NULL default '', - PRIMARY KEY (`service_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`), - KEY `idx1` (`config_type`), - KEY `idx2` (`host_object_id`), - KEY `idx3` (`service_object_id`) - ) ENGINE=InnoDB COMMENT='Service definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_services` ( + `service_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `host_object_id` int(11) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + `display_name` varchar(64) character set latin1 NOT NULL default '', + `check_command_object_id` int(11) NOT NULL default '0', + `check_command_args` varchar(255) character set latin1 NOT NULL default '', + `eventhandler_command_object_id` int(11) NOT NULL default '0', + `eventhandler_command_args` varchar(255) character set latin1 NOT NULL default '', + `notification_timeperiod_object_id` int(11) NOT NULL default '0', + `check_timeperiod_object_id` int(11) NOT NULL default '0', + `failure_prediction_options` varchar(64) character set latin1 NOT NULL default '', + `check_interval` double NOT NULL default '0', + `retry_interval` double NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `first_notification_delay` double NOT NULL default '0', + `notification_interval` double NOT NULL default '0', + `notify_on_warning` smallint(6) NOT NULL default '0', + `notify_on_unknown` smallint(6) NOT NULL default '0', + `notify_on_critical` smallint(6) NOT NULL default '0', + `notify_on_recovery` smallint(6) NOT NULL default '0', + `notify_on_flapping` smallint(6) NOT NULL default '0', + `notify_on_downtime` smallint(6) NOT NULL default '0', + `stalk_on_ok` smallint(6) NOT NULL default '0', + `stalk_on_warning` smallint(6) NOT NULL default '0', + `stalk_on_unknown` smallint(6) NOT NULL default '0', + `stalk_on_critical` smallint(6) NOT NULL default '0', + `is_volatile` smallint(6) NOT NULL default '0', + `flap_detection_enabled` smallint(6) NOT NULL default '0', + `flap_detection_on_ok` smallint(6) NOT NULL default '0', + `flap_detection_on_warning` smallint(6) NOT NULL default '0', + `flap_detection_on_unknown` smallint(6) NOT NULL default '0', + `flap_detection_on_critical` smallint(6) NOT NULL default '0', + `low_flap_threshold` double NOT NULL default '0', + `high_flap_threshold` double NOT NULL default '0', + `process_performance_data` smallint(6) NOT NULL default '0', + `freshness_checks_enabled` smallint(6) NOT NULL default '0', + `freshness_threshold` smallint(6) NOT NULL default '0', + `passive_checks_enabled` smallint(6) NOT NULL default '0', + `event_handler_enabled` smallint(6) NOT NULL default '0', + `active_checks_enabled` smallint(6) NOT NULL default '0', + `retain_status_information` smallint(6) NOT NULL default '0', + `retain_nonstatus_information` smallint(6) NOT NULL default '0', + `notifications_enabled` smallint(6) NOT NULL default '0', + `obsess_over_service` smallint(6) NOT NULL default '0', + `failure_prediction_enabled` smallint(6) NOT NULL default '0', + `notes` varchar(255) character set latin1 NOT NULL default '', + `notes_url` varchar(255) character set latin1 NOT NULL default '', + `action_url` varchar(255) character set latin1 NOT NULL default '', + `icon_image` varchar(255) character set latin1 NOT NULL default '', + `icon_image_alt` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`service_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`service_object_id`), + KEY `service_object_id` (`service_object_id`) + ) ENGINE=MyISAM COMMENT='Service definitions'; + "; + + $sql[] = "CREATE INDEX idx1 ON npc_services(config_type);"; + $sql[] = "CREATE INDEX idx2 ON npc_services(host_object_id);"; + $sql[] = "CREATE INDEX idx3 ON npc_services(service_object_id);"; } if (!in_array('npc_servicestatus', $tables)) { - $sql[] = "CREATE TABLE `npc_servicestatus` ( - `servicestatus_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `service_object_id` int(11) NOT NULL default '0', - `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', - `output` varchar(255) NOT NULL default '', - `perfdata` varchar(255) NOT NULL default '', - `current_state` smallint(6) NOT NULL default '0', - `has_been_checked` smallint(6) NOT NULL default '0', - `should_be_scheduled` smallint(6) NOT NULL default '0', - `current_check_attempt` smallint(6) NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `last_check` datetime NOT NULL default '0000-00-00 00:00:00', - `next_check` datetime NOT NULL default '0000-00-00 00:00:00', - `check_type` smallint(6) NOT NULL default '0', - `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', - `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', - `last_hard_state` smallint(6) NOT NULL default '0', - `last_time_ok` datetime NOT NULL default '0000-00-00 00:00:00', - `last_time_warning` datetime NOT NULL default '0000-00-00 00:00:00', - `last_time_unknown` datetime NOT NULL default '0000-00-00 00:00:00', - `last_time_critical` datetime NOT NULL default '0000-00-00 00:00:00', - `state_type` smallint(6) NOT NULL default '0', - `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', - `no_more_notifications` smallint(6) NOT NULL default '0', - `notifications_enabled` smallint(6) NOT NULL default '0', - `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', - `acknowledgement_type` smallint(6) NOT NULL default '0', - `current_notification_number` smallint(6) NOT NULL default '0', - `passive_checks_enabled` smallint(6) NOT NULL default '0', - `active_checks_enabled` smallint(6) NOT NULL default '0', - `event_handler_enabled` smallint(6) NOT NULL default '0', - `flap_detection_enabled` smallint(6) NOT NULL default '0', - `is_flapping` smallint(6) NOT NULL default '0', - `percent_state_change` double NOT NULL default '0', - `latency` double NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `scheduled_downtime_depth` smallint(6) NOT NULL default '0', - `failure_prediction_enabled` smallint(6) NOT NULL default '0', - `process_performance_data` smallint(6) NOT NULL default '0', - `obsess_over_service` smallint(6) NOT NULL default '0', - `modified_service_attributes` int(11) NOT NULL default '0', - `event_handler` varchar(255) NOT NULL default '', - `check_command` varchar(255) NOT NULL default '', - `normal_check_interval` double NOT NULL default '0', - `retry_check_interval` double NOT NULL default '0', - `check_timeperiod_object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`servicestatus_id`), - UNIQUE KEY `object_id` (`service_object_id`), - KEY `idx1` (`current_state`) - ) ENGINE=InnoDB COMMENT='Current service status information';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_servicestatus` ( + `servicestatus_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `service_object_id` int(11) NOT NULL default '0', + `status_update_time` datetime NOT NULL default '0000-00-00 00:00:00', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + `perfdata` TEXT character set latin1 NOT NULL default '', + `current_state` smallint(6) NOT NULL default '0', + `has_been_checked` smallint(6) NOT NULL default '0', + `should_be_scheduled` smallint(6) NOT NULL default '0', + `current_check_attempt` smallint(6) NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `last_check` datetime NOT NULL default '0000-00-00 00:00:00', + `next_check` datetime NOT NULL default '0000-00-00 00:00:00', + `check_type` smallint(6) NOT NULL default '0', + `last_state_change` datetime NOT NULL default '0000-00-00 00:00:00', + `last_hard_state_change` datetime NOT NULL default '0000-00-00 00:00:00', + `last_hard_state` smallint(6) NOT NULL default '0', + `last_time_ok` datetime NOT NULL default '0000-00-00 00:00:00', + `last_time_warning` datetime NOT NULL default '0000-00-00 00:00:00', + `last_time_unknown` datetime NOT NULL default '0000-00-00 00:00:00', + `last_time_critical` datetime NOT NULL default '0000-00-00 00:00:00', + `state_type` smallint(6) NOT NULL default '0', + `last_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `next_notification` datetime NOT NULL default '0000-00-00 00:00:00', + `no_more_notifications` smallint(6) NOT NULL default '0', + `notifications_enabled` smallint(6) NOT NULL default '0', + `problem_has_been_acknowledged` smallint(6) NOT NULL default '0', + `acknowledgement_type` smallint(6) NOT NULL default '0', + `current_notification_number` smallint(6) NOT NULL default '0', + `passive_checks_enabled` smallint(6) NOT NULL default '0', + `active_checks_enabled` smallint(6) NOT NULL default '0', + `event_handler_enabled` smallint(6) NOT NULL default '0', + `flap_detection_enabled` smallint(6) NOT NULL default '0', + `is_flapping` smallint(6) NOT NULL default '0', + `percent_state_change` double NOT NULL default '0', + `latency` double NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `scheduled_downtime_depth` smallint(6) NOT NULL default '0', + `failure_prediction_enabled` smallint(6) NOT NULL default '0', + `process_performance_data` smallint(6) NOT NULL default '0', + `obsess_over_service` smallint(6) NOT NULL default '0', + `modified_service_attributes` int(11) NOT NULL default '0', + `event_handler` varchar(255) character set latin1 NOT NULL default '', + `check_command` varchar(255) character set latin1 NOT NULL default '', + `normal_check_interval` double NOT NULL default '0', + `retry_check_interval` double NOT NULL default '0', + `check_timeperiod_object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`servicestatus_id`), + UNIQUE KEY `object_id` (`service_object_id`), + KEY `instance_id` (`instance_id`), + KEY `status_update_time` (`status_update_time`), + KEY `current_state` (`current_state`), + KEY `check_type` (`check_type`), + KEY `state_type` (`state_type`), + KEY `last_state_change` (`last_state_change`), + KEY `notifications_enabled` (`notifications_enabled`), + KEY `problem_has_been_acknowledged` (`problem_has_been_acknowledged`), + KEY `active_checks_enabled` (`active_checks_enabled`), + KEY `passive_checks_enabled` (`passive_checks_enabled`), + KEY `event_handler_enabled` (`event_handler_enabled`), + KEY `flap_detection_enabled` (`flap_detection_enabled`), + KEY `is_flapping` (`is_flapping`), + KEY `percent_state_change` (`percent_state_change`), + KEY `latency` (`latency`), + KEY `execution_time` (`execution_time`), + KEY `scheduled_downtime_depth` (`scheduled_downtime_depth`) + ) ENGINE=MyISAM COMMENT='Current service status information'; + "; + $sql[] = "CREATE INDEX idx1 ON npc_servicestatus(current_state);"; } if (!in_array('npc_statehistory', $tables)) { - $sql[] = "CREATE TABLE `npc_statehistory` ( - `statehistory_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `state_time` datetime NOT NULL default '0000-00-00 00:00:00', - `state_time_usec` int(11) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `state_change` smallint(6) NOT NULL default '0', - `state` smallint(6) NOT NULL default '0', - `state_type` smallint(6) NOT NULL default '0', - `current_check_attempt` smallint(6) NOT NULL default '0', - `max_check_attempts` smallint(6) NOT NULL default '0', - `last_state` smallint(6) NOT NULL default '-1', - `last_hard_state` smallint(6) NOT NULL default '-1', - `output` varchar(255) NOT NULL default '', - PRIMARY KEY (`statehistory_id`) - ) ENGINE=InnoDB COMMENT='Historical host and service state changes';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_statehistory` ( + `statehistory_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `state_time` datetime NOT NULL default '0000-00-00 00:00:00', + `state_time_usec` int(11) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `state_change` smallint(6) NOT NULL default '0', + `state` smallint(6) NOT NULL default '0', + `state_type` smallint(6) NOT NULL default '0', + `current_check_attempt` smallint(6) NOT NULL default '0', + `max_check_attempts` smallint(6) NOT NULL default '0', + `last_state` smallint(6) NOT NULL default '-1', + `last_hard_state` smallint(6) NOT NULL default '-1', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + PRIMARY KEY (`statehistory_id`) + ) ENGINE=MyISAM COMMENT='Historical host and service state changes'; + "; } if (!in_array('npc_systemcommands', $tables)) { - $sql[] = "CREATE TABLE `npc_systemcommands` ( - `systemcommand_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `start_time` datetime NOT NULL default '0000-00-00 00:00:00', - `start_time_usec` int(11) NOT NULL default '0', - `end_time` datetime NOT NULL default '0000-00-00 00:00:00', - `end_time_usec` int(11) NOT NULL default '0', - `command_line` varchar(255) NOT NULL default '', - `timeout` smallint(6) NOT NULL default '0', - `early_timeout` smallint(6) NOT NULL default '0', - `execution_time` double NOT NULL default '0', - `return_code` smallint(6) NOT NULL default '0', - `output` varchar(255) NOT NULL default '', - PRIMARY KEY (`systemcommand_id`), - UNIQUE KEY `instance_id` (`instance_id`,`start_time`,`start_time_usec`) - ) ENGINE=InnoDB COMMENT='Historical system commands that are executed';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_systemcommands` ( + `systemcommand_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `start_time` datetime NOT NULL default '0000-00-00 00:00:00', + `start_time_usec` int(11) NOT NULL default '0', + `end_time` datetime NOT NULL default '0000-00-00 00:00:00', + `end_time_usec` int(11) NOT NULL default '0', + `command_line` varchar(255) character set latin1 NOT NULL default '', + `timeout` smallint(6) NOT NULL default '0', + `early_timeout` smallint(6) NOT NULL default '0', + `execution_time` double NOT NULL default '0', + `return_code` smallint(6) NOT NULL default '0', + `output` varchar(255) character set latin1 NOT NULL default '', + `long_output` TEXT NOT NULL default '', + PRIMARY KEY (`systemcommand_id`), + KEY `instance_id` (`instance_id`), + KEY `start_time` (`start_time`) + ) ENGINE=MyISAM COMMENT='Historical system commands that are executed'; + "; + // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`start_time`,`start_time_usec`)"; } if (!in_array('npc_timedeventqueue', $tables)) { - $sql[] = "CREATE TABLE `npc_timedeventqueue` ( - `timedeventqueue_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `event_type` smallint(6) NOT NULL default '0', - `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', - `queued_time_usec` int(11) NOT NULL default '0', - `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', - `recurring_event` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - PRIMARY KEY (`timedeventqueue_id`) - ) ENGINE=InnoDB COMMENT='Current Nagios event queue';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_timedeventqueue` ( + `timedeventqueue_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `event_type` smallint(6) NOT NULL default '0', + `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', + `queued_time_usec` int(11) NOT NULL default '0', + `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', + `recurring_event` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + PRIMARY KEY (`timedeventqueue_id`), + KEY `instance_id` (`instance_id`), + KEY `event_type` (`event_type`), + KEY `scheduled_time` (`scheduled_time`), + KEY `object_id` (`object_id`) + ) ENGINE=MyISAM COMMENT='Current Nagios event queue'; + "; } if (!in_array('npc_timedevents', $tables)) { - $sql[] = "CREATE TABLE `npc_timedevents` ( - `timedevent_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `event_type` smallint(6) NOT NULL default '0', - `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', - `queued_time_usec` int(11) NOT NULL default '0', - `event_time` datetime NOT NULL default '0000-00-00 00:00:00', - `event_time_usec` int(11) NOT NULL default '0', - `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', - `recurring_event` smallint(6) NOT NULL default '0', - `object_id` int(11) NOT NULL default '0', - `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', - `deletion_time_usec` int(11) NOT NULL default '0', - PRIMARY KEY (`timedevent_id`), - UNIQUE KEY `instance_id` (`instance_id`,`event_type`,`scheduled_time`,`object_id`) - ) ENGINE=InnoDB COMMENT='Historical events from the Nagios event queue';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_timedevents` ( + `timedevent_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `event_type` smallint(6) NOT NULL default '0', + `queued_time` datetime NOT NULL default '0000-00-00 00:00:00', + `queued_time_usec` int(11) NOT NULL default '0', + `event_time` datetime NOT NULL default '0000-00-00 00:00:00', + `event_time_usec` int(11) NOT NULL default '0', + `scheduled_time` datetime NOT NULL default '0000-00-00 00:00:00', + `recurring_event` smallint(6) NOT NULL default '0', + `object_id` int(11) NOT NULL default '0', + `deletion_time` datetime NOT NULL default '0000-00-00 00:00:00', + `deletion_time_usec` int(11) NOT NULL default '0', + PRIMARY KEY (`timedevent_id`), + KEY `instance_id` (`instance_id`), + KEY `event_type` (`event_type`), + KEY `scheduled_time` (`scheduled_time`), + KEY `object_id` (`object_id`) + ) ENGINE=MyISAM COMMENT='Historical events from the Nagios event queue'; + "; + // FIXME? $sql[] = "UNIQUE KEY `instance_id` (`instance_id`,`event_type`,`scheduled_time`,`object_id`)"; } if (!in_array('npc_timeperiod_timeranges', $tables)) { - $sql[] = "CREATE TABLE `npc_timeperiod_timeranges` ( - `timeperiod_timerange_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `timeperiod_id` int(11) NOT NULL default '0', - `day` smallint(6) NOT NULL default '0', - `start_sec` int(11) NOT NULL default '0', - `end_sec` int(11) NOT NULL default '0', - PRIMARY KEY (`timeperiod_timerange_id`), - UNIQUE KEY `instance_id` (`timeperiod_id`,`day`,`start_sec`,`end_sec`) - ) ENGINE=InnoDB COMMENT='Timeperiod definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_timeperiod_timeranges` ( + `timeperiod_timerange_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `timeperiod_id` int(11) NOT NULL default '0', + `day` smallint(6) NOT NULL default '0', + `start_sec` int(11) NOT NULL default '0', + `end_sec` int(11) NOT NULL default '0', + PRIMARY KEY (`timeperiod_timerange_id`), + UNIQUE KEY `instance_id` (`timeperiod_id`,`day`,`start_sec`,`end_sec`) + ) ENGINE=MyISAM COMMENT='Timeperiod definitions'; + "; } if (!in_array('npc_timeperiods', $tables)) { - $sql[] = "CREATE TABLE `npc_timeperiods` ( - `timeperiod_id` int(11) NOT NULL auto_increment, - `instance_id` smallint(6) NOT NULL default '0', - `config_type` smallint(6) NOT NULL default '0', - `timeperiod_object_id` int(11) NOT NULL default '0', - `alias` varchar(255) NOT NULL default '', - PRIMARY KEY (`timeperiod_id`), - UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`timeperiod_object_id`) - ) ENGINE=InnoDB COMMENT='Timeperiod definitions';"; + $sql[] = " + CREATE TABLE IF NOT EXISTS `npc_timeperiods` ( + `timeperiod_id` int(11) NOT NULL auto_increment, + `instance_id` smallint(6) NOT NULL default '0', + `config_type` smallint(6) NOT NULL default '0', + `timeperiod_object_id` int(11) NOT NULL default '0', + `alias` varchar(255) character set latin1 NOT NULL default '', + PRIMARY KEY (`timeperiod_id`), + UNIQUE KEY `instance_id` (`instance_id`,`config_type`,`timeperiod_object_id`) + ) ENGINE=MyISAM COMMENT='Timeperiod definitions'; + "; } + // Cacti only: npc_service_graphs if (!in_array('npc_service_graphs', $tables)) { - $sql[] = "CREATE TABLE `npc_service_graphs` ( - `service_graph_id` int(11) NOT NULL auto_increment, - `service_object_id` int(11) NOT NULL, - `local_graph_id` mediumint(8) unsigned NOT NULL, - `pri` tinyint(1) default 1, - PRIMARY KEY (`service_graph_id`), - KEY `idx1` (`service_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE `npc_service_graphs` ( + `service_graph_id` int(11) NOT NULL auto_increment, + `service_object_id` int(11) NOT NULL, + `local_graph_id` mediumint(8) unsigned NOT NULL, + `pri` tinyint(1) default 1, + PRIMARY KEY (`service_graph_id`), + KEY `idx1` (`service_object_id`) + ) ENGINE=MyISAM; + "; } + // Cacti only: npc_host_graphs if (!in_array('npc_host_graphs', $tables)) { - $sql[] = "CREATE TABLE `npc_host_graphs` ( - `host_graph_id` int(11) NOT NULL auto_increment, - `host_object_id` int(11) NOT NULL, - `local_graph_id` mediumint(8) unsigned NOT NULL, - `pri` tinyint(1) default 1, - PRIMARY KEY (`host_graph_id`), - KEY `idx1` (`host_object_id`) - ) ENGINE=InnoDB;"; + $sql[] = " + CREATE TABLE `npc_host_graphs` ( + `host_graph_id` int(11) NOT NULL auto_increment, + `host_object_id` int(11) NOT NULL, + `local_graph_id` mediumint(8) unsigned NOT NULL, + `pri` tinyint(1) default 1, + PRIMARY KEY (`host_graph_id`), + KEY `idx1` (`host_object_id`) + ) ENGINE=MyISAM; + "; } + // Cacti only: npc_settings if (!in_array('npc_settings', $tables)) { - $sql[] = "CREATE TABLE `npc_settings` ( - `user_id` mediumint(8) unsigned NOT NULL, - `settings` text default null, - PRIMARY KEY (`user_id`) - ) ENGINE=InnoDB COMMENT='NPC user settings';"; - } else { - + $sql[] = " + CREATE TABLE `npc_settings` ( + `user_id` mediumint(8) unsigned NOT NULL, + `settings` text default null, + PRIMARY KEY (`user_id`) + ) ENGINE=MyISAM COMMENT='NPC user settings'; + "; } if (!empty($sql)) { - for ($a = 0; $a < count($sql); $a++) { - $result = db_execute($sql[$a]); + foreach ($sql as $query) { + db_execute($query); } } } @@ -1477,7 +1661,7 @@ global $config; if (isset($_SESSION["sess_user_id"])) { - + $user_id = $_SESSION["sess_user_id"]; $npc_realm = db_fetch_cell("SELECT id FROM plugin_config WHERE directory = 'npc'"); @@ -1488,8 +1672,8 @@ $cp = false; if (basename($_SERVER["PHP_SELF"]) == "npc.php") { $cp = true; } - print 'npc'; } } @@ -1502,7 +1686,7 @@ global $npc_config_type; if (isset($_SESSION["sess_user_id"])) { - + $user_id = $_SESSION["sess_user_id"]; $npc_realm = db_fetch_cell("SELECT id FROM plugin_config WHERE directory = 'npc'"); @@ -1516,10 +1700,10 @@ //npc_upgrade_tables (); // Add a new realm - if ($old_npc_version != '2.0.2' || $old_npc_version != '2.0.3') { + if ($old_npc_version != '2.0.2' || $old_npc_version != '2.0.3') { api_plugin_register_realm ('npc', 'npc1.php', 'NPC Global Commands', 1); } - + // Reset stored cookie values. db_execute("DELETE FROM npc_settings"); @@ -1562,7 +1746,7 @@ "description" => "The path to the Nagios command file (nagios.cmd).", "method" => "textbox", "max_length" => 255, - ), + ), "npc_nagios_url" => array( "friendly_name" => "Nagios URL", "description" => "The full URL to your Nagios installation (http://nagios.company.com/nagios/)",