echo "</div>"; } unset($_SESSION["ocs_update"]); $display_list = false; echo "<div class='center b'><br>"; echo "<a href='" . $_SERVER['PHP_SELF'] . "'>" . __('Back') . "</a></div>"; } } if (!isset($_POST["update_ok"])) { if (!isset($_GET['check'])) { $_GET['check'] = 'all'; } if (!isset($_GET['start'])) { $_GET['start'] = 0; } PluginOcsinventoryngOcsServer::manageDeleted($_SESSION["plugin_ocsinventoryng_ocsservers_id"]); if ($display_list) { PluginOcsinventoryngOcsServer::showComputersToUpdate($_SESSION["plugin_ocsinventoryng_ocsservers_id"], $_GET['check'], $_GET['start']); } } else { if (count($_POST['toupdate']) > 0) { $_SESSION["ocs_update_count"] = 0; foreach ($_POST['toupdate'] as $key => $val) { if ($val == "on") { $_SESSION["ocs_update"]['computers'][] = $key; $_SESSION["ocs_update_count"]++; } } } Html::redirect($_SERVER['PHP_SELF']); }
} $tps = microtime(true); $nbchk = 0; $nbdel = 0; $nbtodo = 0; $crit = array('is_active' => 1); foreach ($DB->request('glpi_plugin_ocsinventoryng_ocsservers', $crit) as $serv) { $ocsservers_id = $serv['id']; echo "\nServeur: " . $serv['name'] . "\n"; if (!PluginOcsinventoryngOcsServer::checkOCSconnection($ocsservers_id)) { echo "** no connexion\n"; continue; } if (isset($_GET['clean'])) { echo "+ Handle ID changes\n"; PluginOcsinventoryngOcsServer::manageDeleted($ocsservers_id); } if (isset($_GET['glpi'])) { echo "+ Search links with no computer in GLPI\n"; $query = "SELECT `glpi_plugin_ocsinventoryng_ocslinks`.`id`,\n `glpi_plugin_ocsinventoryng_ocslinks`.`ocs_deviceid`\n FROM `glpi_plugin_ocsinventoryng_ocslinks`\n LEFT JOIN `glpi_computers`\n ON `glpi_computers`.`id`=`glpi_plugin_ocsinventoryng_ocslinks`.`computers_id`\n WHERE `glpi_computers`.`id` IS NULL\n AND `plugin_ocsinventoryng_ocsservers_id`='{$ocsservers_id}'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { while ($data = $DB->fetch_array($result)) { $nbchk++; printf("%12d : %s\n", $data['id'], $data['ocs_deviceid']); if (isset($_GET['clean'])) { $query2 = "DELETE\n FROM `glpi_plugin_ocsinventoryng_ocslinks`\n WHERE `id` = '" . $data['id'] . "'"; if ($DB->query($query2)) { $nbdel++; } } else {
/** * @param $ocsservers_id integer the OCS server id **/ function FirstPass($ocsservers_id) { global $DB, $PluginOcsinventoryngDBocs; if (PluginOcsinventoryngOcsServer::checkOCSconnection($ocsservers_id)) { // Compute lastest new computer $query = "SELECT MAX(`ID`)\n FROM `hardware`"; $max_id = 0; if ($result = $PluginOcsinventoryngDBocs->query($query)) { if ($PluginOcsinventoryngDBocs->numrows($result) > 0) { $max_id = $PluginOcsinventoryngDBocs->result($result, 0, 0); } } // Compute lastest synchronization date $query = "SELECT MAX(`last_ocs_update`)\n FROM `glpi_plugin_ocsinventoryng_ocslinks`\n WHERE `plugin_ocsinventoryng_ocsservers_id` = '{$ocsservers_id}'"; $max_date = "0000-00-00 00:00:00"; if ($result = $DB->query($query)) { if ($DB->numrows($result) > 0) { if ($DB->result($result, 0, 0) != '') { $max_date = $DB->result($result, 0, 0); } } } // Store result for second pass (multi-thread) $server = new PluginOcsinventoryngServer(); $fields["max_ocsid"] = $max_id; $fields["max_glpidate"] = $max_date; $fields["plugin_ocsinventoryng_ocsservers_id"] = $ocsservers_id; if ($server->getFromDBbyOcsServer($ocsservers_id)) { $fields["id"] = $server->fields["id"]; $server->update($fields); } else { $fields["id"] = $server->add($fields); } // Handle ID changed or PC deleted in OCS. $cfg_ocs = PluginOcsinventoryngOcsServer::getConfig($ocsservers_id); echo "\tManage delete items in OCS server #{$ocsservers_id}: \"" . $cfg_ocs["name"] . "\"\n"; PluginOcsinventoryngOcsServer::manageDeleted($ocsservers_id); } else { echo "*** Can't connect to OCS server #{$ocsservers_id} ***"; } }
/** * @param $ocsservers_id integer the OCS server id **/ function FirstPass($ocsservers_id) { global $DB; if (PluginOcsinventoryngOcsServer::checkOCSconnection($ocsservers_id)) { $ocsClient = PluginOcsinventoryngOcsServer::getDBocs($ocsservers_id); // Compute lastest new computer $ocsResult = $ocsClient->getComputers(array('COMPLETE' => '0', 'MAX_RECORDS' => 1, 'ORDER' => 'ID DESC')); if (count($ocsResult['COMPUTERS'])) { $max_id = key($ocsResult['COMPUTERS']); } else { $max_id = 0; } // Compute lastest synchronization date $query = "SELECT MAX(`last_ocs_update`)\n FROM `glpi_plugin_ocsinventoryng_ocslinks`\n WHERE `plugin_ocsinventoryng_ocsservers_id` = '{$ocsservers_id}'"; $max_date = "0000-00-00 00:00:00"; if ($result = $DB->query($query)) { if ($DB->numrows($result) > 0) { if ($DB->result($result, 0, 0) != '') { $max_date = $DB->result($result, 0, 0); } } } // Store result for second pass (multi-thread) $server = new PluginOcsinventoryngServer(); $fields["max_ocsid"] = $max_id; $fields["max_glpidate"] = $max_date; $fields["plugin_ocsinventoryng_ocsservers_id"] = $ocsservers_id; if ($server->getFromDBbyOcsServer($ocsservers_id)) { $fields["id"] = $server->fields["id"]; $server->update($fields); } else { $fields["id"] = $server->add($fields); } // Handle ID changed or PC deleted in OCS. $cfg_ocs = PluginOcsinventoryngOcsServer::getConfig($ocsservers_id); echo "\tManage delete items in OCS server #{$ocsservers_id}: \"" . $cfg_ocs["name"] . "\"\n"; PluginOcsinventoryngOcsServer::manageDeleted($ocsservers_id, false); } else { echo "*** Can't connect to OCS server #{$ocsservers_id} ***"; } }