function linkComponentsToItem($componentscatalogs_id, $componentscatalogs_hosts_id, $networkports_id = 0) { global $DB; $pmService = new PluginMonitoringService(); $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $pmComponentscatalog_Host->getFromDB($componentscatalogs_hosts_id); $query = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_components`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $componentscatalogs_id . "'"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $input = array(); $itemtype = $pmComponentscatalog_Host->fields['itemtype']; $item = new $itemtype(); $item->getFromDB($pmComponentscatalog_Host->fields['items_id']); if ($networkports_id == 0) { $input['entities_id'] = $item->fields['entities_id']; $input['plugin_monitoring_componentscatalogs_hosts_id'] = $componentscatalogs_hosts_id; $input['plugin_monitoring_components_id'] = $data['plugin_monitoring_components_id']; $input['name'] = Dropdown::getDropdownName("glpi_plugin_monitoring_components", $data['plugin_monitoring_components_id']); $input['state'] = 'WARNING'; $input['state_type'] = 'HARD'; $pmService->add($input); } else { if ($networkports_id > 0) { $a_services = $pmService->find("`plugin_monitoring_components_id`='" . $data['plugin_monitoring_components_id'] . "'\n AND `plugin_monitoring_componentscatalogs_hosts_id`='" . $componentscatalogs_hosts_id . "'\n AND `networkports_id`='" . $networkports_id . "'", "", 1); $item = new NetworkPort(); $item->getFromDB($networkports_id); if (count($a_services) == 0) { $input = array(); $input['networkports_id'] = $networkports_id; $input['entities_id'] = $item->fields['entities_id']; $input['plugin_monitoring_componentscatalogs_hosts_id'] = $componentscatalogs_hosts_id; $input['plugin_monitoring_components_id'] = $data['plugin_monitoring_components_id']; $input['name'] = Dropdown::getDropdownName("glpi_plugin_monitoring_components", $data['plugin_monitoring_components_id']); $input['state'] = 'WARNING'; $input['state_type'] = 'HARD'; $pmService->add($input); } else { $a_service = current($a_services); $queryu = "UPDATE `glpi_plugin_monitoring_services`\n SET `entities_id`='" . $item->fields['entities_id'] . "'\n WHERE `id`='" . $a_service['id'] . "'"; $DB->query($queryu); } } } } }
function addComponentToItems($componentscatalogs_id, $components_id) { global $DB; $pmService = new PluginMonitoringService(); $pmComponentscatalog_rule = new PluginMonitoringComponentscatalog_rule(); $pmNetworkport = new PluginMonitoringNetworkport(); $pluginMonitoringNetworkport = 0; $query = "SELECT * FROM `" . $pmComponentscatalog_rule->getTable() . "`\n WHERE `itemtype`='PluginMonitoringNetworkport'\n AND `plugin_monitoring_componentscalalog_id`='" . $componentscatalogs_id . "'\n LIMIT 1"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { $pluginMonitoringNetworkport = 1; } $query = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $componentscatalogs_id . "'"; $result = $DB->query($query); while ($data = $DB->fetch_array($result)) { $itemtype = $data['itemtype']; $item = new $itemtype(); $item->getFromDB($data['items_id']); if ($pluginMonitoringNetworkport == '0') { $input = array(); $input['entities_id'] = $item->fields['entities_id']; $input['plugin_monitoring_componentscatalogs_hosts_id'] = $data['id']; $input['plugin_monitoring_components_id'] = $components_id; $input['name'] = Dropdown::getDropdownName("glpi_plugin_monitoring_components", $components_id); $input['state'] = 'WARNING'; $input['state_type'] = 'HARD'; $pmService->add($input); } else { if ($pluginMonitoringNetworkport == '1') { $a_services_created = array(); $querys = "SELECT * FROM `glpi_plugin_monitoring_services`\n WHERE `plugin_monitoring_components_id`='" . $components_id . "'\n AND `plugin_monitoring_componentscatalogs_hosts_id`='" . $data['id'] . "'"; $results = $DB->query($querys); while ($datas = $DB->fetch_array($results)) { $a_services_created[$datas['networkports_id']] = $datas['id']; } $a_ports = $pmNetworkport->find("`itemtype`='" . $data['itemtype'] . "'\n AND `items_id`='" . $data['items_id'] . "'"); foreach ($a_ports as $datap) { if (isset($a_services_created[$datap["id"]])) { unset($a_services_created[$datap["id"]]); } else { $input = array(); $input['networkports_id'] = $datap['networkports_id']; $input['entities_id'] = $item->fields['entities_id']; $input['plugin_monitoring_componentscatalogs_hosts_id'] = $data['id']; $input['plugin_monitoring_components_id'] = $components_id; $input['name'] = Dropdown::getDropdownName("glpi_plugin_monitoring_components", $components_id); $input['state'] = 'WARNING'; $input['state_type'] = 'HARD'; $pmService->add($input); } } foreach ($a_services_created as $id) { $_SESSION['plugin_monitoring_hosts'] = $data; $pmService->delete(array('id' => $id)); } } } } }
commonHeader($LANG['plugin_monitoring']['title'][0], $_SERVER["PHP_SELF"], "plugins", "monitoring", "host_service"); $pMonitoringService = new PluginMonitoringService(); //echo "<pre>";print_r($_POST);exit; if (isset($_POST['add'])) { $pMonitoringServicedef = new PluginMonitoringServicedef(); $_POST['plugin_monitoring_servicedefs_id'] = $pMonitoringServicedef->add($_POST); if (isset($_POST['arg'])) { $_POST['arguments'] = exportArrayToDB($_POST['arg']); } if (isset($_POST['alias_commandservice'])) { $_POST['alias_command'] = $_POST['alias_commandservice']; } if ($_POST['plugin_monitoring_servicedefs_id'] == '0') { $_POST['plugin_monitoring_servicedefs_id'] = $_POST['plugin_monitoring_servicedefs_id_s']; } $pMonitoringService->add($_POST); glpi_header($_SERVER['HTTP_REFERER']); } else { if (isset($_POST['update'])) { if (is_array($_POST['id'])) { foreach ($_POST['id'] as $key => $id) { $input = array(); $input['id'] = $id; $input['plugin_monitoring_servicedefs_id'] = $_POST['plugin_monitoring_servicedefs_id'][$key]; $a_arguments = array(); foreach ($_POST as $key => $value) { if (strstr($key, "arg" . $id . "||")) { $a_ex = explode("||", $key); $a_arguments[$a_ex[1]] = $value; } }