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();
Exemplo n.º 2
0
  ------------------------------------------------------------------------

  @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);
     }
 }