PluginMonitoringProfile::checkRight("servicescatalog", "w"); commonHeader($LANG['plugin_monitoring']['title'][0], $_SERVER["PHP_SELF"], "plugins", "monitoring", "businessrules"); $pMonitoringBusinessrulegroup = new PluginMonitoringBusinessrulegroup(); foreach ($_POST as $key => $value) { if (strstr($key, 'deletebusinessrules-')) { $split = explode("-", $key); $pmBusinessrule = new PluginMonitoringBusinessrule(); $pmBusinessrule->delete(array('id' => $split[1])); glpi_header($_SERVER['HTTP_REFERER']); } } if (isset($_POST['update'])) { $pMonitoringBusinessrulegroup->update($_POST); } else { if (isset($_POST['add']) and isset($_POST['id'])) { if (isset($_POST['plugin_monitoring_services_id'])) { $pmBusinessrule = new PluginMonitoringBusinessrule(); $pmBusinessrule->add(array('plugin_monitoring_businessrulegroups_id' => $_POST['plugin_monitoring_businessrulegroups_id'], 'plugin_monitoring_services_id' => $_POST['plugin_monitoring_services_id'])); } } else { if (isset($_POST['add'])) { $pMonitoringBusinessrulegroup->add($_POST); } else { if (isset($_POST['delete'])) { $pMonitoringBusinessrulegroup->delete($_POST); } } } } glpi_header($_SERVER['HTTP_REFERER']); commonFooter();
------------------------------------------------------------------------ @package Plugin Monitoring for GLPI @author David Durieux @co-author @comment @copyright Copyright (c) 2011-2013 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"; PluginMonitoringProfile::checkRight("servicescatalog", "w"); Html::header(__('Monitoring', 'monitoring'), $_SERVER["PHP_SELF"], "plugins", "monitoring", "businessrules"); $pMonitoringBusinessrule = new PluginMonitoringBusinessrule(); if (isset($_POST['update'])) { $pMonitoringBusinessrule->update($_POST); } else { if (isset($_POST['add'])) { $pMonitoringBusinessrule->add($_POST); } else { if (isset($_POST['delete'])) { } } } Html::back(); Html::footer();
function replayDynamicServices($plugin_monitoring_businessrulegroups_id) { global $DB; if ($plugin_monitoring_businessrulegroups_id == 0) { return; } // Get entity and if recursif $pmBusinessrulegroup = new PluginMonitoringBusinessrulegroup(); $pmServicescatalog = new PluginMonitoringServicescatalog(); $pmBusinessrulegroup->getFromDB($plugin_monitoring_businessrulegroups_id); $pmServicescatalog->getFromDB($pmBusinessrulegroup->fields['plugin_monitoring_servicescatalogs_id']); if ($pmServicescatalog->fields['is_recursive']) { $a_sons = getSonsOf("glpi_entities", $pmServicescatalog->fields['entities_id']); $restrict_entities = "AND ( `glpi_plugin_monitoring_services`.`entities_id` IN ('" . implode("','", $a_sons) . "') )"; } else { $restrict_entities = "AND ( `glpi_plugin_monitoring_services`.`entities_id` = '" . $pmServicescatalog->fields['entities_id'] . "' )"; } $a_brcomponents = $this->find("`plugin_monitoring_businessrulegroups_id`='" . $plugin_monitoring_businessrulegroups_id . "'"); $a_services = array(); foreach ($a_brcomponents as $a_brcomponent) { $pmComponentscatalog_Component = new PluginMonitoringComponentscatalog_Component(); $pmComponentscatalog_Component->getFromDB($a_brcomponent['plugin_monitoring_componentscatalogs_components_id']); // Get all services of component of component catalog $query = "SELECT `glpi_plugin_monitoring_services`.`id` FROM `glpi_plugin_monitoring_services`" . " LEFT JOIN `glpi_plugin_monitoring_componentscatalogs_hosts`" . " ON plugin_monitoring_componentscatalogs_hosts_id=" . " `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`" . " WHERE `glpi_plugin_monitoring_services`.`plugin_monitoring_components_id`" . " = '" . $pmComponentscatalog_Component->fields['plugin_monitoring_components_id'] . "' " . $restrict_entities; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $a_services[$data['id']] = $data['id']; } } // get static services of the group (so not add dynamic if yet in static) $pmBusinessrule_component = new PluginMonitoringBusinessrule_component(); $pmBusinessrule = new PluginMonitoringBusinessrule(); $a_static = $pmBusinessrule->find("`plugin_monitoring_businessrulegroups_id`='" . $plugin_monitoring_businessrulegroups_id . "'" . " AND `is_dynamic`=0"); foreach ($a_static as $data) { if (isset($a_services[$data['plugin_monitoring_services_id']])) { unset($a_services[$data['plugin_monitoring_services_id']]); // Update generic status $pmBusinessrule->getFromDB($data['id']); $input = array('id' => $data['id'], 'is_generic' => $pmServicescatalog->fields['is_generic']); $pmBusinessrule->update($input); } } // update services + is_dynamic=1 $query = "SELECT * FROM `glpi_plugin_monitoring_businessrules`" . " WHERE `plugin_monitoring_businessrulegroups_id`='" . $plugin_monitoring_businessrulegroups_id . "'" . " AND `is_dynamic`=1"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { // Update if yet in DB if (isset($a_services[$data['plugin_monitoring_services_id']])) { unset($a_services[$data['plugin_monitoring_services_id']]); // Update generic status $pmBusinessrule->getFromDB($data['id']); $input = array('id' => $data['id'], 'is_generic' => $pmServicescatalog->fields['is_generic']); $pmBusinessrule->update($input); } else { // delete if not exist $pmBusinessrule->delete($data); } } // Add new foreach ($a_services as $services_id) { $input = array('plugin_monitoring_businessrulegroups_id' => $plugin_monitoring_businessrulegroups_id, 'plugin_monitoring_services_id' => $services_id, 'is_dynamic' => '1', 'is_generic' => $pmServicescatalog->fields['is_generic']); $pmBusinessrule->add($input); } }