From: Elan Ruusamäe Date: Sun, 25 Nov 2012 21:50:23 +0000 (+0200) Subject: upgrade ndoutils schema to 1.5.2 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcacti-plugin-npc.git;a=commitdiff_plain;h=425587bfc03fa4ea8e3a9eb0aae66907dbea3f00 upgrade ndoutils schema to 1.5.2 --- diff --git a/cacti-plugin-npc.spec b/cacti-plugin-npc.spec index 5979e7f..f9f0c1b 100644 --- a/cacti-plugin-npc.spec +++ b/cacti-plugin-npc.spec @@ -9,12 +9,13 @@ Summary: Nagios Plugin for Cacti (NPC) Summary(pl.UTF-8): Wtyczka do Cacti - NPC Name: cacti-plugin-npc Version: 2.0.4 -Release: 0.4 +Release: 0.7 License: GPL v3 Group: Applications/WWW #Source0: http://downloads.sourceforge.net/gibtmirdas/npc-%{version}.tar.gz Source0: npc-%{version}.tar.gz Patch0: %{name}-graphs_url.patch +Patch1: ndoutils-1.5.patch # Source0-md5: 7b30302c544f10ed73cff406fda14499 URL: https://trac.assembla.com/npc/ BuildRequires: rpmbuild(macros) >= 1.553 @@ -60,9 +61,15 @@ mv %{plugin}/build.xml . mv %{plugin}/{README,LICENSE} . %undos -f php README %patch0 -p1 +%patch1 -p1 -# dev code, not needed for production functionality cd %{plugin} + +# part of ndoutils +%{__rm} -r queries +# upgrade_schema.sql - adds indexes to db + +# dev code, not needed for production functionality %{__rm} controllers/layoutDev.php %{__rm} -r js/src %{__rm} js/ext/*-debug.js @@ -95,4 +102,3 @@ rm -rf $RPM_BUILD_ROOT %{plugindir}/js %{plugindir}/lib %{plugindir}/models -%{plugindir}/queries diff --git a/ndoutils-1.5.patch b/ndoutils-1.5.patch new file mode 100644 index 0000000..6928a85 --- /dev/null +++ b/ndoutils-1.5.patch @@ -0,0 +1,2393 @@ +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 VALUES ('npc_date_format','Y-m-d');"; ++ $sql[] = "INSERT IGNORE INTO settings VALUES ('npc_time_format','H:i');"; ++ $sql[] = "INSERT IGNORE INTO settings 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 `npcacknowledgements` ( ++ `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 `nagios_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 `nagios_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 `nagios_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/)",