[packages/cacti-plugin-npc] upgrade ndoutils schema to 1.5.2
glen
glen at pld-linux.org
Sun Nov 25 23:00:10 CET 2012
commit 425587bfc03fa4ea8e3a9eb0aae66907dbea3f00
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Sun Nov 25 23:50:23 2012 +0200
upgrade ndoutils schema to 1.5.2
cacti-plugin-npc.spec | 12 +-
ndoutils-1.5.patch | 2393 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 2402 insertions(+), 3 deletions(-)
---
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 '<a href="' . $config['url_path'] . 'plugins/npc/npc.php"><img src="'
+- . $config['url_path'] . 'plugins/npc/images/tab_npc'
++ print '<a href="' . $config['url_path'] . 'plugins/npc/npc.php"><img src="'
++ . $config['url_path'] . 'plugins/npc/images/tab_npc'
+ . ($cp ? "_down": "") . '.gif" alt="npc" align="absmiddle" border="0"></a>';
+ }
+ }
+@@ -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/)",
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/cacti-plugin-npc.git/commitdiff/c62cdf775f27af84db1cdd69a9d6ef43b6a4a4e0
More information about the pld-cvs-commit
mailing list