function generatemodels() { global $DB; $ptmi = new PluginFusioninventoryModelInfos(); $ptmn = new PluginFusioninventoryMib(); $query = "SELECT glpi_plugin_fusioninventory_construct_device.ID, type FROM glpi_plugin_fusioninventory_construct_device\n LEFT JOIN glpi_plugin_fusioninventory_construct_walks on glpi_plugin_fusioninventory_construct_device.ID = construct_device_id\n WHERE type IN (1,2,3)\n AND log!=''"; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { // Load mibs $a_mib = array(); $count_mib = 0; $query_mibs = "SELECT * FROM glpi_plugin_fusioninventory_construct_mibs\n WHERE construct_device_id='" . $data["ID"] . "' "; if ($result_mibs = $DB->query($query_mibs)) { while ($data_mibs = $DB->fetch_array($result_mibs)) { $a_mib[$data_mibs['mib_oid_id']]['mapping_type'] = $data_mibs['mapping_type']; $a_mib[$data_mibs['mib_oid_id']]['mapping_name'] = $data_mibs['mapping_name']; $a_mib[$data_mibs['mib_oid_id']]['oid_port_counter'] = $data_mibs['oid_port_counter']; $a_mib[$data_mibs['mib_oid_id']]['oid_port_dyn'] = $data_mibs['oid_port_dyn']; $a_mib[$data_mibs['mib_oid_id']]['vlan'] = $data_mibs['vlan']; $count_mib++; } } // See if model exactly exists $query_models = "SELECT * FROM glpi_plugin_fusioninventory_model_infos"; $existent = 0; if ($result_models = $DB->query($query_models)) { while ($data_models = $DB->fetch_array($result_models)) { if ($existent != '1') { $count_mib_model = 0; $query_mibs_model = "SELECT * FROM glpi_plugin_fusioninventory_mib\n WHERE FK_model_infos='" . $data_models['ID'] . "' "; if ($result_mib_model = $DB->query($query_mibs_model)) { while ($data_mib_model = $DB->fetch_array($result_mib_model)) { $count_mib_model++; if ($existent != '-1') { if (isset($a_mib[$data_mib_model['FK_mib_oid']]['mapping_type'])) { // Oid Existe, on vérifie si tous les paramètres sont pareils if ($a_mib[$data_mib_model['FK_mib_oid']]['mapping_type'] == $data_mib_model['mapping_type'] and $a_mib[$data_mib_model['FK_mib_oid']]['mapping_name'] == $data_mib_model['mapping_name'] and $a_mib[$data_mib_model['FK_mib_oid']]['oid_port_counter'] == $data_mib_model['oid_port_counter'] and $a_mib[$data_mib_model['FK_mib_oid']]['oid_port_dyn'] == $data_mib_model['oid_port_dyn'] and $a_mib[$data_mib_model['FK_mib_oid']]['vlan'] == $data_mib_model['vlan']) { } else { $existent = '-1'; } } else { $existent = '-1'; } } } } if ($existent == '0' and $count_mib == $count_mib_model) { // Add number in database $query_update = "UPDATE glpi_plugin_fusioninventory_construct_device\n SET snmpmodel_id='" . $data_models['ID'] . "'\n WHERE ID='" . $data["ID"] . "'"; $DB->query($query_update); $existent = 1; } else { $existent = 0; } } } } if ($existent != '1') { // Create model $a_input = array(); $a_input['name'] = rand(10000, 10000000); $a_input['device_type'] = $data["type"]; $a_input['activation'] = 1; $id = $ptmi->add($a_input); $query_mibs = "SELECT * FROM glpi_plugin_fusioninventory_construct_mibs\n WHERE construct_device_id='" . $data["ID"] . "' "; if ($result_mibs = $DB->query($query_mibs)) { while ($data_mibs = $DB->fetch_array($result_mibs)) { $a_input = array(); $a_input['FK_model_infos'] = $id; $a_input['FK_mib_oid'] = $data_mibs['mib_oid_id']; $a_input['oid_port_counter'] = $data_mibs['oid_port_counter']; $a_input['oid_port_dyn'] = $data_mibs['oid_port_dyn']; $a_input['vlan'] = $data_mibs['vlan']; $a_input['links_oid_fields'] = $data_mibs['mapping_type'] . "||" . $data_mibs['mapping_name']; $a_input['activation'] = 1; $ptmn->add($a_input); } } $query_update = "UPDATE glpi_plugin_fusioninventory_construct_device\n SET snmpmodel_id='" . $id . "'\n WHERE ID='" . $data["ID"] . "'"; $DB->query($query_update); } } } // Add Number //key : Networking0006 $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE discovery_key LIKE 'Networking%'\n ORDER BY discovery_key DESC\n LIMIT 1"; $result = $DB->query($query); $data = $DB->fetch_assoc($result); $num = 1; if (!empty($data['discovery_key'])) { $num = str_replace('Networking', '', $data['discovery_key']); $num++; } $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE (discovery_key IS NULL OR discovery_key='')\n AND device_type='" . NETWORKING_TYPE . "' "; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { while (strlen($num) < 4) { $num = "0" . $num; } $query_update = "UPDATE glpi_plugin_fusioninventory_model_infos\n SET discovery_key='Networking" . $num . "'\n WHERE ID='" . $data['ID'] . "'"; $DB->query($query_update); $num++; } } // Printers $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE discovery_key LIKE 'Printer%'\n ORDER BY discovery_key DESC\n LIMIT 1"; $result = $DB->query($query); $data = $DB->fetch_assoc($result); if (empty($data['discovery_key'])) { $num = '1'; } else { $num = str_replace('Networking', '', $data['discovery_key']); $num++; } $query = "SELECT * FROM glpi_plugin_fusioninventory_model_infos\n WHERE (discovery_key IS NULL OR discovery_key='')\n AND device_type='" . PRINTER_TYPE . "' "; if ($result = $DB->query($query)) { while ($data = $DB->fetch_array($result)) { while (strlen($num) < 4) { $num = "0" . $num; } $query_update = "UPDATE glpi_plugin_fusioninventory_model_infos\n SET discovery_key='Printer" . $num . "'\n WHERE ID='" . $data['ID'] . "'"; $DB->query($query_update); $num++; } } }
$plugin_fusioninventory_mib_networking->activation($_GET["activation"]); glpi_header($_SERVER['HTTP_REFERER']); } else { if (isset($_POST['massimport'])) { PluginFusioninventoryAuth::checkRight("snmp_models", "w"); $importexport->importMass(); glpi_header($_SERVER['HTTP_REFERER']); } } } } } } if (isset($_POST["add_oid"])) { PluginFusioninventoryAuth::checkRight("snmp_models", "w"); $plugin_fusioninventory_mib_networking->add($_POST); glpi_header($_SERVER['HTTP_REFERER']); } if (PluginFusioninventory::HaveRight("snmp_models", "r")) { $importexport->showForm($_SERVER["PHP_SELF"]); $importexport->showFormMassImport($_SERVER["PHP_SELF"]); } $ID = ""; if (isset($_GET["ID"])) { $ID = $_GET["ID"]; } if (!empty($_POST["item_coche"])) { PluginFusioninventoryAuth::checkRight("snmp_models", "w"); $plugin_fusioninventory_mib_networking->deleteMib($_POST["item_coche"]); glpi_header($_SERVER['HTTP_REFERER']); }