static function cronCleanlogs() { global $DB; $pmLog = new PluginMonitoringLog(); $pmConfig = new PluginMonitoringConfig(); $id_restart = 0; $a_restarts = $pmLog->find("`action`='restart'", "`id` DESC", 1); if (count($a_restarts) > 0) { $a_restart = current($a_restarts); $id_restart = $a_restart['id']; } $pmConfig->getFromDB(1); $secs = $pmConfig->fields['logretention'] * DAY_TIMESTAMP; $query = "DELETE FROM `" . $pmLog->getTable() . "`\n WHERE UNIX_TIMESTAMP(date_mod) < UNIX_TIMESTAMP()-{$secs}"; if ($id_restart > 0) { $query .= " AND `id` < '" . $id_restart . "'"; } $DB->query($query); // Clean too events PluginMonitoringServiceevent::cronUpdaterrd(); $pmUnavaibility = new PluginMonitoringUnavaibility(); $pmUnavaibility->runUnavaibility(); $query = "DELETE FROM `glpi_plugin_monitoring_serviceevents`\n WHERE UNIX_TIMESTAMP(date) < UNIX_TIMESTAMP()-{$secs}"; $DB->query($query); return true; }
static function cronCleanlogs() { global $DB; $pmLog = new PluginMonitoringLog(); $pmConfig = new PluginMonitoringConfig(); $id_restart = 0; $a_restarts = $pmLog->find("`action`='restart'", "`id` DESC", 1); if (count($a_restarts) > 0) { $a_restart = current($a_restarts); $id_restart = $a_restart['id']; } $id_reload = 0; $a_reloads = $pmLog->find("`action`='reload'", "`id` DESC", 1); if (count($a_reloads) > 0) { $a_reload = current($a_reloads); $id_reload = $a_reload['id']; } $pmConfig->getFromDB(1); $secs = $pmConfig->fields['logretention'] * DAY_TIMESTAMP; $query = "DELETE FROM `" . $pmLog->getTable() . "`\n WHERE UNIX_TIMESTAMP(date_mod) < UNIX_TIMESTAMP()-{$secs}"; if ($id_restart > 0 || $id_reload > 0) { // Keep last reload or restart command $id_restart = max($id_restart, $id_reload); $query .= " AND `id` < '" . $id_restart . "'"; } $DB->query($query); // TODO: Delete serviceevents table content ??? $query = "DELETE FROM `glpi_plugin_monitoring_serviceevents`\n WHERE UNIX_TIMESTAMP(date) < UNIX_TIMESTAMP()-{$secs}"; $DB->query($query); return true; }
function displayGraphs($itemtype, $items_id) { global $CFG_GLPI; $pmComponent = new PluginMonitoringComponent(); $pmConfig = new PluginMonitoringConfig(); $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $item = new $itemtype(); $item->getFromDB($items_id); $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); if (!isset($_SESSION['glpi_plugin_monitoring']['perfname'][$pmComponent->fields['id']])) { PluginMonitoringServicegraph::loadPreferences($pmComponent->fields['id']); } $css_width = '950'; if (isset($_GET['mobile'])) { $css_width = '300'; } echo "<table class='tab_cadre' width='" . $css_width . "'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; $title = Dropdown::getDropdownName(getTableForItemType('PluginMonitoringComponent'), $item->fields['plugin_monitoring_components_id']); $title .= ' ' . __('on', 'monitoring') . ' '; $pmComponentscatalog_Host->getFromDB($item->fields["plugin_monitoring_componentscatalogs_hosts_id"]); if (isset($pmComponentscatalog_Host->fields['itemtype']) and $pmComponentscatalog_Host->fields['itemtype'] != '') { $itemtype2 = $pmComponentscatalog_Host->fields['itemtype']; $item2 = new $itemtype2(); $item2->getFromDB($pmComponentscatalog_Host->fields['items_id']); $title .= str_replace("'", "\"", $item2->getLink() . " (" . $item2->getTypeName() . ")"); } echo $title; echo "</th>"; echo "<th width='200'>"; if (!isset($_GET['mobile'])) { echo "<form method='post'>"; $a_timezones = PluginMonitoringConfig::getTimezones(); if (!isset($_SESSION['plugin_monitoring_timezone'])) { $_SESSION['plugin_monitoring_timezone'] = '0'; } $a_timezones_allowed = array(); $pmConfig->getFromDB(1); $a_temp = importArrayFromDB($pmConfig->fields['timezones']); foreach ($a_temp as $key) { $a_timezones_allowed[$key] = $a_timezones[$key]; } if (count($a_timezones_allowed) == '0') { $a_timezones_allowed['0'] = $a_timezones['0']; } Dropdown::showFromArray('plugin_monitoring_timezone', $a_timezones_allowed, array('value' => $_SESSION['plugin_monitoring_timezone'])); echo " <input type='submit' name='update' value=\"" . __('Save') . "\" class='submit'>"; Html::closeForm(); } echo "</th>"; echo "</tr>"; $timezone = '0'; if (isset($_SESSION['plugin_monitoring_timezone'])) { $timezone = $_SESSION['plugin_monitoring_timezone']; } if (!isset($_GET['mobile'])) { echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo "<div id='legendlink'><a onClick='Ext.get(\"options\").toggle();'>[ Options ]</a></div>"; echo "</th>"; echo "</tr>"; // * Display perfname echo "<tr class='tab_bg_1'>"; echo "<td colspan='2'>"; echo "<div id='options' style='display:none'>"; PluginMonitoringServicegraph::preferences($pmComponent->fields['id'], 0); echo "</div>"; echo "</td>"; echo "</tr>"; // * Display date slider echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo __('Select date (only last 2, 12 and 24 hours)', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td colspan='2'>"; $end = time(); $oldvalue = current(getAllDatasFromTable('glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id`='" . $items_id . "'", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); $start = $date->getTimestamp(); $pmServicegraph = new PluginMonitoringServicegraph(); echo "\n<script type=\"text/javascript\">\n\nExt.onReady(function(){\n\n var tip = new Ext.slider.Tip({\n getText: function(thumb){\n return String.format('<b> ' + new Date(thumb.value * 1000).format('Y-m-d') + '</b>');\n }\n });\n\n new Ext.Slider({\n renderTo: 'custom-tip-slider',\n width: 940,\n increment: 86400,\n minValue: " . $start . ",\n maxValue: " . $end . ",\n value: " . $end . ",\n plugins: tip,\n listeners: {\n dragend: function(slider, thumb, value){\n document.getElementById('custom_date').textContent = slider.getValue();\n mgr" . $items_id . "2h.stopAutoRefresh();\n mgr" . $items_id . "12h.stopAutoRefresh();\n mgr" . $items_id . "1d.stopAutoRefresh();\n "; $a_graphlist = array('2h', '12h', '1d'); foreach ($a_graphlist as $time) { $pmServicegraph->startAutoRefresh($pmComponent->fields['graph_template'], $itemtype, $items_id, $timezone, $time, $pmComponent->fields['id']); } echo "\n }\n }\n });\n\n});\n</script>"; echo '<center><div id="custom-tip-slider"></div></center>'; echo '<div id="custom_date" style="display:none"></div>'; echo "</td>"; echo "</tr>"; // * Display time slider echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo __('Select time (only last 2, 12 and 24 hours)', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td colspan='2'>"; $start = 0 + 86400 - 3600; $end = 86400 + 86400 - 3600 - 300; $current = mktime(date('H'), date('i'), 0, 1, 2, 1970); echo "\n<script type=\"text/javascript\">\n\nExt.onReady(function(){\n\n var tiptime = new Ext.slider.Tip({\n getText: function(thumb){\n return String.format('<b> ' + new Date(thumb.value * 1000).format('H:i:s') + '</b>');\n }\n });\n\n new Ext.Slider({\n renderTo: 'custom-tip-slider-time',\n width: 940,\n increment: 300,\n minValue: " . $start . ",\n maxValue: " . $end . ",\n value: " . $current . ",\n plugins: tiptime,\n listeners: {\n dragend: function(slider, thumb, value){\n document.getElementById('custom_time').textContent = slider.getValue();\n mgr" . $items_id . "2h.stopAutoRefresh();\n mgr" . $items_id . "12h.stopAutoRefresh();\n mgr" . $items_id . "1d.stopAutoRefresh();\n "; $a_graphlist = array('2h', '12h', '1d'); foreach ($a_graphlist as $time) { $pmServicegraph->startAutoRefresh($pmComponent->fields['graph_template'], $itemtype, $items_id, $timezone, $time, $pmComponent->fields['id']); } echo "\n }\n }\n });\n});\n</script>"; echo '<center><div id="custom-tip-slider-time"></div></center>'; echo '<div id="custom_time" style="display:none"></div>'; echo "</td>"; echo "</tr>"; } $a_list = array(); $a_list["2h"] = __("Last 2 hours", "monitoring"); $a_list["12h"] = __("Last 12 hours", "monitoring"); $a_list["1d"] = __("Last 24 hours", "monitoring"); if (!isset($_GET['mobile'])) { $a_list["1w"] = __("Last 7 days (average)", "monitoring"); $a_list["1m"] = __("Last month (average)", "monitoring"); $a_list["0y6m"] = __("Last 6 months (average)", "monitoring"); $a_list["1y"] = __("Last year (average)", "monitoring"); } foreach ($a_list as $time => $name) { echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo $name; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td align='center' colspan='2'>"; $pmServicegraph = new PluginMonitoringServicegraph(); $part = ''; $width = '950'; if (isset($_GET['mobile'])) { $width = '294'; } $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], $itemtype, $items_id, $timezone, $time, $part, $width); echo "</td>"; echo "</tr>"; } echo "</table>"; }
function displayGraphs($itemtype, $items_id) { global $CFG_GLPI; $pmComponent = new PluginMonitoringComponent(); $pmConfig = new PluginMonitoringConfig(); $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $networkPort = new NetworkPort(); $item = new $itemtype(); $item->getFromDB($items_id); $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); if (!isset($_SESSION['glpi_plugin_monitoring']['perfname'][$pmComponent->fields['id']])) { PluginMonitoringToolbox::loadPreferences($pmComponent->fields['id']); } $css_width = '950'; if (isset($_GET['mobile'])) { $css_width = '300'; } echo "<table class='tab_cadre' width='" . $css_width . "'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; $title = Dropdown::getDropdownName(getTableForItemType('PluginMonitoringComponent'), $item->fields['plugin_monitoring_components_id']); if (!is_null($item->fields['networkports_id']) && $item->fields['networkports_id'] > 0) { $networkPort->getFromDB($item->fields['networkports_id']); $title .= " [" . $networkPort->getLink() . "]"; } $title .= ' ' . __('on', 'monitoring') . ' '; $pmComponentscatalog_Host->getFromDB($item->fields["plugin_monitoring_componentscatalogs_hosts_id"]); if (isset($pmComponentscatalog_Host->fields['itemtype']) and $pmComponentscatalog_Host->fields['itemtype'] != '') { $itemtype2 = $pmComponentscatalog_Host->fields['itemtype']; $item2 = new $itemtype2(); $item2->getFromDB($pmComponentscatalog_Host->fields['items_id']); $title .= str_replace("'", "\"", $item2->getLink() . " (" . $item2->getTypeName() . ")"); } echo $title; echo "</th>"; echo "<th width='200'>"; if (!isset($_GET['mobile'])) { echo "<form method='post'>"; $a_timezones = PluginMonitoringConfig::getTimezones(); if (!isset($_SESSION['plugin_monitoring_timezone'])) { $_SESSION['plugin_monitoring_timezone'] = '0'; } $a_timezones_allowed = array(); $pmConfig->getFromDB(1); $a_temp = importArrayFromDB($pmConfig->fields['timezones']); foreach ($a_temp as $key) { $a_timezones_allowed[$key] = $a_timezones[$key]; } if (count($a_timezones_allowed) == '0') { $a_timezones_allowed['0'] = $a_timezones['0']; } Dropdown::showFromArray('plugin_monitoring_timezone', $a_timezones_allowed, array('value' => $_SESSION['plugin_monitoring_timezone'])); echo " <input type='submit' name='update' value=\"" . __('Save') . "\" class='submit'>"; Html::closeForm(); } echo "</th>"; echo "</tr>"; $timezone = '0'; if (isset($_SESSION['plugin_monitoring_timezone'])) { $timezone = $_SESSION['plugin_monitoring_timezone']; } if (!isset($_GET['mobile'])) { echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo "<div id='legendlink'><a onClick='\$(\"#options\").toggle();'>[ Options ]</a></div>"; echo "</th>"; echo "</tr>"; // * Display perfname echo "<tr class='tab_bg_1'>"; echo "<td colspan='2'>"; echo "<div id='options' style='display:none'>"; PluginMonitoringToolbox::preferences($pmComponent->fields['id'], 0); echo "</div>"; echo "</td>"; echo "</tr>"; // * Display date slider echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo __('Select date', 'monitoring') . " - " . __('Select time', 'monitoring'); echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; $start = time(); $oldvalue = current(getAllDatasFromTable('glpi_plugin_monitoring_serviceevents', "`plugin_monitoring_services_id`='" . $items_id . "'", false, 'date ASC LIMIT 1')); $date = new DateTime($oldvalue['date']); if ($date->getTimestamp() < $start) { $start = $date->getTimestamp(); } $nbdays = round((date('U') - $start) / 86400); echo "<script type=\"text/javascript\">\n \$(function() {\n \$( \"#custom_date\" ).datepicker({ minDate: -" . $nbdays . ", maxDate: \"+0D\", dateFormat:'mm/dd/yy' });\n \$( \"#custom_time\" ).timepicker();\n\n });\n </script>"; echo '<center><input type="text" id="custom_date" value="' . date('m/d/Y') . '"> ' . ' <input type="text" id="custom_time" value="' . date('H:i') . '"></center>'; echo "</th>"; echo "</tr>"; } $a_list = array(); $a_list["2h"] = __("Last 2 hours", "monitoring"); $a_list["12h"] = __("Last 12 hours", "monitoring"); $a_list["1d"] = __("Last 24 hours", "monitoring"); $a_list["1w"] = __("Last 7 days (average)", "monitoring"); // $a_list["1m"] = __("Last month (average)", "monitoring"); // $a_list["0y6m"] = __("Last 6 months (average)", "monitoring"); // $a_list["1y"] = __("Last year (average)", "monitoring"); foreach ($a_list as $time => $name) { echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo $name; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td align='center' colspan='2' style='position: relative'>"; $pmServicegraph = new PluginMonitoringServicegraph(); $part = ''; $width = '950'; if (isset($_GET['mobile'])) { $width = '294'; } $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], $itemtype, $items_id, $timezone, $time, $part, $width); echo "</td>"; echo "</tr>"; } echo "</table>"; }
@package Plugin Monitoring for GLPI @author David Durieux @co-author @comment @copyright Copyright (c) 2011-2014 Plugin Monitoring for GLPI team @license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link https://forge.indepnet.net/projects/monitoring/ @since 2011 ------------------------------------------------------------------------ */ include "../../../inc/includes.php"; Session::checkRight("config", UPDATE); Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "PluginMonitoringDashboard", "config"); $pmConfig = new PluginMonitoringConfig(); if (isset($_POST["update"])) { $pmConfig->update($_POST); Html::back(); } else { if (isset($_POST['timezones_add'])) { $input = array(); $pmConfig->getFromDB($_POST['id']); $input['id'] = $_POST['id']; $a_timezones = importArrayFromDB($pmConfig->fields['timezones']); foreach ($_POST['timezones_to_add'] as $timezone) { $a_timezones[] = $timezone; } $input['timezones'] = exportArrayToDB($a_timezones); $pmConfig->update($input); Html::back();
static function getAdditionalMenuOptions() { global $CFG_GLPI; $main_menu = '<img src="' . $CFG_GLPI["root_doc"] . '/plugins/monitoring/pics/main_menu.png" alt="' . __('Main menu', 'monitoring') . '" title="' . __('Main menu', 'monitoring') . '"\\>'; return array('componentscatalog' => array('title' => PluginMonitoringComponentscatalog::getTypeName(), 'page' => PluginMonitoringComponentscatalog::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/componentscatalog.php', 'add' => '/plugins/monitoring/front/componentscatalog.form.php')), 'command' => array('title' => PluginMonitoringCommand::getTypeName(), 'page' => PluginMonitoringCommand::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/command.php', 'add' => '/plugins/monitoring/front/command.form.php')), 'check' => array('title' => PluginMonitoringCheck::getTypeName(), 'page' => PluginMonitoringCheck::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/check.php', 'add' => '/plugins/monitoring/front/check.form.php')), 'eventhandler' => array('title' => PluginMonitoringEventhandler::getTypeName(), 'page' => PluginMonitoringEventhandler::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/eventhandler.php', 'add' => '/plugins/monitoring/front/eventhandler.form.php')), 'perfdata' => array('title' => PluginMonitoringPerfdata::getTypeName(), 'page' => PluginMonitoringPerfdata::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/perfdata.php', 'add' => '/plugins/monitoring/front/perfdata.form.php')), 'component' => array('title' => PluginMonitoringComponent::getTypeName(), 'page' => PluginMonitoringComponent::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/component.php', 'add' => '/plugins/monitoring/front/component.form.php')), 'contacttemplate' => array('title' => PluginMonitoringContacttemplate::getTypeName(), 'page' => PluginMonitoringContacttemplate::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/contacttemplate.php', 'add' => '/plugins/monitoring/front/contacttemplate.form.php')), 'notificationcommand' => array('title' => PluginMonitoringNotificationcommand::getTypeName(), 'page' => PluginMonitoringNotificationcommand::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/notificationcommand.php', 'add' => '/plugins/monitoring/front/notificationcommand.form.php')), 'realm' => array('title' => PluginMonitoringRealm::getTypeName(), 'page' => PluginMonitoringRealm::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/realm.php', 'add' => '/plugins/monitoring/front/realm.form.php')), 'tag' => array('title' => PluginMonitoringTag::getTypeName(), 'page' => PluginMonitoringTag::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/tag.php')), 'servicescatalog' => array('title' => PluginMonitoringServicescatalog::getTypeName(), 'page' => PluginMonitoringServicescatalog::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/servicescatalog.php', 'add' => '/plugins/monitoring/front/servicescatalog.form.php')), 'weathermap' => array('title' => PluginMonitoringWeathermap::getTypeName(), 'page' => PluginMonitoringWeathermap::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/weathermap.php', 'add' => '/plugins/monitoring/front/weathermap.form.php')), 'displayview' => array('title' => PluginMonitoringDisplayview::getTypeName(), 'page' => PluginMonitoringDisplayview::getSearchURL(false), 'links' => array('search' => '/plugins/monitoring/front/displayview.php', 'add' => '/plugins/monitoring/front/displayview.form.php')), 'slider' => array('title' => PluginMonitoringSlider::getTypeName(), 'page' => PluginMonitoringSlider::getSearchURL(false), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'search' => '/plugins/monitoring/front/slider.php', 'add' => '/plugins/monitoring/front/slider.form.php')), 'downtime' => array('title' => PluginMonitoringDowntime::getTypeName(), 'page' => PluginMonitoringDowntime::getSearchURL(false), 'links' => array('search' => '/plugins/monitoring/front/downtime.php')), 'acknowledge' => array('title' => PluginMonitoringAcknowledge::getTypeName(), 'page' => PluginMonitoringAcknowledge::getSearchURL(false), 'links' => array('search' => '/plugins/monitoring/front/acknowledge.php')), 'menu' => array('title' => PluginMonitoringMenu::getTypeName(), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'config' => '/plugins/monitoring/front/config.form.php')), 'dashboard' => array('title' => PluginMonitoringDisplay::getTypeName(), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php', 'config' => '/plugins/monitoring/front/config.form.php')), 'config' => array('title' => PluginMonitoringConfig::getTypeName(), 'links' => array($main_menu => '/plugins/monitoring/front/menu.php'))); }
/** * Function used to generate gif of rrdtool graph * * @param type $itemtype * @param type $items_id * @param type $time */ function displayGLPIGraph($rrdtool_template, $itemtype, $items_id, $timezone, $time = '1d', $width = '470') { $filename = GLPI_PLUGIN_DOC_DIR . "/monitoring/templates/" . $rrdtool_template . "_graph.json"; if (!file_exists($filename)) { return; } $a_json = json_decode(file_get_contents($filename)); $timezonefile = str_replace("+", ".", $timezone); // Manage timezones $converttimezone = '0'; if (strstr($timezone, '-')) { $timezone_temp = str_replace("-", "", $timezone); $converttimezone = $timezone_temp * 3600; $timezone = str_replace("-", "+", $timezone); } else { if (strstr($timezone, '+')) { $timezone_temp = str_replace("+", "", $timezone); $converttimezone = $timezone_temp * 3600; $timezone = str_replace("+", "-", $timezone); } } $opts = ""; $opts .= ' --start -' . $time; $opts .= " --title '" . $a_json->data[0]->labels[0]->title . "'"; // $opts .= " --vertical-label '".$a_json->data->labels->vertical-label."'"; $opts .= " --width " . $width; $opts .= " --height 200"; foreach ($a_json->data[0]->miscellaneous[0]->color as $color) { $opts .= " --color " . $color; } if ($a_json->data[0]->limits[0]->{"upper-limit"} != "") { $opts .= " --upper-limit " . $a_json->data[0]->limits[0]->{"upper-limit"}; } if ($a_json->data[0]->limits[0]->{"lower-limit"} != "") { $opts .= " --lower-limit " . $a_json->data[0]->limits[0]->{"lower-limit"}; } foreach ($a_json->data[0]->data as $data) { $data = str_replace("[[RRDFILE]]", GLPI_PLUGIN_DOC_DIR . "/monitoring/" . $itemtype . "-" . $items_id . ".rrd", $data); if (strstr($time, "d") or strstr($time, "h")) { $data = str_replace("AVERAGE", "LAST", $data); } if (strstr($data, "DEF") and !strstr($data, "CDEF") and $converttimezone != '0') { $data = $data . ':start=-' . $time . $timezone . 'h:end=' . $timezone . 'h'; } $opts .= " " . $data; if (strstr($data, "DEF") and !strstr($data, "CDEF") and $converttimezone != '0') { $a_explode = explode(":", $data); $a_name = explode("=", $a_explode[1]); $opts .= " SHIFT:" . $a_name[0] . ":" . $converttimezone; } } //$ret = rrd_graph(GLPI_PLUGIN_DOC_DIR."/monitoring/".$itemtype."-".$items_id."-".$time.".gif", $opts, count($opts)); if (file_exists(GLPI_PLUGIN_DOC_DIR . "/monitoring/" . $itemtype . "-" . $items_id . ".rrd")) { ob_start(); system(PluginMonitoringConfig::getRRDPath() . "/rrdtool graph " . GLPI_PLUGIN_DOC_DIR . "/monitoring/" . $itemtype . "-" . $items_id . "-" . $time . $timezonefile . ".gif " . $opts, $ret); ob_end_clean(); if (isset($ret) and $ret != '0') { echo "Create error: {$ret} for " . PluginMonitoringConfig::getRRDPath() . "/rrdtool graph " . GLPI_PLUGIN_DOC_DIR . "/monitoring/" . $itemtype . "-" . $items_id . "-" . $time . $timezonefile . ".gif " . $opts . "\n"; } } return true; }
function displayGraphs($itemtype, $items_id) { global $CFG_GLPI, $LANG; $pmComponent = new PluginMonitoringComponent(); $pmConfig = new PluginMonitoringConfig(); $item = new $itemtype(); $item->getFromDB($items_id); $pmComponent->getFromDB($item->fields['plugin_monitoring_components_id']); echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_1'>"; echo "<th>"; echo $item->getLink(1); echo "</th>"; echo "<th width='200'>"; echo "<form method='post'>"; $a_timezones = PluginMonitoringConfig::getTimezones(); if (!isset($_SESSION['plugin_monitoring_timezone'])) { $_SESSION['plugin_monitoring_timezone'] = '0'; } $a_timezones_allowed = array(); $pmConfig->getFromDB(1); $a_temp = importArrayFromDB($pmConfig->fields['timezones']); foreach ($a_temp as $key) { $a_timezones_allowed[$key] = $a_timezones[$key]; } if (count($a_timezones_allowed) == '0') { $a_timezones_allowed['0'] = $a_timezones['0']; } Dropdown::showFromArray('plugin_monitoring_timezone', $a_timezones_allowed, array('value' => $_SESSION['plugin_monitoring_timezone'])); echo " <input type='submit' name='update' value=\"" . $LANG['buttons'][7] . "\" class='submit'>"; echo "</form>"; echo "</th>"; echo "</tr>"; $a_list = array(); $a_list[] = "2h"; $a_list[] = "12h"; $a_list[] = "1d"; $a_list[] = "1w"; $a_list[] = "1m"; $a_list[] = "0y6m"; $a_list[] = "1y"; foreach ($a_list as $time) { echo "<tr class='tab_bg_1'>"; echo "<th colspan='2'>"; echo $time; echo "</th>"; echo "</tr>"; echo "<tr class='tab_bg_1'>"; echo "<td align='center' colspan='2'>"; $img = ''; $timezone = '0'; if (isset($_SESSION['plugin_monitoring_timezone'])) { $timezone = $_SESSION['plugin_monitoring_timezone']; } $timezone_file = str_replace("+", ".", $timezone); $pmServicegraph = new PluginMonitoringServicegraph(); $pmServicegraph->displayGraph($pmComponent->fields['graph_template'], $itemtype, $items_id, $timezone, $time); $img = "<img src='" . $CFG_GLPI['root_doc'] . "/plugins/monitoring/front/send.php?file=" . $itemtype . "-" . $items_id . "-" . $time . $timezone_file . ".png'/>"; echo $img; echo "</td>"; echo "</tr>"; } echo "</table>"; }
function pluginMonitoringUpdate($current_version, $migrationname = 'Migration') { global $DB; $migration = new $migrationname($current_version); if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/templates')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/templates"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/weathermapbg')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/weathermapbg"); } $unavailability_recalculate = 0; if (!TableExists("glpi_plugin_monitoring_unavailabilities") || !FieldExists("glpi_plugin_monitoring_unavailabilities", "duration")) { $unavailability_recalculate = 1; } $unavailability_reset = 0; if (!TableExists("glpi_plugin_monitoring_unavailabilities")) { $unavailability_reset = 1; } /* * Table glpi_plugin_monitoring_servicescatalogs */ $newTable = "glpi_plugin_monitoring_servicescatalogs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledged', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledgeconfirmed', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'acknowledge_comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'acknowledge_users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'notification_interval', "int(4) NOT NULL DEFAULT '30'"); $migration->addField($newTable, 'business_priority', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'is_generic', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_servicescatalogs_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs */ $newTable = "glpi_plugin_monitoring_componentscatalogs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'notification_interval', 'notification_interval', "int(4) NOT NULL DEFAULT '30'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'notification_interval', "int(4) NOT NULL DEFAULT '30'"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * glpi_plugin_monitoring_perfdatas */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_perfdatas'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'name' => array('type' => 'string', 'value' => NULL), 'perfdata' => array('type' => 'text', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * glpi_plugin_monitoring_customitems_counters */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_customitems_counters'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'name' => array('type' => 'string', 'value' => NULL), 'entities_id' => array('type' => 'integer', 'value' => NULL), 'is_recursive' => array('type' => 'bool', 'value' => NULL), 'type' => array('type' => 'string', 'value' => NULL), 'aggregate_items' => array('type' => 'text', 'value' => NULL), 'time' => array('type' => 'string', 'value' => NULL), 'time_specific' => array('type' => 'string', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * glpi_plugin_monitoring_customitems_gauges */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_customitems_gauges'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'name' => array('type' => 'string', 'value' => NULL), 'entities_id' => array('type' => 'integer', 'value' => NULL), 'is_recursive' => array('type' => 'bool', 'value' => NULL), 'type' => array('type' => 'string', 'value' => NULL), 'aggregate_items' => array('type' => 'text', 'value' => NULL), 'aggregate_warn' => array('type' => 'text', 'value' => NULL), 'aggregate_crit' => array('type' => 'text', 'value' => NULL), 'aggregate_limit' => array('type' => 'text', 'value' => NULL), 'time' => array('type' => 'string', 'value' => NULL), 'time_specific' => array('type' => 'string', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * glpi_plugin_monitoring_perfdatadetails */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_perfdatadetails'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'name' => array('type' => 'string', 'value' => NULL), 'dynamic_name' => array('type' => 'bool', 'value' => NULL), 'plugin_monitoring_perfdatas_id' => array('type' => 'integer', 'value' => NULL), 'position' => array('type' => "int(2) NOT NULL DEFAULT '0'", 'value' => NULL), 'dsname_num' => array('type' => 'tinyint(1) NOT NULL DEFAULT "1"', 'value' => NULL), 'dsname1' => array('type' => 'string', 'value' => NULL), 'dsname2' => array('type' => 'string', 'value' => NULL), 'dsname3' => array('type' => 'string', 'value' => NULL), 'dsname4' => array('type' => 'string', 'value' => NULL), 'dsname5' => array('type' => 'string', 'value' => NULL), 'dsname6' => array('type' => 'string', 'value' => NULL), 'dsname7' => array('type' => 'string', 'value' => NULL), 'dsname8' => array('type' => 'string', 'value' => NULL), 'dsname9' => array('type' => 'string', 'value' => NULL), 'dsname10' => array('type' => 'string', 'value' => NULL), 'dsname11' => array('type' => 'string', 'value' => NULL), 'dsname12' => array('type' => 'string', 'value' => NULL), 'dsname13' => array('type' => 'string', 'value' => NULL), 'dsname14' => array('type' => 'string', 'value' => NULL), 'dsname15' => array('type' => 'string', 'value' => NULL), 'dsnameincr1' => array('type' => 'bool', 'value' => 0), 'dsnameincr2' => array('type' => 'bool', 'value' => 0), 'dsnameincr3' => array('type' => 'bool', 'value' => 0), 'dsnameincr4' => array('type' => 'bool', 'value' => 0), 'dsnameincr5' => array('type' => 'bool', 'value' => 0), 'dsnameincr6' => array('type' => 'bool', 'value' => 0), 'dsnameincr7' => array('type' => 'bool', 'value' => 0), 'dsnameincr8' => array('type' => 'bool', 'value' => 0), 'dsnameincr9' => array('type' => 'bool', 'value' => 0), 'dsnameincr10' => array('type' => 'bool', 'value' => 0), 'dsnameincr11' => array('type' => 'bool', 'value' => 0), 'dsnameincr12' => array('type' => 'bool', 'value' => 0), 'dsnameincr13' => array('type' => 'bool', 'value' => 0), 'dsnameincr14' => array('type' => 'bool', 'value' => 0), 'dsnameincr15' => array('type' => 'bool', 'value' => 0)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(array('field' => 'plugin_monitoring_perfdatas_id', 'name' => '', 'type' => 'INDEX')); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); if (countElementsInTable('glpi_plugin_monitoring_perfdatas') == 0) { include GLPI_ROOT . "/plugins/monitoring/inc/perfdata.class.php"; include GLPI_ROOT . "/plugins/monitoring/inc/perfdatadetail.class.php"; PluginMonitoringPerfdata::initDB(); } /* * Table glpi_plugin_monitoring_components */ if (TableExists('glpi_plugin_monitoring_components')) { $a_data = getAllDatasFromTable('glpi_plugin_monitoring_components'); foreach ($a_data as $data) { if (!is_numeric($data['graph_template'])) { $a_perfs = getAllDatasFromTable('glpi_plugin_monitoring_perfdatas', '`name`="' . $data['graph_template'] . '"'); if (count($a_perfs) == 0) { $DB->query("UPDATE `glpi_plugin_monitoring_components`\n SET `graph_template`='0'\n WHERE `id`='" . $data['id'] . "'"); } else { $a_perf = current($a_perfs); $DB->query("UPDATE `glpi_plugin_monitoring_components`\n SET `graph_template`='" . $a_perf['id'] . "'\n WHERE `id`='" . $data['id'] . "'"); } } } } $newTable = "glpi_plugin_monitoring_components"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); // 0.84+1.3 $migration->changeField($newTable, 'description', 'description', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'active_checks_enabled', 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'passive_checks_enabled', 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'remotesystem', 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_arguments', 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'alias_command', 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'graph_template', 'graph_template', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'link', 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_weathermap', 'is_weathermap', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'weathermap_regex', 'weathermap_regex_in', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfname', 'perfname', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfnameinvert', 'perfnameinvert', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfnamecolor', 'perfnamecolor', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); // 0.84+1.3 $migration->addField($newTable, 'description', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'graph_template', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_weathermap', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'weathermap_regex_in', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'weathermap_regex_out', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfname', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfnameinvert', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfnamecolor', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_eventhandlers_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'freshness_count', "int(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'freshness_type', "varchar(255) DEFAULT 'seconds'"); $migration->addKey($newTable, "plugin_monitoring_commands_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_components */ $newTable = "glpi_plugin_monitoring_componentscatalogs_components"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_components_id', 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_componentscalalog_id', 'plugin_monitoring_components_id'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_componentscalalog_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_hosts */ $newTable = "glpi_plugin_monitoring_componentscatalogs_hosts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_static', 'is_static', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_static', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addKey($newTable, array('itemtype', 'items_id'), 'itemtype'); $migration->addKey($newTable, 'plugin_monitoring_componentscalalog_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_rules */ $newTable = "glpi_plugin_monitoring_componentscatalogs_rules"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'condition', 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->dropField($newTable, 'entities_id'); $migration->dropField($newTable, 'is_recursive'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, 'plugin_monitoring_componentscalalog_id'); $migration->migrationOneTable($newTable); $DB->query("UPDATE `glpi_plugin_monitoring_componentscatalogs_rules`\n SET `itemtype`='Computer' WHERE `itemtype`='PluginMonitoringComputer'"); /* * Table glpi_plugin_monitoring_services */ $newTable = "glpi_plugin_monitoring_services"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_components_id', 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_componentscatalogs_hosts_id', 'plugin_monitoring_componentscatalogs_hosts_id', "int(11) NOT NULL DEFAULT '0'"); // Event should contain up to 4096 bytes (Nagios plugin specification) $migration->changeField($newTable, 'event', 'event', "varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL"); // $migration->changeField($newTable, // 'event', // 'event', // "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->dropField($newTable, 'alias_command'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_componentscatalogs_hosts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledged', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledgeconfirmed', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'acknowledge_comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'acknowledge_users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('state', 'state_type'), 'state'); $migration->addKey($newTable, 'plugin_monitoring_componentscatalogs_hosts_id'); $migration->addKey($newTable, 'last_check'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacttemplates */ $newTable = "glpi_plugin_monitoring_contacttemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_default', 'is_default', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'shinken_administrator', 'shinken_administrator', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'shinken_can_submit_commands', 'shinken_can_submit_commands', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notifications_enabled', 'host_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notifications_enabled', 'service_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_period', 'service_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_period', 'host_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_options_w', 'service_notification_options_w', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_u', 'service_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_c', 'service_notification_options_c', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_r', 'service_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_f', 'service_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_options_n', 'service_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_d', 'host_notification_options_d', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_u', 'host_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_r', 'host_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_f', 'host_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_s', 'host_notification_options_s', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_n', 'host_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_commands', 'service_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_commands', 'host_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_default', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'shinken_administrator', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'shinken_can_submit_commands', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_options_w', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_c', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_d', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_s', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts */ $newTable = "glpi_plugin_monitoring_contacts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contacttemplates_id', 'plugin_monitoring_contacttemplates_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contacttemplates_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts_items */ $newTable = "glpi_plugin_monitoring_contacts_items"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'groups_id', 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_commandtemplates */ $newTable = "glpi_plugin_monitoring_commandtemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'key', 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_rrdtooltemplates */ $newTable = "glpi_plugin_monitoring_rrdtooltemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'key', 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_configs */ $newTable = "glpi_plugin_monitoring_configs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'timezones', 'timezones', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '[\"0\"]'"); $migration->changeField($newTable, 'version', 'version', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'logretention', 'logretention', "int(5) NOT NULL DEFAULT '30'"); $migration->changeField($newTable, 'nrpe_prefix_contener', 'nrpe_prefix_contener', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'append_id_hostname', 'append_id_hostname', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->dropField($newTable, 'phppath'); $migration->dropField($newTable, 'rrdtoolpath'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'timezones', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '[\"0\"]'"); $migration->addField($newTable, 'version', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'logretention', "int(5) NOT NULL DEFAULT '30'"); $migration->addField($newTable, 'extradebug', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'nrpe_prefix_contener', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'append_id_hostname', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews */ $newTable = "glpi_plugin_monitoring_displayviews"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'counter', 'counter', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'in_central', 'in_central', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'width', 'width', "int(5) NOT NULL DEFAULT '950'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'counter', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'in_central', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'width', "int(5) NOT NULL DEFAULT '950'"); $migration->addField($newTable, 'is_frontview', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_groups */ $newTable = "glpi_plugin_monitoring_displayviews_groups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'pluginmonitoringdisplayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "pluginmonitoringdisplayviews_id"); $migration->addKey($newTable, "groups_id"); $migration->addKey($newTable, "entities_id"); $migration->addKey($newTable, "is_recursive"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_users */ $newTable = "glpi_plugin_monitoring_displayviews_users"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'pluginmonitoringdisplayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "pluginmonitoringdisplayviews_id"); $migration->addKey($newTable, "users_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_items */ $newTable = "glpi_plugin_monitoring_displayviews_items"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_displayviews_id', 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'x', 'x', "int(5) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'y', 'y', "int(5) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'extra_infos', 'extra_infos', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'x', "int(5) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'y', "int(5) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'extra_infos', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'is_minemap', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "plugin_monitoring_displayviews_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_rules */ $newTable = "glpi_plugin_monitoring_displayviews_rules"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, 'plugin_monitoring_displayviews_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_entities */ $newTable = "glpi_plugin_monitoring_entities"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'tag', 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addKey($newTable, "entities_id"); $migration->addKey($newTable, "tag"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostaddresses */ $newTable = "glpi_plugin_monitoring_hostaddresses"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'ipaddresses_id', 'ipaddresses_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'ipaddresses_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostconfigs */ $a_hostsconfig = array(); if (TableExists('glpi_plugin_monitoring_hostconfigs') && FieldExists('glpi_plugin_monitoring_hostconfigs', 'plugin_monitoring_commands_id')) { $a_hostsconfig = getAllDatasFromTable('glpi_plugin_monitoring_hostconfigs'); } $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_hostconfigs'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'items_id' => array('type' => 'integer', 'value' => NULL), 'itemtype' => array('type' => 'varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL', 'value' => NULL), 'plugin_monitoring_components_id' => array('type' => 'integer', 'value' => NULL), 'plugin_monitoring_realms_id' => array('type' => 'integer', 'value' => NULL), 'computers_id' => array('type' => 'integer', 'value' => NULL), 'jetlag' => array('type' => 'varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL', 'value' => '0')); $a_table['oldfields'] = array('plugin_monitoring_commands_id', 'plugin_monitoring_checks_id', 'calendars_id'); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); if (count($a_hostsconfig) > 0) { // Convert commands by components foreach ($a_hostsconfig as $data) { $a_components = getAllDatasFromTable('glpi_plugin_monitoring_components', "`plugin_monitoring_commands_id`='" . $data['plugin_monitoring_commands_id'] . "'"); if (count($a_components) > 0) { $a_component = current($a_components); $DB->query("UPDATE `" . $a_table['name'] . "`\n SET `plugin_monitoring_components_id`='" . $a_component['id'] . "'\n WHERE `id`='" . $data['id'] . "'"); } } } /* * Table glpi_plugin_monitoring_hosts */ $newTable = "glpi_plugin_monitoring_hosts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } if (TableExists($newTable)) { $a_hosts = getAllDatasFromTable($newTable, "`itemtype`='Computer'"); } // Duplicate field with event $migration->dropField($newTable, 'ouput'); $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); // Event should contain up to 4096 bytes (Nagios plugin specification) $migration->changeField($newTable, 'event', 'event', "varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'dependencies', 'dependencies', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'perf_data', 'perf_data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); // Duplicate field with event // $migration->changeField($newTable, // 'output', // 'output', // "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'latency', 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'execution_time', 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledged', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledgeconfirmed', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'acknowledge_comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'acknowledge_users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'event', "varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'dependencies', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'perf_data', "text COLLATE utf8_unicode_ci DEFAULT NULL"); // Duplicate field with event // $migration->addField($newTable, // 'output', // "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addKey($newTable, array('itemtype', 'items_id'), 'itemtype'); $migration->migrationOneTable($newTable); if (count($a_hosts) > 0) { // Convert commands by components foreach ($a_hosts as $data) { $a_computers = getAllDatasFromTable('glpi_computers', "`id`='" . $data['items_id'] . "'"); if (count($a_computers) > 0) { $a_computer = current($a_computers); $DB->query("UPDATE `" . $newTable . "`\n SET `entities_id`='" . $a_computer['entities_id'] . "'\n WHERE `id`='" . $data['id'] . "'"); } } } /* * Table glpi_plugin_monitoring_logs */ $newTable = "glpi_plugin_monitoring_logs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` bigint(30) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "bigint(30) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'date_mod', 'date_mod', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'user_name', 'user_name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'action', 'action', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'value', 'value', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'date_mod', "datetime DEFAULT NULL"); $migration->addField($newTable, 'user_name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'action', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'value', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_networkports */ $newTable = "glpi_plugin_monitoring_networkports"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_realms */ $newTable = "glpi_plugin_monitoring_realms"; $insertrealm = 0; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); $insertrealm = 1; } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'date_mod', 'date_mod', "datetime DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'date_mod', "datetime DEFAULT NULL"); $migration->migrationOneTable($newTable); if ($insertrealm == '1') { $query = "INSERT INTO `glpi_plugin_monitoring_realms`\n (`id` ,`name` ,`comment` ,`date_mod`) VALUES (NULL , 'All', NULL , NULL)"; $DB->query($query); } /* * Table glpi_plugin_monitoring_serviceevents */ $newTable = "glpi_plugin_monitoring_serviceevents"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` bigint(30) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } // Duplicate field with event $migration->dropField($newTable, 'ouput'); $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'id', 'id', "bigint(30) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'date', 'date', "datetime DEFAULT NULL"); // Event should contain up to 4096 bytes (Nagios plugin specification) $migration->changeField($newTable, 'event', 'event', "varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'perf_data', 'perf_data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); // Duplicate field with event // $migration->changeField($newTable, // 'output', // 'output', // "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'latency', 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'execution_time', 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'unavailability', 'unavailability', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'event', "varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'perf_data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); // Duplicate field with event // $migration->addField($newTable, // 'output', // "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'unavailability', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "plugin_monitoring_services_id"); $migration->addKey($newTable, array('plugin_monitoring_services_id', 'date'), "plugin_monitoring_services_id_2"); $migration->addKey($newTable, array('unavailability', 'state_type', 'plugin_monitoring_services_id'), "unavailability"); $migration->addKey($newTable, array('plugin_monitoring_services_id', 'id'), "plugin_monitoring_services_id_3"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_commands */ $newTable = "glpi_plugin_monitoring_commands"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'poller_tag', 'poller_tag', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'module_type', 'module_type', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->dropField($newTable, 'regex'); $migration->dropField($newTable, 'legend'); $migration->dropField($newTable, 'unit'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'poller_tag', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'module_type', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "name"); $migration->addKey($newTable, "command_name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_checks */ $newTable = "glpi_plugin_monitoring_checks"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'max_check_attempts', 'max_check_attempts', "int(2) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'check_interval', 'check_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'retry_interval', 'retry_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'max_check_attempts', "int(2) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'check_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'retry_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_businessrules */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_businessrules'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'plugin_monitoring_businessrulegroups_id' => array('type' => 'integer', 'value' => 0), 'plugin_monitoring_services_id' => array('type' => 'integer', 'value' => 0), 'is_dynamic' => array('type' => 'bool', 'value' => 0), 'is_generic' => array('type' => 'bool', 'value' => 0)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * glpi_plugin_monitoring_businessrules_components */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_businessrules_components'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'plugin_monitoring_businessrulegroups_id' => array('type' => 'integer', 'value' => 0), 'plugin_monitoring_componentscatalogs_components_id' => array('type' => 'integer', 'value' => 0)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_businessrulegroups */ $newTable = "glpi_plugin_monitoring_businessrulegroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_servicescatalogs_id', 'plugin_monitoring_servicescatalogs_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'operator', 'operator', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_servicescatalogs_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'operator', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_eventhandlers */ $newTable = "glpi_plugin_monitoring_eventhandlers"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "name"); $migration->addKey($newTable, "command_name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_notificationcommands */ $newTable = "glpi_plugin_monitoring_notificationcommands"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'reactionner_tag', 'reactionner_tag', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'module_type', 'module_type', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'reactionner_tag', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'module_type', "varchar(255) DEFAULT NULL"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contactgroups */ $newTable = "glpi_plugin_monitoring_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts_contactgroups */ $newTable = "glpi_plugin_monitoring_contacts_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_contacts_id', 'plugin_monitoring_contacts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id', 'plugin_monitoring_contactgroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_contacts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_contacts_id', 'plugin_monitoring_contactgroups_id'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_contactgroups_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contactgroups_contactgroups */ $newTable = "glpi_plugin_monitoring_contactgroups_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id_1', 'plugin_monitoring_contactgroups_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id_2', 'plugin_monitoring_contactgroups_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_contactgroups_id_1', 'plugin_monitoring_contactgroups_id_2'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_contactgroups_id_2"); $migration->migrationOneTable($newTable); /* * glpi_plugin_monitoring_profiles */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_profiles'; $a_table['oldname'] = array(); $a_table['fields'] = array('profiles_id' => array('type' => 'integer', 'value' => NULL), 'config' => array('type' => 'char', 'value' => NULL), 'config_views' => array('type' => 'char', 'value' => NULL), 'config_sliders' => array('type' => 'char', 'value' => NULL), 'config_services_catalogs' => array('type' => 'char', 'value' => NULL), 'config_components_catalogs' => array('type' => 'char', 'value' => NULL), 'config_weathermap' => array('type' => 'char', 'value' => NULL), 'dashboard' => array('type' => 'char', 'value' => NULL), 'dashboard_system_status' => array('type' => 'char', 'value' => NULL), 'dashboard_hosts_status' => array('type' => 'char', 'value' => NULL), 'dashboard_all_ressources' => array('type' => 'char', 'value' => NULL), 'dashboard_views' => array('type' => 'char', 'value' => NULL), 'dashboard_sliders' => array('type' => 'char', 'value' => NULL), 'dashboard_services_catalogs' => array('type' => 'char', 'value' => NULL), 'dashboard_components_catalogs' => array('type' => 'char', 'value' => NULL), 'dashboard_perfdatas' => array('type' => 'char', 'value' => NULL), 'homepage' => array('type' => 'char', 'value' => NULL), 'homepage_views' => array('type' => 'char', 'value' => NULL), 'homepage_services_catalogs' => array('type' => 'char', 'value' => NULL), 'homepage_components_catalogs' => array('type' => 'char', 'value' => NULL), 'homepage_system_status' => array('type' => 'char', 'value' => NULL), 'homepage_hosts_status' => array('type' => 'char', 'value' => NULL), 'homepage_perfdatas' => array('type' => 'char', 'value' => NULL), 'homepage_all_ressources' => array('type' => 'char', 'value' => NULL), 'acknowledge' => array('type' => 'char', 'value' => NULL), 'downtime' => array('type' => 'char', 'value' => NULL), 'counters' => array('type' => 'char', 'value' => NULL), 'restartshinken' => array('type' => 'char', 'value' => NULL), 'host_command' => array('type' => 'char', 'value' => NULL)); $a_table['oldfields'] = array('servicescatalog', 'view', 'componentscatalog', 'viewshomepage', 'weathermap', 'component', 'command', 'check', 'allressources'); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_servicedefs */ $newTable = "glpi_plugin_monitoring_servicedefs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'active_checks_enabled', 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'passive_checks_enabled', 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'remotesystem', 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_arguments', 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'alias_command', 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'aliasperfdata_commands_id', 'aliasperfdata_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'link', 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'aliasperfdata_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_sliders */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_sliders'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'name' => array('type' => 'string', 'value' => NULL), 'entities_id' => array('type' => 'integer', 'value' => NULL), 'is_recursive' => array('type' => 'bool', 'value' => NULL), 'is_active' => array('type' => 'bool', 'value' => NULL), 'users_id' => array('type' => 'integer', 'value' => NULL), 'in_central' => array('type' => 'bool', 'value' => NULL), 'is_frontview' => array('type' => 'bool', 'value' => NULL), 'comment' => array('type' => 'text', 'value' => NULL), 'duration' => array('type' => 'integer', 'value' => '2')); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_sliders_groups */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_sliders_groups'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'pluginmonitoringsliders_id' => array('type' => 'integer', 'value' => NULL), 'groups_id' => array('type' => 'integer', 'value' => NULL), 'entities_id' => array('type' => 'integer', 'value' => '-1'), 'is_recursive' => array('type' => 'bool', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(array('field' => 'pluginmonitoringsliders_id', 'name' => '', 'type' => 'INDEX'), array('field' => 'groups_id', 'name' => '', 'type' => 'INDEX'), array('field' => 'entities_id', 'name' => '', 'type' => 'INDEX'), array('field' => 'is_recursive', 'name' => '', 'type' => 'INDEX')); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_sliders_users */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_sliders_users'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'pluginmonitoringsliders_id' => array('type' => 'integer', 'value' => NULL), 'users_id' => array('type' => 'integer', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(array('field' => 'pluginmonitoringsliders_id', 'name' => '', 'type' => 'INDEX'), array('field' => 'users_id', 'name' => '', 'type' => 'INDEX')); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_sliders_items */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_sliders_items'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'plugin_monitoring_sliders_id' => array('type' => 'integer', 'value' => NULL), 'items_id' => array('type' => 'integer', 'value' => NULL), 'itemtype' => array('type' => 'varchar(100) DEFAULT NULL', 'value' => NULL), 'extra_infos' => array('type' => 'string', 'value' => NULL), 'is_minemap' => array('type' => 'bool', 'value' => NULL)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(array('field' => 'plugin_monitoring_sliders_id', 'name' => '', 'type' => 'INDEX')); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_unavaibilities */ $newTable = "glpi_plugin_monitoring_unavailabilities"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'begin_date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'end_date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'duration', "int(15) NOT NULL DEFAULT '0'"); // Scheduled unavailability $migration->addField($newTable, 'scheduled', "tinyint(1) NOT NULL DEFAULT '0'"); // Unavailability details $migration->addField($newTable, 'details', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "plugin_monitoring_services_id"); $migration->migrationOneTable($newTable); } /* $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); if (!FieldExists($newTable, "plugin_monitoring_services_id")) { $migration->changeField($newTable, 'items_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); } $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'begin_date', 'begin_date', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'end_date', 'end_date', "datetime DEFAULT NULL"); $migration->dropField($newTable, 'itemtype'); $migration->migrationOneTable($newTable); */ /* * glpi_plugin_monitoring_unavailabilitystates */ $a_table = array(); $a_table['name'] = 'glpi_plugin_monitoring_unavailabilitystates'; $a_table['oldname'] = array(); $a_table['fields'] = array('id' => array('type' => 'autoincrement', 'value' => ''), 'plugin_monitoring_services_id' => array('type' => 'integer', 'value' => 0), 'plugin_monitoring_serviceevents_id' => array('type' => 'integer', 'value' => 0)); $a_table['oldfields'] = array(); $a_table['renamefields'] = array(); $a_table['keys'] = array(); $a_table['oldkeys'] = array(); migrateTablesMonitoring($migration, $a_table); /* * Table glpi_plugin_monitoring_weathermaps */ $newTable = "glpi_plugin_monitoring_weathermaps"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'width', 'width', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'height', 'height', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'background', 'background', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'width', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'height', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'background', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_weathermapnodes */ $newTable = "glpi_plugin_monitoring_weathermapnodes"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_weathermaps_id', 'plugin_monitoring_weathermaps_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'x', 'x', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'y', 'y', "smallint(6) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_weathermaps_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'x', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'y', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'position', "varchar(255) COLLATE utf8_unicode_ci DEFAULT 'middle'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_weathermaplinks */ $newTable = "glpi_plugin_monitoring_weathermaplinks"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_weathermapnodes_id_1', 'plugin_monitoring_weathermapnodes_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_weathermapnodes_id_2', 'plugin_monitoring_weathermapnodes_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'bandwidth_in', 'bandwidth_in', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'bandwidth_out', 'bandwidth_out', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_weathermapnodes_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_weathermapnodes_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'bandwidth_in', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'bandwidth_out', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_shinkenwebservices */ $newTable = "glpi_plugin_monitoring_shinkenwebservices"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'url', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'action', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'cnt', "tinyint(2) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'fields_string', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_tags */ $newTable = "glpi_plugin_monitoring_tags"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'ip', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'iplock', "bool"); $migration->addField($newTable, 'username', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'password', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'port', "varchar(255) COLLATE utf8_unicode_ci DEFAULT '7760'"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_downtimes */ $newTable = "glpi_plugin_monitoring_downtimes"; if (!TableExists($newTable)) { $query = "CREATE TABLE `{$newTable}` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `plugin_monitoring_hosts_id` int(11) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`),\n KEY `plugin_monitoring_hosts_id` (`plugin_monitoring_hosts_id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $DB->query($query); } $migration->addField($newTable, 'start_time', "datetime NOT NULL DEFAULT '2014-01-01 00:00:00'"); $migration->addField($newTable, 'end_time', "datetime NOT NULL DEFAULT '2014-01-01 00:00:00'"); $migration->addField($newTable, 'flexible', "tinyint(1) DEFAULT '1'"); $migration->addField($newTable, 'duration', "int(1) DEFAULT '24'"); $migration->addField($newTable, 'duration_type', "varchar(64) DEFAULT 'days'"); $migration->addField($newTable, 'comment', "varchar(1024) DEFAULT NULL"); $migration->addField($newTable, 'users_id', "int(11) DEFAULT '-1'"); $migration->addField($newTable, 'tickets_id', "int(11) DEFAULT '0'"); $migration->addField($newTable, 'services', "tinyint(1) DEFAULT '0'"); $migration->addField($newTable, 'notified', "tinyint(1) DEFAULT '0'"); $migration->addField($newTable, 'expired', "tinyint(1) DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'flexible', 'flexible', "tinyint(1) DEFAULT '0'"); $migration->changeField($newTable, 'notified', 'notified', "tinyint(1) DEFAULT '0'"); $migration->changeField($newTable, 'expired', 'expired', "tinyint(1) DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_acknowledges */ $newTable = "glpi_plugin_monitoring_acknowledges"; if (!TableExists($newTable)) { $query = "CREATE TABLE `{$newTable}` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `itemtype` varchar(100) DEFAULT 'Host',\n `items_id` int(11) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`),\n KEY `itemtype` (`itemtype`,`items_id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $DB->query($query); } $migration->addField($newTable, 'start_time', "datetime NOT NULL DEFAULT '2014-01-01 00:00:00'"); $migration->addField($newTable, 'end_time', "datetime NOT NULL DEFAULT '2014-01-01 00:00:00'"); $migration->addField($newTable, 'sticky', "tinyint(1) DEFAULT '1'"); $migration->addField($newTable, 'persistent', "tinyint(1) DEFAULT '1'"); $migration->addField($newTable, 'notify', "tinyint(1) DEFAULT '1'"); $migration->addField($newTable, 'comment', "varchar(1024) DEFAULT NULL"); $migration->addField($newTable, 'users_id', "int(11) DEFAULT '-1'"); $migration->addField($newTable, 'notified', "tinyint(1) DEFAULT '0'"); $migration->addField($newTable, 'expired', "tinyint(1) DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'expired', 'expired', "tinyint(1) DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostcounters */ $newTable = "glpi_plugin_monitoring_hostcounters"; if (!TableExists($newTable)) { $query = "CREATE TABLE `{$newTable}` (\n `id` INT(11) NOT NULL AUTO_INCREMENT,\n `hostname` VARCHAR(255) DEFAULT NULL,\n PRIMARY KEY (`id`),\n KEY `hostname` (`hostname`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $DB->query($query); } $migration->addField($newTable, 'date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'counter', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'value', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'updated', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('hostname', 'date', 'updated'), 'updated'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostdailycounters */ $newTable = "glpi_plugin_monitoring_hostdailycounters"; if (!TableExists($newTable)) { $query = "CREATE TABLE `{$newTable}` (\n `id` INT(11) NOT NULL AUTO_INCREMENT,\n `hostname` VARCHAR(255) NOT NULL DEFAULT '',\n `day` DATE NOT NULL DEFAULT '2013-01-01',\n `dayname` varchar(16) NOT NULL DEFAULT '',\n PRIMARY KEY (`id`),\n KEY (`hostname`,`day`),\n KEY (`hostname`,`dayname`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; $DB->query($query); } /* $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_services_id2', "int(11) NOT NULL DEFAULT '0'"); */ $migration->addField($newTable, 'counters', "varchar(4096) NOT NULL DEFAULT ''"); $migration->dropField($newTable, 'plugin_monitoring_services_id'); $migration->dropField($newTable, 'plugin_monitoring_services_id2'); $migration->addField($newTable, 'dayname', "varchar(16) NOT NULL DEFAULT ''"); $migration->addField($newTable, 'cPaperChanged', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPrinterChanged', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cBinEmptied', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPagesInitial', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPagesTotal', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPagesToday', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPagesRemaining', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cRetractedInitial', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cRetractedTotal', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cRetractedToday', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cRetractedRemaining', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cPaperLoad', "int(11) NOT NULL DEFAULT '0'"); $migration->dropField($newTable, 'cCardsInsertedOk'); $migration->dropField($newTable, 'cCardsInsertedKo'); $migration->dropField($newTable, 'cCardsRemoved'); $migration->addField($newTable, 'cCardsInsertedOkToday', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cCardsInsertedOkTotal', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cCardsInsertedKoToday', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cCardsInsertedKoTotal', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cCardsRemovedToday', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'cCardsRemovedTotal', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table Delete old table not used */ if (TableExists("glpi_plugin_monitoring_servicesuggests")) { $DB->query("DROP TABLE `glpi_plugin_monitoring_servicesuggests`"); } if (TableExists("glpi_plugin_monitoring_servicegraphs")) { $DB->query("DROP TABLE `glpi_plugin_monitoring_servicegraphs`"); } if (TableExists("glpi_plugin_monitoring_securities")) { $DB->query("DROP TABLE `glpi_plugin_monitoring_securities`"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/templates')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/templates"); } // Update calendars $query = "SELECT * FROM `glpi_calendars`\n WHERE `name`='24x7'\n LIMIT 1"; $result = $DB->query($query); if ($DB->numrows($result) == 0) { $calendar = new Calendar(); $input = array(); $input['name'] = '24x7'; $input['is_recursive'] = 1; $calendars_id = $calendar->add($input); $calendarSegment = new CalendarSegment(); $input = array(); $input['calendars_id'] = $calendars_id; $input['is_recursive'] = 1; $input['begin'] = '00:00:00'; $input['end'] = '24:00:00'; $input['day'] = '0'; $calendarSegment->add($input); $input['day'] = '1'; $calendarSegment->add($input); $input['day'] = '2'; $calendarSegment->add($input); $input['day'] = '3'; $calendarSegment->add($input); $input['day'] = '4'; $calendarSegment->add($input); $input['day'] = '5'; $calendarSegment->add($input); $input['day'] = '6'; $calendarSegment->add($input); } // Update crontasks $crontask = new CronTask(); if (!$crontask->getFromDBbyName('PluginMonitoringDowntime', 'DowntimesExpired')) { CronTask::Register('PluginMonitoringDowntime', 'DowntimesExpired', '3600', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringLog', 'cleanlogs')) { CronTask::Register('PluginMonitoringLog', 'cleanlogs', '96400', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringUnavailability', 'unavailability')) { CronTask::Register('PluginMonitoringUnavailability', 'Unavailability', '300', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringDisplayview_rule', 'replayallviewrules')) { CronTask::Register('PluginMonitoringDisplayview_rule', 'replayallviewrules', '1200', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if ($crontask->getFromDBbyName('PluginMonitoringUnavaibility', 'unavaibility')) { $crontask->getFromDBbyName('PluginMonitoringUnavaibility', 'unavaibility'); $crontask->delete($crontask->fields); } if ($crontask->getFromDBbyName('PluginMonitoringServiceevent', 'updaterrd')) { $crontask->getFromDBbyName('PluginMonitoringServiceevent', 'updaterrd'); $crontask->delete($crontask->fields); } if ($crontask->getFromDBbyName('PluginMonitoringHostdailycounter', 'DailyCounters')) { $crontask->getFromDBbyName('PluginMonitoringHostdailycounter', 'DailyCounters'); $crontask->delete($crontask->fields); } include GLPI_ROOT . "/plugins/monitoring/inc/command.class.php"; $pmCommand = new PluginMonitoringCommand(); $a_list = $pmCommand->find(); $check_dummy_found = false; $restart_shinken_found = false; $host_action_found = false; foreach ($a_list as $data) { if ($data['command_name'] == "check_dummy") { $check_dummy_found = true; } if ($data['command_name'] == "restart_shinken") { $restart_shinken_found = true; } if ($data['command_name'] == "host_action") { $host_action_found = true; } } if (!$host_action_found) { // Host action command $pmCommand = new PluginMonitoringCommand(); $input = array(); $input['name'] = "Host action"; $input['command_name'] = "host_action"; $input['command_line'] = $DB->escape("host_action"); $pmCommand->add($input); } if (!$restart_shinken_found) { // Restart shinken command $pmCommand = new PluginMonitoringCommand(); $input = array(); $input['name'] = "Restart Shinken"; $input['command_name'] = "restart_shinken"; $input['command_line'] = $DB->escape("nohup sh -c '/usr/local/shinken/bin/stop_arbiter.sh && sleep 3 && /usr/local/shinken/bin/launch_arbiter.sh' > /dev/null 2>&1 &"); $pmCommand->add($input); } if (!$check_dummy_found) { // Check dummy command $pmCommand = new PluginMonitoringCommand(); $input = array(); $input['name'] = "Dummy check"; $input['command_name'] = "check_dummy"; $input['command_line'] = $DB->escape("\$PLUGINSDIR\$/check_dummy \$ARG1\$ \"\$ARG2\$\""); $arg = array(); $arg['ARG1'] = 'INTEGER: dummy status code'; $arg['ARG2'] = 'TEXT: dummy status output text'; $input['arguments'] = exportArrayToDB($arg); $pmCommand->add($input); } /* * Clean services not having hosts */ $query = "SELECT `glpi_plugin_monitoring_services`.* FROM `glpi_plugin_monitoring_services`\n LEFT JOIN `glpi_plugin_monitoring_componentscatalogs_hosts`\n ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`id` = `plugin_monitoring_componentscatalogs_hosts_id`\n WHERE `is_static` IS NULL"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $queryd = "DELETE FROM `glpi_plugin_monitoring_services`\n WHERE `id`='" . $data['id'] . "'"; $DB->query($queryd); } /* * Clean components catalog not having hosts */ $query = "SELECT `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`\n FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n LEFT JOIN `glpi_computers`\n ON (`glpi_plugin_monitoring_componentscatalogs_hosts`.`items_id` = `glpi_computers`.`id`)\n WHERE (`glpi_computers`.`name` IS NULL);"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $queryd = "DELETE FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `id`='" . $data['id'] . "'"; $DB->query($queryd); } /* * Clean services not having valide component */ $query = "SELECT `glpi_plugin_monitoring_services`.`id`\n FROM `glpi_plugin_monitoring_services`\n LEFT JOIN `glpi_plugin_monitoring_components`\n ON (`plugin_monitoring_components_id` = `glpi_plugin_monitoring_components`.`id`)\n WHERE (`glpi_plugin_monitoring_components`.`id` IS NULL);"; $result = $DB->query($query); include GLPI_ROOT . "/plugins/monitoring/inc/service.class.php"; $pmService = new PluginMonitoringService(); while ($data = $DB->fetch_array($result)) { $pmService->delete($data); } // Update hosts config include GLPI_ROOT . "/plugins/monitoring/inc/hostconfig.class.php"; $pmHostconfig = new PluginMonitoringHostconfig(); $pmHostconfig->initConfig(); // Verify hosts include GLPI_ROOT . "/plugins/monitoring/inc/host.class.php"; $pmHost = new PluginMonitoringHost(); $pmHost->verifyHosts(); if ($insertrealm == '1') { // Insert into hostconfigs $query = "UPDATE `glpi_plugin_monitoring_hostconfigs`\n SET `plugin_monitoring_realms_id` = '1'\n WHERE `items_id` = '0'\n AND `itemtype` = 'Entity'"; $DB->query($query); } include GLPI_ROOT . "/plugins/monitoring/inc/config.class.php"; $pmConfig = new PluginMonitoringConfig(); $pmConfig->initConfig(); // Add user monitoring if not defined if (!countElementsInTable('glpi_users', "`name`='monitoring'")) { // Create $input = array('name' => 'monitoring'); $user = new User(); $user->add($input); } // Update items of views to be compatible with step of 10px instead 1 px $query = "SELECT *\n FROM `glpi_plugin_monitoring_displayviews_items`"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $x = 10 * round($data['x'] / 10); $y = 10 * round($data['y'] / 10); $DB->query("UPDATE `glpi_plugin_monitoring_displayviews_items` " . "SET `x`='" . $x . "', `y`='" . $y . "' " . "WHERE `id`='" . $data['id'] . "'"); } // Udpate componentcatalog_rules with new search engine (0.85) $query = "SELECT *\n FROM `glpi_plugin_monitoring_componentscatalogs_rules`"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $data_array = importArrayFromDB($data['condition']); if (!isset($data_array['searchtype'])) { continue; } $criteria = array(); foreach ($data_array['field'] as $num => $value) { $criteria[$num]['field'] = $value; } unset($data_array['field']); foreach ($data_array['searchtype'] as $num => $value) { $criteria[$num]['searchtype'] = $value; } unset($data_array['searchtype']); foreach ($data_array['contains'] as $num => $value) { $criteria[$num]['value'] = $value; } unset($data_array['contains']); if (isset($data_array['link'])) { foreach ($data_array['link'] as $num => $value) { $criteria[$num]['link'] = $value; } unset($data_array['link']); } $data_array['criteria'] = $criteria; unset($data_array['_glpi_csrf_token']); $DB->query("UPDATE `glpi_plugin_monitoring_componentscatalogs_rules` " . "SET `condition`='" . exportArrayToDB($data_array) . "' " . "WHERE `id`='" . $data['id'] . "'"); } // * Update unavailability (with table glpi_plugin_monitoring_unavailabilitystates) // include (GLPI_ROOT . "/plugins/monitoring/inc/unavailabilitystate.class.php"); // $pmUnavailabilityState = new PluginMonitoringUnavailabilityState(); // $query = "SELECT * FROM `glpi_plugin_monitoring_services`"; // $result = $DB->query($query); // while ($data=$DB->fetch_array($result)) { // if ($pmUnavailabilityState->getLastID($data['id']) == 0) { // $query2 = "SELECT id FROM `glpi_plugin_monitoring_serviceevents` // WHERE `plugin_monitoring_services_id`='".$data['id']."' // AND `unavailability`='1' // ORDER BY id DESC // LIMIT 1"; // $result2 = $DB->query($query2); // while ($data2=$DB->fetch_array($result2)) { // $pmUnavailabilityState->setLastID($data['id'], $data2['id']); // } // } // } $query = "UPDATE `glpi_plugin_monitoring_configs`\n SET `version`='" . PLUGIN_MONITORING_VERSION . "'\n WHERE `id`='1'"; $DB->query($query); }
/** * Get host name for a service */ function getHostName() { $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $pmConfig = new PluginMonitoringConfig(); $pmConfig->getFromDB(1); $pmComponentscatalog_Host->getFromDB($this->fields['plugin_monitoring_componentscatalogs_hosts_id']); $itemtype = $pmComponentscatalog_Host->fields['itemtype']; $item = new $itemtype(); if ($item->getFromDB($pmComponentscatalog_Host->fields['items_id'])) { if ($pmConfig->fields['append_id_hostname'] == 1) { return $item->fields['name'] . "-" . $item->fields['id']; } return $item->fields['name']; } return ''; }
function pluginMonitoringUninstall() { global $DB; if (file_exists(GLPI_PLUGIN_DOC_DIR . '/monitoring')) { require_once GLPI_ROOT . "/plugins/monitoring/inc/config.class.php"; $pmConfig = new PluginMonitoringConfig(); $pmConfig->rrmdir(GLPI_PLUGIN_DOC_DIR . '/monitoring'); } $query = "SHOW TABLES;"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { if (strstr($data[0], "glpi_plugin_monitoring_")) { $query_delete = "DROP TABLE `" . $data[0] . "`;"; $DB->query($query_delete) or die($DB->error()); } } return true; }
/** * Log when extra-debug is activated */ static function logIfExtradebug($file, $message) { $config = new PluginMonitoringConfig(); $config->getFromDB(1); if ($config->fields['extradebug']) { if (is_array($message)) { $message = print_r($message, TRUE); } Toolbox::logInFile($file, $message); } }
function pluginMonitoringUpdate($current_version, $migrationname = 'Migration') { global $DB; $migration = new $migrationname($current_version); if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/templates')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/templates"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/weathermapbg')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/weathermapbg"); } $unavaibility_recalculate = 0; if (!TableExists("glpi_plugin_monitoring_unavaibilities") || !FieldExists("glpi_plugin_monitoring_unavaibilities", "duration")) { $unavaibility_recalculate = 1; } /* * Table glpi_plugin_monitoring_servicescatalogs */ $newTable = "glpi_plugin_monitoring_servicescatalogs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledged', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledgeconfirmed', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'acknowledge_comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'acknowledge_users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs */ $newTable = "glpi_plugin_monitoring_componentscatalogs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'notification_interval', 'notification_interval', "int(4) NOT NULL DEFAULT '30'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'notification_interval', "int(4) NOT NULL DEFAULT '30'"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_components */ $newTable = "glpi_plugin_monitoring_components"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'active_checks_enabled', 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'passive_checks_enabled', 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'remotesystem', 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_arguments', 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'alias_command', 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'graph_template', 'graph_template', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'link', 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_weathermap', 'is_weathermap', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'weathermap_regex', 'weathermap_regex_in', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfname', 'perfname', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfnameinvert', 'perfnameinvert', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'perfnamecolor', 'perfnamecolor', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'graph_template', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_weathermap', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'weathermap_regex_in', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'weathermap_regex_out', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfname', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfnameinvert', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'perfnamecolor', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_eventhandlers_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "plugin_monitoring_commands_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_components */ $newTable = "glpi_plugin_monitoring_componentscatalogs_components"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_components_id', 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_componentscalalog_id', 'plugin_monitoring_components_id'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_componentscalalog_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_hosts */ $newTable = "glpi_plugin_monitoring_componentscatalogs_hosts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_static', 'is_static', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_static', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addKey($newTable, array('itemtype', 'items_id'), 'itemtype'); $migration->addKey($newTable, 'plugin_monitoring_componentscalalog_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_componentscatalogs_rules */ $newTable = "glpi_plugin_monitoring_componentscatalogs_rules"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_componentscalalog_id', 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'condition', 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->dropField($newTable, 'entities_id'); $migration->dropField($newTable, 'is_recursive'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_componentscalalog_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, 'plugin_monitoring_componentscalalog_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_services */ $newTable = "glpi_plugin_monitoring_services"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_components_id', 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_componentscatalogs_hosts_id', 'plugin_monitoring_componentscatalogs_hosts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'event', 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->dropField($newTable, 'alias_command'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_components_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_componentscatalogs_hosts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledged', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_acknowledgeconfirmed', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'acknowledge_comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'acknowledge_users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('state', 'state_type'), 'state'); $migration->addKey($newTable, 'plugin_monitoring_componentscatalogs_hosts_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_servicegraphs */ $newTable = "glpi_plugin_monitoring_servicegraphs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` bigint(30) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "bigint(30) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'date', 'date', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'data', 'data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'type', 'type', "varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'type', "varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addKey($newTable, array('plugin_monitoring_services_id', 'type'), 'plugin_monitoring_services_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacttemplates */ $newTable = "glpi_plugin_monitoring_contacttemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_default', 'is_default', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notifications_enabled', 'host_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notifications_enabled', 'service_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_period', 'service_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_period', 'host_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_options_w', 'service_notification_options_w', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_u', 'service_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_c', 'service_notification_options_c', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_r', 'service_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'service_notification_options_f', 'service_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_options_n', 'service_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_d', 'host_notification_options_d', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_u', 'host_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_r', 'host_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'host_notification_options_f', 'host_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_s', 'host_notification_options_s', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_options_n', 'host_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'service_notification_commands', 'service_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'host_notification_commands', 'host_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_default', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notifications_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_period', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_options_w', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_c', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'service_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_d', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_u', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_r', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'host_notification_options_f', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_s', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_options_n', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'service_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'host_notification_commands', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts */ $newTable = "glpi_plugin_monitoring_contacts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contacttemplates_id', 'plugin_monitoring_contacttemplates_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contacttemplates_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts_items */ $newTable = "glpi_plugin_monitoring_contacts_items"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'groups_id', 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_commandtemplates */ $newTable = "glpi_plugin_monitoring_commandtemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'key', 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_rrdtooltemplates */ $newTable = "glpi_plugin_monitoring_rrdtooltemplates"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'key', 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'key', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_configs */ $newTable = "glpi_plugin_monitoring_configs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'timezones', 'timezones', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '[\"0\"]'"); $migration->changeField($newTable, 'version', 'version', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'logretention', 'logretention', "int(5) NOT NULL DEFAULT '30'"); $migration->dropField($newTable, 'phppath'); $migration->dropField($newTable, 'rrdtoolpath'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'timezones', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '[\"0\"]'"); $migration->addField($newTable, 'version', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'logretention', "int(5) NOT NULL DEFAULT '30'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews */ $newTable = "glpi_plugin_monitoring_displayviews"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_recursive', 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'users_id', 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'counter', 'counter', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'in_central', 'in_central', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'width', 'width', "int(5) NOT NULL DEFAULT '950'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'counter', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'in_central', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'width', "int(5) NOT NULL DEFAULT '950'"); $migration->addField($newTable, 'is_frontview', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_groups */ $newTable = "glpi_plugin_monitoring_displayviews_groups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'pluginmonitoringdisplayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'groups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'is_recursive', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "pluginmonitoringdisplayviews_id"); $migration->addKey($newTable, "groups_id"); $migration->addKey($newTable, "entities_id"); $migration->addKey($newTable, "is_recursive"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_users */ $newTable = "glpi_plugin_monitoring_displayviews_users"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'pluginmonitoringdisplayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'users_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "pluginmonitoringdisplayviews_id"); $migration->addKey($newTable, "users_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_items */ $newTable = "glpi_plugin_monitoring_displayviews_items"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_displayviews_id', 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'x', 'x', "int(5) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'y', 'y', "int(5) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'extra_infos', 'extra_infos', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'x', "int(5) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'y', "int(5) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'extra_infos', "varchar(255) DEFAULT NULL"); $migration->addKey($newTable, "plugin_monitoring_displayviews_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_displayviews_rules */ $newTable = "glpi_plugin_monitoring_displayviews_rules"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_displayviews_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'condition', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, 'plugin_monitoring_displayviews_id'); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_entities */ $newTable = "glpi_plugin_monitoring_entities"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'entities_id', 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'tag', 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'entities_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addKey($newTable, "entities_id"); $migration->addKey($newTable, "tag"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostaddresses */ $newTable = "glpi_plugin_monitoring_hostaddresses"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'ipaddresses_id', 'ipaddresses_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'ipaddresses_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hostconfigs */ $newTable = "glpi_plugin_monitoring_hostconfigs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_realms_id', 'plugin_monitoring_realms_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'computers_id', 'computers_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_realms_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'computers_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_hosts */ $newTable = "glpi_plugin_monitoring_hosts"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'event', 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'last_check', 'last_check', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'dependencies', 'dependencies', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'last_check', "datetime DEFAULT NULL"); $migration->addField($newTable, 'dependencies', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_logs */ $newTable = "glpi_plugin_monitoring_logs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` bigint(30) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "bigint(30) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'date_mod', 'date_mod', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'user_name', 'user_name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'action', 'action', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'value', 'value', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'date_mod', "datetime DEFAULT NULL"); $migration->addField($newTable, 'user_name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'action', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'value', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_networkports */ $newTable = "glpi_plugin_monitoring_networkports"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'networkports_id', 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'networkports_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_realms */ $newTable = "glpi_plugin_monitoring_realms"; $insertrealm = 0; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); $insertrealm = 1; } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'comment', 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'date_mod', 'date_mod', "datetime DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'comment', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'date_mod', "datetime DEFAULT NULL"); $migration->migrationOneTable($newTable); if ($insertrealm == '1') { $query = "INSERT INTO `glpi_plugin_monitoring_realms` \n (`id` ,`name` ,`comment` ,`date_mod`) VALUES (NULL , 'All', NULL , NULL)"; $DB->query($query); } /* * Table glpi_plugin_monitoring_serviceevents */ $newTable = "glpi_plugin_monitoring_serviceevents"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` bigint(30) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "bigint(30) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'date', 'date', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'event', 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'perf_data', 'perf_data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'output', 'output', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'state', 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'state_type', 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'latency', 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'execution_time', 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'unavailability', 'unavailability', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'event', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'perf_data', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'output', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'state', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'state_type', "varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'latency', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'execution_time', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'unavailability', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, "plugin_monitoring_services_id"); $migration->addKey($newTable, array('plugin_monitoring_services_id', 'date'), "plugin_monitoring_services_id_2"); $migration->addKey($newTable, array('unavailability', 'state_type', 'plugin_monitoring_services_id'), "unavailability"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_commands */ $newTable = "glpi_plugin_monitoring_commands"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'poller_tag', 'poller_tag', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'module_type', 'module_type', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->dropField($newTable, 'regex'); $migration->dropField($newTable, 'legend'); $migration->dropField($newTable, 'unit'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'poller_tag', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'module_type', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "name"); $migration->addKey($newTable, "command_name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_checks */ $newTable = "glpi_plugin_monitoring_checks"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'max_check_attempts', 'max_check_attempts', "int(2) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'check_interval', 'check_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'retry_interval', 'retry_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'max_check_attempts', "int(2) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'check_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'retry_interval', "int(5) NOT NULL DEFAULT '1'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_businessrules */ $newTable = "glpi_plugin_monitoring_businessrules"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_businessrulegroups_id', 'plugin_monitoring_businessrulegroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_businessrulegroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_businessrulegroups */ $newTable = "glpi_plugin_monitoring_businessrulegroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_servicescatalogs_id', 'plugin_monitoring_servicescatalogs_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'operator', 'operator', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_servicescatalogs_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'operator', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_eventhandlers */ $newTable = "glpi_plugin_monitoring_eventhandlers"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "name"); $migration->addKey($newTable, "command_name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_notificationcommands */ $newTable = "glpi_plugin_monitoring_notificationcommands"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'is_active', 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_name', 'command_name', "varchar(255) DEFAULT NULL"); $migration->changeField($newTable, 'command_line', 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'is_active', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_name', "varchar(255) DEFAULT NULL"); $migration->addField($newTable, 'command_line', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addKey($newTable, "name"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contactgroups */ $newTable = "glpi_plugin_monitoring_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contacts_contactgroups */ $newTable = "glpi_plugin_monitoring_contacts_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_contacts_id', 'plugin_monitoring_contacts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id', 'plugin_monitoring_contactgroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_contacts_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_contacts_id', 'plugin_monitoring_contactgroups_id'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_contactgroups_id"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_contactgroups_contactgroups */ $newTable = "glpi_plugin_monitoring_contactgroups_contactgroups"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id_1', 'plugin_monitoring_contactgroups_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_contactgroups_id_2', 'plugin_monitoring_contactgroups_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_contactgroups_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->addKey($newTable, array('plugin_monitoring_contactgroups_id_1', 'plugin_monitoring_contactgroups_id_2'), "unicity", "UNIQUE"); $migration->addKey($newTable, "plugin_monitoring_contactgroups_id_2"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_profiles */ $newTable = "glpi_plugin_monitoring_profiles"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `profiles_id` int(11) NOT NULL DEFAULT '0'\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'profiles_id', 'profiles_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'dashboard', 'dashboard', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'servicescatalog', 'servicescatalog', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'view', 'view', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'componentscatalog', 'componentscatalog', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'viewshomepage', 'viewshomepage', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'weathermap', 'weathermap', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'component', 'component', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'command', 'command', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'config', 'config', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'check', 'check', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'profiles_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'dashboard', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'servicescatalog', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'view', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'componentscatalog', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'viewshomepage', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'weathermap', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'component', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'command', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'config', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'check', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'allressources', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'restartshinken', "char(1) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_servicedefs */ $newTable = "glpi_plugin_monitoring_servicedefs"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_commands_id', 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'arguments', 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'plugin_monitoring_checks_id', 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'active_checks_enabled', 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'passive_checks_enabled', 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->changeField($newTable, 'calendars_id', 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'remotesystem', 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'is_arguments', 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'alias_command', 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->changeField($newTable, 'aliasperfdata_commands_id', 'aliasperfdata_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'link', 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'arguments', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'plugin_monitoring_checks_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'active_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'passive_checks_enabled', "tinyint(1) NOT NULL DEFAULT '1'"); $migration->addField($newTable, 'calendars_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'remotesystem', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'is_arguments', "tinyint(1) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'alias_command', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->addField($newTable, 'aliasperfdata_commands_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'link', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_unavaibilities */ $newTable = "glpi_plugin_monitoring_unavaibilities"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); if (!FieldExists($newTable, "plugin_monitoring_services_id")) { $migration->changeField($newTable, 'items_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); } $migration->migrationOneTable($newTable); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'begin_date', 'begin_date', "datetime DEFAULT NULL"); $migration->changeField($newTable, 'end_date', 'end_date', "datetime DEFAULT NULL"); $migration->dropField($newTable, 'itemtype'); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'begin_date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'end_date', "datetime DEFAULT NULL"); $migration->addField($newTable, 'duration', "int(15) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_weathermaps */ $newTable = "glpi_plugin_monitoring_weathermaps"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'width', 'width', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'height', 'height', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'background', 'background', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'width', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'height', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'background', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_weathermapnodes */ $newTable = "glpi_plugin_monitoring_weathermapnodes"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'name', 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'plugin_monitoring_weathermaps_id', 'plugin_monitoring_weathermaps_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'items_id', 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'itemtype', 'itemtype', "varchar(100) DEFAULT NULL"); $migration->changeField($newTable, 'x', 'x', "smallint(6) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'y', 'y', "smallint(6) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'name', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'plugin_monitoring_weathermaps_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'items_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'itemtype', "varchar(100) DEFAULT NULL"); $migration->addField($newTable, 'x', "smallint(6) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'y', "smallint(6) NOT NULL DEFAULT '0'"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_weathermaplinks */ $newTable = "glpi_plugin_monitoring_weathermaplinks"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->changeField($newTable, 'id', 'id', "int(11) NOT NULL AUTO_INCREMENT"); $migration->changeField($newTable, 'plugin_monitoring_weathermapnodes_id_1', 'plugin_monitoring_weathermapnodes_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_weathermapnodes_id_2', 'plugin_monitoring_weathermapnodes_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'plugin_monitoring_services_id', 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->changeField($newTable, 'bandwidth_in', 'bandwidth_in', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->changeField($newTable, 'bandwidth_out', 'bandwidth_out', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); $migration->addField($newTable, 'plugin_monitoring_weathermapnodes_id_1', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_weathermapnodes_id_2', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'plugin_monitoring_services_id', "int(11) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'bandwidth_in', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'bandwidth_out', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_shinkenwebservices */ $newTable = "glpi_plugin_monitoring_shinkenwebservices"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'url', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'action', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'cnt', "tinyint(2) NOT NULL DEFAULT '0'"); $migration->addField($newTable, 'fields_string', "text DEFAULT NULL COLLATE utf8_unicode_ci"); $migration->migrationOneTable($newTable); /* * Table glpi_plugin_monitoring_tags */ $newTable = "glpi_plugin_monitoring_tags"; if (!TableExists($newTable)) { $query = "CREATE TABLE `" . $newTable . "` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $DB->query($query); } $migration->addField($newTable, 'tag', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'ip', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'username', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->addField($newTable, 'password', "varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL"); $migration->migrationOneTable($newTable); /* * Table Delete old table not used */ if (TableExists("glpi_plugin_monitoring_servicesuggests")) { $DB->query("DROP TABLE `glpi_plugin_monitoring_servicesuggests`"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring"); } if (!is_dir(GLPI_PLUGIN_DOC_DIR . '/monitoring/templates')) { mkdir(GLPI_PLUGIN_DOC_DIR . "/monitoring/templates"); } $query = "SELECT * FROM `glpi_calendars`\n WHERE `name`='24x7'\n LIMIT 1"; $result = $DB->query($query); if ($DB->numrows($result) == 0) { $calendar = new Calendar(); $input = array(); $input['name'] = '24x7'; $input['is_recursive'] = 1; $calendars_id = $calendar->add($input); $calendarSegment = new CalendarSegment(); $input = array(); $input['calendars_id'] = $calendars_id; $input['is_recursive'] = 1; $input['begin'] = '00:00:00'; $input['end'] = '24:00:00'; $input['day'] = '0'; $calendarSegment->add($input); $input['day'] = '1'; $calendarSegment->add($input); $input['day'] = '2'; $calendarSegment->add($input); $input['day'] = '3'; $calendarSegment->add($input); $input['day'] = '4'; $calendarSegment->add($input); $input['day'] = '5'; $calendarSegment->add($input); $input['day'] = '6'; $calendarSegment->add($input); } $crontask = new CronTask(); if (!$crontask->getFromDBbyName('PluginMonitoringServiceevent', 'updaterrd')) { CronTask::Register('PluginMonitoringServiceevent', 'updaterrd', '300', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringLog', 'cleanlogs')) { CronTask::Register('PluginMonitoringLog', 'cleanlogs', '96400', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringUnavaibility', 'unavaibility')) { CronTask::Register('PluginMonitoringUnavaibility', 'unavaibility', '300', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } if (!$crontask->getFromDBbyName('PluginMonitoringDisplayview_rule', 'replayallviewrules')) { CronTask::Register('PluginMonitoringDisplayview_rule', 'replayallviewrules', '1200', array('mode' => 2, 'allowmode' => 3, 'logs_lifetime' => 30)); } /* * Clean services not have host */ $query = "SELECT `glpi_plugin_monitoring_services`.* FROM `glpi_plugin_monitoring_services`\n LEFT JOIN `glpi_plugin_monitoring_componentscatalogs_hosts`\n ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`id` = `plugin_monitoring_componentscatalogs_hosts_id`\n WHERE `is_static` IS NULL"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $queryd = "DELETE FROM `glpi_plugin_monitoring_services`\n WHERE `id`='" . $data['id'] . "'"; $DB->query($queryd); } include GLPI_ROOT . "/plugins/monitoring/inc/hostconfig.class.php"; $pmHostconfig = new PluginMonitoringHostconfig(); $pmHostconfig->initConfig(); include GLPI_ROOT . "/plugins/monitoring/inc/host.class.php"; $pmHost = new PluginMonitoringHost(); $pmHost->verifyHosts(); if ($insertrealm == '1') { // Insert into hostconfigs $query = "UPDATE `glpi_plugin_monitoring_hostconfigs` \n SET `plugin_monitoring_realms_id` = '1'\n WHERE `items_id` = '0'\n AND `itemtype` = 'Entity'"; $DB->query($query); } include GLPI_ROOT . "/plugins/monitoring/inc/config.class.php"; $pmConfig = new PluginMonitoringConfig(); $pmConfig->initConfig(); // * Recalculate unavaibility if ($unavaibility_recalculate == 1) { $query = "SELECT * FROM `glpi_plugin_monitoring_unavaibilities`\n WHERE `end_date` IS NOT NULL"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $time = strtotime($data['end_date']) - strtotime($data['begin_date']); $queryd = "UPDATE `glpi_plugin_monitoring_unavaibilities`\n SET `duration`='" . $time . "'\n WHERE `id`='" . $data['id'] . "'"; $DB->query($queryd); } } $query = "UPDATE `glpi_plugin_monitoring_configs`\n SET `version`='" . PLUGIN_MONITORING_VERSION . "'\n WHERE `id`='1'"; $DB->query($query); }
function generateServicesCfg($file = 0, $tag = '') { global $DB; PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "Starting generateServicesCfg services ({$tag}) ...\n"); $pMonitoringCommand = new PluginMonitoringCommand(); $pmEventhandler = new PluginMonitoringEventhandler(); $pMonitoringCheck = new PluginMonitoringCheck(); $pmComponent = new PluginMonitoringComponent(); $pmEntity = new PluginMonitoringEntity(); $pmContact_Item = new PluginMonitoringContact_Item(); $networkPort = new NetworkPort(); $pmService = new PluginMonitoringService(); $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $pmHostconfig = new PluginMonitoringHostconfig(); $calendar = new Calendar(); $user = new User(); $profile_User = new Profile_User(); $pmConfig = new PluginMonitoringConfig(); $computerType = new ComputerType(); $a_services = array(); $i = 0; // Get computer type contener / VM $conteners = $computerType->find("`name`='BSDJail'"); $pmConfig->getFromDB(1); // TODO: only contacts in allowed entities ... // Prepare individual contacts $a_contacts_entities = array(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringComponentscatalog'\n AND `users_id`>0"); foreach ($a_list_contact as $data) { $contactentities = getSonsOf('glpi_entities', $data['entities_id']); if (isset($a_contacts_entities[$data['items_id']][$data['users_id']])) { $contactentities = array_merge($contactentities, $a_contacts_entities[$data['items_id']][$data['users_id']]); } $a_contacts_entities[$data['items_id']][$data['users_id']] = $contactentities; } // Prepare groups contacts $group = new Group(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringComponentscatalog'\n AND `groups_id`>0"); foreach ($a_list_contact as $data) { $group->getFromDB($data['groups_id']); if ($group->fields['is_recursive'] == 1) { $contactentities = getSonsOf('glpi_entities', $group->fields['entities_id']); } else { $contactentities = array($group->fields['entities_id'] => $group->fields['entities_id']); } $queryg = "SELECT * FROM `glpi_groups_users`\n WHERE `groups_id`='" . $data['groups_id'] . "'"; $resultg = $DB->query($queryg); while ($datag = $DB->fetch_array($resultg)) { if (isset($a_contacts_entities[$data['items_id']][$datag['users_id']])) { $contactentities = array_merge($contactentities, $a_contacts_entities[$data['items_id']][$datag['users_id']]); } $a_contacts_entities[$data['items_id']][$datag['users_id']] = $contactentities; } } $a_entities_allowed = $pmEntity->getEntitiesByTag($tag); // Toolbox::logInFile("pm-shinken", " Allowed entities:\n"); $a_entities_list = array(); foreach ($a_entities_allowed as $entity) { $a_entities_list = getSonsOf("glpi_entities", $entity); } $where = ''; if (!isset($a_entities_allowed['-1'])) { $where = getEntitiesRestrictRequest("WHERE", "glpi_plugin_monitoring_services", '', $a_entities_list); } // -------------------------------------------------- // "Normal" services .... $query = "SELECT * FROM `glpi_plugin_monitoring_services` {$where}"; PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "Services: {$query}\n"); $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { // Toolbox::logInFile("pm-shinken", " - fetch service ".$data['id']."\n"); // if (isset($a_entities_allowed['-1']) // OR isset($a_entities_allowed[$item->fields['entities_id']])) { $notadd = 0; $notadddescription = ''; $a_component = current($pmComponent->find("`id`='" . $data['plugin_monitoring_components_id'] . "'", "", 1)); if (empty($a_component)) { continue; } $a_hostname = array(); $a_hostname_single = array(); $a_hostname_type = array(); $a_hostname_id = array(); $queryh = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `id` = '" . $data['plugin_monitoring_componentscatalogs_hosts_id'] . "'\n LIMIT 1"; $resulth = $DB->query($queryh); $hostname = ''; $plugin_monitoring_componentscatalogs_id = 0; $computerTypes_id = 0; $entities_id = 0; while ($datah = $DB->fetch_array($resulth)) { $itemtype = $datah['itemtype']; $item = new $itemtype(); if ($item->getFromDB($datah['items_id'])) { // if (isset($a_entities_allowed['-1']) // OR isset($a_entities_allowed[$item->fields['entities_id']])) { // Fix if hostname is not defined ... if (!empty($item->fields['name'])) { $h = self::shinkenFilter($item->fields['name']); $a_hostname_single[] = $h; if ($pmConfig->fields['append_id_hostname'] == 1) { $h .= "-" . $datah['items_id']; } $a_hostname[] = $h; $a_hostname_type[] = $datah['itemtype']; $a_hostname_id[] = $datah['items_id']; $hostname = $item->fields['name']; $entities_id = $item->fields['entities_id']; $plugin_monitoring_componentscatalogs_id = $datah['plugin_monitoring_componentscalalog_id']; if ($itemtype == 'Computer') { $computerTypes_id = $item->fields['computertypes_id']; } } // } } } if (count($a_hostname) > 0) { if (isset($_SESSION['plugin_monitoring']['servicetemplates'][$a_component['id']])) { $a_services[$i]['use'] = $_SESSION['plugin_monitoring']['servicetemplates'][$a_component['id']]; } $a_services[$i]['host_name'] = implode(",", array_unique($a_hostname)); $a_services[$i]['_HOSTITEMSID'] = implode(",", array_unique($a_hostname_id)); $a_services[$i]['_HOSTITEMTYPE'] = implode(",", array_unique($a_hostname_type)); // Define display_name / service_description $a_services[$i]['service_description'] = !empty($a_component['description']) ? $a_component['description'] : self::shinkenFilter($a_component['name']); // In case have multiple networkt port, may have description different, else be dropped by shinken if ($data['networkports_id'] > 0) { $networkPort->getFromDB($data['networkports_id']); $a_services[$i]['service_description'] .= '-' . self::shinkenFilter($networkPort->fields['name']); } $a_services[$i]['display_name'] = $a_component['name']; // $a_services[$i]['_ENTITIESID'] = $item->fields['entities_id']; // $a_services[$i]['_ITEMSID'] = $data['id']; // $a_services[$i]['_ITEMTYPE'] = 'Service'; PluginMonitoringToolbox::logIfExtradebug('pm-shinken', " - add service " . $a_services[$i]['service_description'] . " on " . $a_services[$i]['host_name'] . "\n"); if (isset(self::$shinkenParameters['glpi']['entityId'])) { $a_services[$i][self::$shinkenParameters['glpi']['entityId']] = $item->fields['entities_id']; } if (isset(self::$shinkenParameters['glpi']['itemType'])) { $a_services[$i][self::$shinkenParameters['glpi']['itemType']] = 'Service'; } if (isset(self::$shinkenParameters['glpi']['itemId'])) { $a_services[$i][self::$shinkenParameters['glpi']['itemId']] = $data['id']; } // Manage freshness if ($a_component['freshness_count'] == 0) { $a_services[$i]['check_freshness'] = '0'; $a_services[$i]['freshness_threshold'] = '3600'; } else { $multiple = 1; if ($a_component['freshness_type'] == 'seconds') { $multiple = 1; } else { if ($a_component['freshness_type'] == 'minutes') { $multiple = 60; } else { if ($a_component['freshness_type'] == 'hours') { $multiple = 3600; } else { if ($a_component['freshness_type'] == 'days') { $multiple = 86400; } } } } $a_services[$i]['check_freshness'] = '1'; $a_services[$i]['freshness_threshold'] = (string) ($a_component['freshness_count'] * $multiple); } $pMonitoringCommand->getFromDB($a_component['plugin_monitoring_commands_id']); // Manage arguments $array = array(); preg_match_all("/\\\$(ARG\\d+)\\\$/", $pMonitoringCommand->fields['command_line'], $array); sort($array[0]); $a_arguments = importArrayFromDB($a_component['arguments']); $a_argumentscustom = importArrayFromDB($data['arguments']); foreach ($a_argumentscustom as $key => $value) { $a_arguments[$key] = $value; } foreach ($a_arguments as $key => $value) { $a_arguments[$key] = str_replace('!', '\\!', html_entity_decode($value)); } $args = ''; foreach ($array[0] as $arg) { if ($arg != '$PLUGINSDIR$' and $arg != '$NAGIOSPLUGINSDIR$' and $arg != '$HOSTADDRESS$' and $arg != '$MYSQLUSER$' and $arg != '$MYSQLPASSWORD$') { $arg = str_replace('$', '', $arg); if (!isset($a_arguments[$arg])) { $args .= '!'; } else { if (strstr($a_arguments[$arg], "[[HOSTNAME]]")) { $a_arguments[$arg] = str_replace("[[HOSTNAME]]", $hostname, $a_arguments[$arg]); } elseif (strstr($a_arguments[$arg], "[[NETWORKPORTDESCR]]")) { if (class_exists("PluginFusioninventoryNetworkPort")) { $pfNetworkPort = new PluginFusioninventoryNetworkPort(); $pfNetworkPort->loadNetworkport($data['networkports_id']); $descr = $pfNetworkPort->getValue("ifdescr"); $a_arguments[$arg] = str_replace("[[NETWORKPORTDESCR]]", $descr, $a_arguments[$arg]); } } elseif (strstr($a_arguments[$arg], "[[NETWORKPORTNUM]]")) { $networkPort = new NetworkPort(); $networkPort->getFromDB($data['networkports_id']); $logicalnum = $pfNetworkPort->fields['logical_number']; $a_arguments[$arg] = str_replace("[[NETWORKPORTNUM]]", $logicalnum, $a_arguments[$arg]); } elseif (strstr($a_arguments[$arg], "[[NETWORKPORTNAME]]")) { if (isset($data['networkports_id']) && $data['networkports_id'] > 0) { $networkPort = new NetworkPort(); $networkPort->getFromDB($data['networkports_id']); $portname = $pfNetworkPort->fields['name']; $a_arguments[$arg] = str_replace("[[NETWORKPORTNAME]]", $portname, $a_arguments[$arg]); } else { if ($a_services[$i]['_HOSTITEMTYPE'] == 'Computer') { // Get networkportname of networkcard defined $pmHostaddress = new PluginMonitoringHostaddress(); $a_hostaddresses = $pmHostaddress->find("`itemtype`='Computer'" . " AND `items_id`='" . $a_services[$i]['_HOSTITEMSID'] . "'", '', 1); if (count($a_hostaddresses) == 1) { $a_hostaddress = current($a_hostaddresses); if ($a_hostaddress['networkports_id'] > 0) { $networkPort = new NetworkPort(); $networkPort->getFromDB($a_hostaddress['networkports_id']); $a_arguments[$arg] = str_replace("[[NETWORKPORTNAME]]", $networkPort->fields['name'], $a_arguments[$arg]); } } } } } else { if (strstr($a_arguments[$arg], "[")) { $a_arguments[$arg] = PluginMonitoringService::convertArgument($data['id'], $a_arguments[$arg]); } } if ($a_arguments == '') { $notadd = 1; if ($notadddescription != '') { $notadddescription .= ", "; } $notadddescription .= "Argument " . $a_arguments[$arg] . " do not have value"; } $args .= '!' . $a_arguments[$arg]; if ($a_arguments[$arg] == '' and $a_component['alias_command'] != '') { $args .= $a_component['alias_command']; } } } } // End manage arguments if ($a_component['remotesystem'] == 'nrpe') { if ($a_component['alias_command'] != '') { $alias_command = $a_component['alias_command']; if (strstr($alias_command, '[[IP]]')) { $split = explode('-', current($a_hostname)); $ip = PluginMonitoringHostaddress::getIp($a_hostname_id[0], $a_hostname_type[0], ''); $alias_command = str_replace("[[IP]]", $ip, $alias_command); } if (current($a_hostname_type) == 'Computer') { if ($pmConfig->fields['nrpe_prefix_contener'] == 1) { if (isset($conteners[$computerTypes_id])) { // get Host of contener/VM $where = "LOWER(`uuid`)" . ComputerVirtualMachine::getUUIDRestrictRequest($item->fields['uuid']); $hosts = getAllDatasFromTable('glpi_computervirtualmachines', $where); if (!empty($hosts)) { $host = current($hosts); // $ip = PluginMonitoringHostaddress::getIp($host['computers_id'], 'Computer', ''); $alias_command = current($a_hostname_single) . "_" . $alias_command; } } } } $a_services[$i]['check_command'] = PluginMonitoringCommand::$command_prefix . "check_nrpe!" . $alias_command; } else { $a_services[$i]['check_command'] = PluginMonitoringCommand::$command_prefix . "check_nrpe!" . $pMonitoringCommand->fields['command_name']; } } else { $a_services[$i]['check_command'] = PluginMonitoringCommand::$command_prefix . $pMonitoringCommand->fields['command_name'] . $args; } // * Manage event handler if ($a_component['plugin_monitoring_eventhandlers_id'] > 0) { if ($pmEventhandler->getFromDB($a_component['plugin_monitoring_eventhandlers_id'])) { $a_services[$i]['event_handler'] = $pmEventhandler->fields['command_name']; } } if (!empty(self::$shinkenParameters['shinken']['services']['process_perf_data'])) { $a_services[$i]['process_perf_data'] = self::$shinkenParameters['shinken']['services']['process_perf_data']; } if (!empty(self::$shinkenParameters['shinken']['services']['notes'])) { $a_services[$i]['notes'] = self::$shinkenParameters['shinken']['services']['notes']; } if (!empty(self::$shinkenParameters['shinken']['services']['notes_url'])) { $a_services[$i]['notes_url'] = self::$shinkenParameters['shinken']['services']['notes_url']; } if (!empty(self::$shinkenParameters['shinken']['services']['action_url'])) { $a_services[$i]['action_url'] = self::$shinkenParameters['shinken']['services']['action_url']; } if (!empty(self::$shinkenParameters['shinken']['services']['icon_image'])) { $a_services[$i]['icon_image'] = self::$shinkenParameters['shinken']['services']['icon_image']; } if (!empty(self::$shinkenParameters['shinken']['services']['icon_image_alt'])) { $a_services[$i]['icon_image_alt'] = self::$shinkenParameters['shinken']['services']['icon_image_alt']; } // * Contacts $a_contacts = array(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringComponentscatalog'\n AND `items_id`='" . $plugin_monitoring_componentscatalogs_id . "'"); foreach ($a_list_contact as $data_contact) { if ($data_contact['users_id'] > 0) { if (isset($a_contacts_entities[$plugin_monitoring_componentscatalogs_id][$data_contact['users_id']])) { if (in_array($data['entities_id'], $a_contacts_entities[$plugin_monitoring_componentscatalogs_id][$data_contact['users_id']])) { $user->getFromDB($data_contact['users_id']); $a_contacts[] = $user->fields['name']; } } } else { if ($data_contact['groups_id'] > 0) { $queryg = "SELECT * FROM `glpi_groups_users`\n WHERE `groups_id`='" . $data_contact['groups_id'] . "'"; $resultg = $DB->query($queryg); while ($datag = $DB->fetch_array($resultg)) { if (in_array($data['entities_id'], $a_contacts_entities[$plugin_monitoring_componentscatalogs_id][$datag['users_id']])) { $user->getFromDB($datag['users_id']); $a_contacts[] = $user->fields['name']; } } } } } $a_contacts_unique = array_unique($a_contacts); $a_services[$i]['contacts'] = implode(',', $a_contacts_unique); // ** If shinken not use templates or template not defined : if (!isset($_SESSION['plugin_monitoring']['servicetemplates'][$a_component['id']])) { $pMonitoringCheck->getFromDB($a_component['plugin_monitoring_checks_id']); $a_services[$i]['check_interval'] = $pMonitoringCheck->fields['check_interval']; $a_services[$i]['retry_interval'] = $pMonitoringCheck->fields['retry_interval']; $a_services[$i]['max_check_attempts'] = $pMonitoringCheck->fields['max_check_attempts']; $timeperiodsuffix = '-' . $pmHostconfig->getValueAncestor('jetlag', $entities_id); if ($timeperiodsuffix == '-0') { $timeperiodsuffix = ''; } if ($calendar->getFromDB($a_component['calendars_id'])) { $a_services[$i]['check_period'] = $calendar->fields['name'] . $timeperiodsuffix; } $a_services[$i]['notification_interval'] = '30'; $a_services[$i]['notification_period'] = "24x7"; $a_services[$i]['notification_options'] = 'w,u,c,r,f,s'; $a_services[$i]['process_perf_data'] = '1'; $a_services[$i]['active_checks_enabled'] = '1'; $a_services[$i]['passive_checks_enabled'] = '1'; $a_services[$i]['parallelize_check'] = '1'; $a_services[$i]['obsess_over_service'] = '1'; $a_services[$i]['check_freshness'] = '1'; $a_services[$i]['freshness_threshold'] = '3600'; $a_services[$i]['notifications_enabled'] = '1'; if (isset($a_services[$i]['event_handler'])) { $a_services[$i]['event_handler_enabled'] = '1'; } else { $a_services[$i]['event_handler_enabled'] = '0'; // $a_services[$i]['event_handler_enabled'] = ''; } $a_services[$i]['flap_detection_enabled'] = '1'; $a_services[$i]['failure_prediction_enabled'] = '1'; $a_services[$i]['retain_status_information'] = '1'; $a_services[$i]['retain_nonstatus_information'] = '1'; $a_services[$i]['is_volatile'] = '0'; // $a_services[$i]['_httpstink'] = 'NO'; } else { // Notification options $a_services[$i]['notification_interval'] = '30'; $pmComponentscatalog->getFromDB($plugin_monitoring_componentscatalogs_id); if ($pmComponentscatalog->fields['notification_interval'] != '30') { $a_services[$i]['notification_interval'] = $pmComponentscatalog->fields['notification_interval']; } $a_services[$i]['notification_period'] = '24x7'; $a_services[$i]['check_period'] = '24x7'; $timeperiodsuffix = '-' . $pmHostconfig->getValueAncestor('jetlag', $entities_id); if ($timeperiodsuffix == '-0') { $timeperiodsuffix = ''; } if ($calendar->getFromDB($a_component['calendars_id'])) { $a_services[$i]['check_period'] = $calendar->fields['name'] . $timeperiodsuffix; } } // WebUI user interface ... if (isset(self::$shinkenParameters['webui']['serviceIcons']['name'])) { $a_services[$i][self::$shinkenParameters['webui']['serviceIcons']['name']] = self::$shinkenParameters['webui']['serviceIcons']['value']; } if ($notadd == '1') { unset($a_services[$i]); $input = array(); $input['id'] = $data['id']; $input['event'] = $notadddescription; $input['state'] = "CRITICAL"; $input['state_type'] = "HARD"; $pmService->update($input); } else { $i++; } } // } } PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "End generateServicesCfg services\n"); PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "Starting generateServicesCfg business rules ...\n"); // -------------------------------------------------- // Business rules services ... $pmService = new PluginMonitoringService(); $pmServicescatalog = new PluginMonitoringServicescatalog(); $pmBusinessrulegroup = new PluginMonitoringBusinessrulegroup(); $pmBusinessrule = new PluginMonitoringBusinessrule(); $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $pmBusinessrule_component = new PluginMonitoringBusinessrule_component(); // Prepare individual contacts $a_contacts_entities = array(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringServicescatalog'\n AND `users_id`>0"); foreach ($a_list_contact as $data) { $contactentities = getSonsOf('glpi_entities', $data['entities_id']); if (isset($a_contacts_entities[$data['items_id']][$data['users_id']])) { $contactentities = array_merge($contactentities, $a_contacts_entities[$data['items_id']][$data['users_id']]); } $a_contacts_entities[$data['items_id']][$data['users_id']] = $contactentities; } // Prepare groups contacts $group = new Group(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringServicescatalog'\n AND `groups_id`>0"); foreach ($a_list_contact as $data) { $group->getFromDB($data['groups_id']); if ($group->fields['is_recursive'] == 1) { $contactentities = getSonsOf('glpi_entities', $group->fields['entities_id']); } else { $contactentities = array($group->fields['entities_id'] => $group->fields['entities_id']); } $queryg = "SELECT * FROM `glpi_groups_users`\n WHERE `groups_id`='" . $data['groups_id'] . "'"; $resultg = $DB->query($queryg); while ($datag = $DB->fetch_array($resultg)) { if (isset($a_contacts_entities[$data['items_id']][$datag['users_id']])) { $contactentities = array_merge($contactentities, $a_contacts_entities[$data['items_id']][$datag['users_id']]); } $a_contacts_entities[$data['items_id']][$datag['users_id']] = $contactentities; } } // Services catalogs $a_listBA = $pmServicescatalog->find("`is_generic`='0'"); foreach ($a_listBA as $dataBA) { if (isset($a_entities_allowed['-1']) or isset($a_entities_allowed[$dataBA['entities_id']])) { $a_grouplist = $pmBusinessrulegroup->find("`plugin_monitoring_servicescatalogs_id`='" . $dataBA['id'] . "'"); $a_group = array(); foreach ($a_grouplist as $gdata) { $pmBusinessrule_component->replayDynamicServices($gdata['id']); $a_listBR = $pmBusinessrule->find("`plugin_monitoring_businessrulegroups_id`='" . $gdata['id'] . "'"); foreach ($a_listBR as $dataBR) { if ($pmService->getFromDB($dataBR['plugin_monitoring_services_id'])) { if ($pmService->getHostName() != '') { $hostname = self::shinkenFilter($pmService->getHostName()); if ($gdata['operator'] == 'and' or $gdata['operator'] == 'or' or strstr($gdata['operator'], ' of:')) { $operator = '|'; if ($gdata['operator'] == 'and') { $operator = '&'; } if (!isset($a_group[$gdata['id']])) { $a_group[$gdata['id']] = ''; if (strstr($gdata['operator'], ' of:')) { $a_group[$gdata['id']] = $gdata['operator']; } $a_group[$gdata['id']] .= $hostname . "," . self::shinkenFilter($pmService->getName(array('shinken' => true))); } else { $a_group[$gdata['id']] .= $operator . $hostname . "," . self::shinkenFilter($pmService->getName(array('shinken' => true))); } } else { $a_group[$gdata['id']] = $gdata['operator'] . " " . $hostname . "," . self::shinkenFilter($item->getName()); } } } PluginMonitoringToolbox::logIfExtradebug('pm-shinken', " - SC group : " . $a_group[$gdata['id']] . "\n"); } } if (count($a_group) > 0) { $pMonitoringCheck->getFromDB($dataBA['plugin_monitoring_checks_id']); $a_services[$i]['check_interval'] = $pMonitoringCheck->fields['check_interval']; $a_services[$i]['retry_interval'] = $pMonitoringCheck->fields['retry_interval']; $a_services[$i]['max_check_attempts'] = $pMonitoringCheck->fields['max_check_attempts']; if ($calendar->getFromDB($dataBA['calendars_id'])) { $a_services[$i]['check_period'] = $calendar->fields['name']; } $a_services[$i]['host_name'] = self::$shinkenParameters['shinken']['fake_hosts']['name_prefix'] . self::$shinkenParameters['shinken']['fake_hosts']['bp_host']; $a_services[$i]['business_impact'] = $dataBA['business_priority']; $a_services[$i]['service_description'] = self::shinkenFilter($dataBA['name']); $a_services[$i]['_ENTITIESID'] = $dataBA['id']; $a_services[$i]['_ITEMSID'] = $dataBA['id']; $a_services[$i]['_ITEMTYPE'] = 'ServiceCatalog'; $command = "bp_rule!"; foreach ($a_group as $key => $value) { if (!strstr($value, "&") and !strstr($value, "|")) { $a_group[$key] = trim($value); } else { $a_group[$key] = "(" . trim($value) . ")"; } } $a_services[$i]['check_command'] = $command . implode("&", $a_group); if ($dataBA['notification_interval'] != '30') { $a_services[$i]['notification_interval'] = $dataBA['notification_interval']; } else { $a_services[$i]['notification_interval'] = '30'; } $a_services[$i]['notification_period'] = "24x7"; $a_services[$i]['notification_options'] = 'w,u,c,r,f,s'; $a_services[$i]['active_checks_enabled'] = '1'; $a_services[$i]['process_perf_data'] = '1'; $a_services[$i]['active_checks_enabled'] = '1'; $a_services[$i]['passive_checks_enabled'] = '1'; $a_services[$i]['parallelize_check'] = '1'; $a_services[$i]['obsess_over_service'] = '1'; $a_services[$i]['check_freshness'] = '1'; $a_services[$i]['freshness_threshold'] = '3600'; $a_services[$i]['notifications_enabled'] = '1'; $a_services[$i]['event_handler_enabled'] = '0'; //$a_services[$i]['event_handler'] = 'super_event_kill_everyone!DIE'; $a_services[$i]['flap_detection_enabled'] = '1'; $a_services[$i]['failure_prediction_enabled'] = '1'; $a_services[$i]['retain_status_information'] = '1'; $a_services[$i]['retain_nonstatus_information'] = '1'; $a_services[$i]['is_volatile'] = '0'; // $a_services[$i]['_httpstink'] = 'NO'; // * Contacts $a_contacts = array(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringServicescatalog'\n AND `items_id`='" . $dataBA['id'] . "'"); foreach ($a_list_contact as $data_contact) { if ($data_contact['users_id'] > 0) { if (isset($a_contacts_entities[$dataBA['id']][$data_contact['users_id']])) { if (in_array($data['entities_id'], $a_contacts_entities[$dataBA['id']][$data_contact['users_id']])) { $user->getFromDB($data_contact['users_id']); $a_contacts[] = $user->fields['name']; } } } else { if ($data_contact['groups_id'] > 0) { $queryg = "SELECT * FROM `glpi_groups_users`\n WHERE `groups_id`='" . $data_contact['groups_id'] . "'"; $resultg = $DB->query($queryg); while ($datag = $DB->fetch_array($resultg)) { if (in_array($data['entities_id'], $a_contacts_entities[$dataBA['id']][$datag['users_id']])) { $user->getFromDB($datag['users_id']); $a_contacts[] = $user->fields['name']; } } } } } $a_contacts_unique = array_unique($a_contacts); $a_services[$i]['contacts'] = implode(',', $a_contacts_unique); $i++; } } } PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "End generateServicesCfg business rules\n"); PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "Starting generateServicesCfg business rules templates ...\n"); // Services catalogs templates // TODO : correctly test and improve it ! $a_listBA = $pmServicescatalog->find("`is_generic`='1'"); foreach ($a_listBA as $dataBA) { PluginMonitoringToolbox::logIfExtradebug('pm-shinken', " - SC : " . $dataBA['id'] . "\n"); if (isset($a_entities_allowed['-1']) or isset($a_entities_allowed[$dataBA['entities_id']])) { $pmServicescatalog->getFromDB($dataBA['id']); $a_entitiesServices = $pmServicescatalog->getGenericServicesEntities(); foreach ($a_entitiesServices as $idEntity => $a_entityServices) { // New entity ... so new business rule ! PluginMonitoringToolbox::logIfExtradebug('pm-shinken', " - SC templated services for an entity : " . $idEntity . "\n"); $pmDerivatedSC = new PluginMonitoringServicescatalog(); $a_derivatedSC = $pmDerivatedSC->find("`entities_id`='{$idEntity}' AND `name` LIKE '" . $dataBA['name'] . "%'"); foreach ($a_derivatedSC as $a_derivated) { PluginMonitoringToolbox::logIfExtradebug('pm-shinken', " - a_derivated : " . $a_derivated['name'] . "\n"); $a_derivatedSC = $a_derivated; } $a_group = array(); foreach ($a_entityServices as $services) { if ($pmService->getFromDB($services['serviceId'])) { // Toolbox::logInFile("pm-shinken", " - SC templated service entity : ".$services['entityId'].", service : ".$pmService->getName(true)." on ".$pmService->getHostName()."\n"); if ($pmService->getHostName() != '') { $hostname = self::shinkenFilter($pmService->getHostName()); $serviceFakeId = $services['entityId']; $pmBusinessrulegroup->getFromDB($services['BRgroupId']); $BRoperator = $pmBusinessrulegroup->getField('operator'); if ($BRoperator == 'and' or $BRoperator == 'or' or strstr($BRoperator, ' of:')) { $operator = '|'; if ($BRoperator == 'and') { $operator = '&'; } if (!isset($a_group[$serviceFakeId])) { $a_group[$serviceFakeId] = ''; if (strstr($BRoperator, ' of:')) { $a_group[$serviceFakeId] = $BRoperator; } $a_group[$serviceFakeId] .= $hostname . "," . self::shinkenFilter($pmService->getName(array('shinken' => true))); } else { $a_group[$serviceFakeId] .= $operator . $hostname . "," . self::shinkenFilter($pmService->getName(array('shinken' => true))); } } else { $a_group[$serviceFakeId] = $BRoperator . " " . $hostname . "," . self::shinkenFilter($pmService->getHostName()); } // Toolbox::logInFile("pm-shinken", " - SCT group : ".$a_group[$serviceFakeId]."\n"); } } } if (count($a_group) > 0) { $pMonitoringCheck->getFromDB($a_derivatedSC['plugin_monitoring_checks_id']); $a_services[$i]['check_interval'] = $pMonitoringCheck->fields['check_interval']; $a_services[$i]['retry_interval'] = $pMonitoringCheck->fields['retry_interval']; $a_services[$i]['max_check_attempts'] = $pMonitoringCheck->fields['max_check_attempts']; if ($calendar->getFromDB($a_derivatedSC['calendars_id'])) { $a_services[$i]['check_period'] = $calendar->fields['name']; } $a_services[$i]['host_name'] = self::shinkenFilter($a_derivatedSC['name']); $a_services[$i]['host_name'] = self::$shinkenParameters['shinken']['fake_hosts']['name_prefix'] . self::$shinkenParameters['shinken']['fake_hosts']['bp_host']; $a_services[$i]['business_impact'] = $a_derivatedSC['business_priority']; $a_services[$i]['service_description'] = self::shinkenFilter($a_derivatedSC['name']); $a_services[$i]['_ENTITIESID'] = $a_derivatedSC['entities_id']; $a_services[$i]['_ITEMSID'] = $a_derivatedSC['id']; $a_services[$i]['_ITEMTYPE'] = 'ServiceCatalog'; $command = "bp_rule!"; foreach ($a_group as $key => $value) { if (!strstr($value, "&") and !strstr($value, "|")) { $a_group[$key] = trim($value); } else { $a_group[$key] = "(" . trim($value) . ")"; } } $a_services[$i]['check_command'] = $command . implode("&", $a_group); if ($a_derivatedSC['notification_interval'] != '30') { $a_services[$i]['notification_interval'] = $a_derivatedSC['notification_interval']; } else { $a_services[$i]['notification_interval'] = '30'; } $a_services[$i]['notification_period'] = "24x7"; $a_services[$i]['notification_options'] = 'w,u,c,r,f,s'; $a_services[$i]['active_checks_enabled'] = '1'; $a_services[$i]['process_perf_data'] = '1'; $a_services[$i]['active_checks_enabled'] = '1'; $a_services[$i]['passive_checks_enabled'] = '1'; $a_services[$i]['parallelize_check'] = '1'; $a_services[$i]['obsess_over_service'] = '1'; $a_services[$i]['check_freshness'] = '1'; $a_services[$i]['freshness_threshold'] = '3600'; $a_services[$i]['notifications_enabled'] = '1'; $a_services[$i]['event_handler_enabled'] = '0'; //$a_services[$i]['event_handler'] = 'super_event_kill_everyone!DIE'; $a_services[$i]['flap_detection_enabled'] = '1'; $a_services[$i]['failure_prediction_enabled'] = '1'; $a_services[$i]['retain_status_information'] = '1'; $a_services[$i]['retain_nonstatus_information'] = '1'; $a_services[$i]['is_volatile'] = '0'; // $a_services[$i]['_httpstink'] = 'NO'; // * Contacts $a_contacts = array(); $a_list_contact = $pmContact_Item->find("`itemtype`='PluginMonitoringServicescatalog'\n AND `items_id`='" . $dataBA['id'] . "'"); foreach ($a_list_contact as $data_contact) { if ($data_contact['users_id'] > 0) { if (isset($a_contacts_entities[$dataBA['id']][$data_contact['users_id']])) { if (in_array($data['entities_id'], $a_contacts_entities[$dataBA['id']][$data_contact['users_id']])) { $user->getFromDB($data_contact['users_id']); $a_contacts[] = $user->fields['name']; } } } else { if ($data_contact['groups_id'] > 0) { $queryg = "SELECT * FROM `glpi_groups_users`\n WHERE `groups_id`='" . $data_contact['groups_id'] . "'"; $resultg = $DB->query($queryg); while ($datag = $DB->fetch_array($resultg)) { if (in_array($data['entities_id'], $a_contacts_entities[$dataBA['id']][$datag['users_id']])) { $user->getFromDB($datag['users_id']); $a_contacts[] = $user->fields['name']; } } } } } $a_contacts_unique = array_unique($a_contacts); $a_services[$i]['contacts'] = implode(',', $a_contacts_unique); $i++; } } } } PluginMonitoringToolbox::logIfExtradebug('pm-shinken', "End generateServicesCfg business rules templates\n"); if ($file == "1") { $config = "# Generated by plugin monitoring for GLPI\n# on " . date("Y-m-d H:i:s") . "\n\n"; foreach ($a_services as $data) { $config .= $this->writeFile("service", $data); } return array('services.cfg', $config); } else { return $a_services; } }
static function getPHPPath() { $pmConfig = new PluginMonitoringConfig(); $pmConfig->getFromDB("1"); return $pmConfig->getField("phppath"); }
@author David Durieux @co-author @comment @copyright Copyright (c) 2011-2012 Plugin Monitoring for GLPI team @license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link https://forge.indepnet.net/projects/monitoring/ @since 2011 ------------------------------------------------------------------------ */ define('GLPI_ROOT', '../../..'); include GLPI_ROOT . "/inc/includes.php"; PluginMonitoringProfile::checkRight("config", "w"); commonHeader($LANG['plugin_monitoring']['title'][0], $_SERVER["PHP_SELF"], "plugins", "monitoring", "config"); $pmConfig = new PluginMonitoringConfig(); if (isset($_POST["update"])) { $pmConfig->update($_POST); glpi_header($_SERVER['HTTP_REFERER']); } else { if (isset($_POST['timezones_add'])) { $input = array(); $pmConfig->getFromDB($_POST['id']); $input['id'] = $_POST['id']; $a_timezones = importArrayFromDB($pmConfig->fields['timezones']); foreach ($_POST['timezones_to_add'] as $timezone) { $a_timezones[] = $timezone; } $input['timezones'] = exportArrayToDB($a_timezones); $pmConfig->update($input); glpi_header($_SERVER['HTTP_REFERER']);
function parseToRrdtool($plugin_monitoring_services_id) { global $DB; $pmRrdtool = new PluginMonitoringRrdtool(); $pmCommand = new PluginMonitoringCommand(); $pmService = new PluginMonitoringService(); $pmComponent = new PluginMonitoringComponent(); if ($pmService->getFromDB($plugin_monitoring_services_id)) { $pmComponent->getFromDB($pmService->fields['plugin_monitoring_components_id']); if (!isset($pmComponent->fields['plugin_monitoring_commands_id'])) { return; } if (is_null($pmComponent->fields['graph_template'])) { return; } $pmCommand->getFromDB($pmComponent->fields['plugin_monitoring_commands_id']); $pmUnavaibility = new PluginMonitoringUnavaibility(); $pmUnavaibility->runUnavaibility($plugin_monitoring_services_id); $query = "SELECT * FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $plugin_monitoring_services_id . "'\n ORDER BY `date`"; $result = $DB->query($query); $i = 0; $nb_rows = $DB->numrows($result); $rrdtool_value = ''; $last_date = ''; while ($edata = $DB->fetch_array($result)) { $i++; if ($edata['unavailability'] == '0') { if ($last_date != '') { $pmRrdtool->addData($pmComponent->fields['graph_template'], $plugin_monitoring_services_id, 0, '', $rrdtool_value, 1); } break; } $perf_data = $edata['perf_data']; if ($edata['perf_data'] == '') { $perf_data = $edata['output']; } if ($edata['unavailability'] != '2' and $i < $nb_rows) { $rrdtool_value = $pmRrdtool->addData($pmComponent->fields['graph_template'], $plugin_monitoring_services_id, $this->convert_datetime_timestamp($edata['date']), $perf_data, $rrdtool_value, 0); } $last_date = $edata['date']; if ($i == $nb_rows) { if ($edata['unavailability'] != '2') { $input = array(); $input['id'] = $edata['id']; $input['unavailability'] = 2; $this->update($input); $pmRrdtool->addData($pmComponent->fields['graph_template'], $plugin_monitoring_services_id, $this->convert_datetime_timestamp($edata['date']), $perf_data, $rrdtool_value, 1); $queryd = "DELETE FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $plugin_monitoring_services_id . "'\n AND `date`<'" . $edata['date'] . "'"; $DB->query($queryd); } } } $a_list = array(); $a_list[] = "2h"; $a_list[] = "12h"; $a_list[] = "1d"; $a_list[] = "1w"; $a_list[] = "1m"; $a_list[] = "0y6m"; $a_list[] = "1y"; $pmConfig = new PluginMonitoringConfig(); $pmConfig->getFromDB(1); $a_timezones = importArrayFromDB($pmConfig->fields['timezones']); foreach ($a_list as $time) { foreach ($a_timezones as $timezone) { $pmRrdtool->displayGLPIGraph($pmComponent->fields['graph_template'], "PluginMonitoringService", $plugin_monitoring_services_id, $timezone, $time); } } } else { $query = "DELETE FROM `" . $this->getTable() . "`\n WHERE `plugin_monitoring_services_id`='" . $plugin_monitoring_services_id . "'"; $DB->query($query); } }