Esempio n. 1
0
/**
 * @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} ***";
    }
}