function import_netdiscovery($arrayinventory, $agentKey)
 {
     PluginFusioninventoryCommunication::addLog('Function PluginFusioninventorySnmpmodelImportExport->import_netdiscovery().');
     $ptap = new PluginFusioninventoryStateDiscovery();
     $pta = new PluginFusioninventoryAgent();
     $agent = $pta->InfosByKey($agentKey);
     if (isset($arrayinventory['AGENT']['START'])) {
         $ptap->updateState($arrayinventory['PROCESSNUMBER'], array('start_time' => date("Y-m-d H:i:s")), $agent['id']);
     } else {
         if (isset($arrayinventory['AGENT']['END'])) {
             $ptap->updateState($arrayinventory['PROCESSNUMBER'], array('end_time' => date("Y-m-d H:i:s")), $agent['id']);
         } else {
             if (isset($arrayinventory['AGENT']['EXIT'])) {
                 $ptap->endState($arrayinventory['PROCESSNUMBER'], date("Y-m-d H:i:s"), $agent['id']);
             } else {
                 if (isset($arrayinventory['AGENT']['NBIP'])) {
                     $ptap->updateState($arrayinventory['PROCESSNUMBER'], array('nb_ip' => $arrayinventory['AGENT']['NBIP']), $agent['id']);
                 }
             }
         }
     }
     if (isset($arrayinventory['AGENT']['AGENTVERSION'])) {
         $agent['last_contact'] = date("Y-m-d H:i:s");
         $pta->update($agent);
     }
     $_SESSION['glpi_plugin_fusioninventory_agentid'] = $agent['id'];
     $count_discovery_devices = 0;
     if (isset($arrayinventory['DEVICE'])) {
         if (is_int(key($arrayinventory['DEVICE']))) {
             $count_discovery_devices = count($arrayinventory['DEVICE']);
         } else {
             $count_discovery_devices = 1;
         }
     }
     if ($count_discovery_devices != "0") {
         $ptap->updateState($_SESSION['glpi_plugin_fusioninventory_processnumber'], array('nb_found' => $count_discovery_devices), $agent['id']);
         if (is_int(key($arrayinventory['DEVICE']))) {
             foreach ($arrayinventory['DEVICE'] as $discovery) {
                 if (count($discovery) > 0) {
                     $pfCommunicationNetworkDiscovery = new PluginFusioninventoryCommunicationNetworkDiscovery();
                     $pfCommunicationNetworkDiscovery->sendCriteria($discovery);
                 }
             }
         } else {
             $pfCommunicationNetworkDiscovery = new PluginFusioninventoryCommunicationNetworkDiscovery();
             $pfCommunicationNetworkDiscovery->sendCriteria($arrayinventory['DEVICE']);
         }
     }
 }
 /**
  * @test
  */
 public function PrinterDiscoveryImportDenied()
 {
     global $DB;
     $DB->connect();
     $a_inventory = array('AUTHSNMP' => '1', 'DESCRIPTION' => 'Brother NC-6400h, Firmware Ver.1.11  (06.12.20),MID 84UZ92', 'ENTITY' => '0', 'FIRMWARE' => '', 'IP' => '10.36.4.29', 'MAC' => '00:80:77:d9:51:c3', 'MANUFACTURER' => 'Brother', 'MODEL' => '', 'MODELSNMP' => 'Printer0442', 'NETBIOSNAME' => 'UH4DLPT01', 'SERIAL' => 'E8J596100A', 'SNMPHOSTNAME' => 'UH4DLPT01', 'TYPE' => 'PRINTER');
     $pfCommunicationNetworkDiscovery = new PluginFusioninventoryCommunicationNetworkDiscovery();
     $printer = new Printer();
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['taskjobs_id'] = 1;
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['items_id'] = '1';
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['itemtype'] = 'Printer';
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['state'] = 0;
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['comment'] = '';
     $pfCommunicationNetworkDiscovery->sendCriteria($a_inventory);
     $a_printers = $printer->find();
     $this->assertEquals(0, count($a_printers), 'May have only one Printer');
     $pfTaskjoblog = new PluginFusioninventoryTaskjoblog();
     $a_logs = $pfTaskjoblog->find("`comment` LIKE '%importdenied%'", '`id` DESC', 1);
     $a_log = current($a_logs);
     $this->assertEquals('==importdenied== [serial]:E8J596100A, ' . '[mac]:00:80:77:d9:51:c3, [ip]:10.36.4.29, [model]:Printer0442, ' . '[name]:UH4DLPT01, [entities_id]:0, [itemtype]:Printer', $a_log['comment'], 'Import denied message');
 }
 /**
  * @test
  * network discovery
  */
 public function IgnoreNetworkDiscoveryImport()
 {
     global $DB;
     $DB->connect();
     $a_inventory = array('DNSHOSTNAME' => 'pctest', 'ENTITY' => 0, 'IP' => '192.168.20.3');
     $pfCommunicationNetworkDiscovery = new PluginFusioninventoryCommunicationNetworkDiscovery();
     $computer = new Computer();
     $pfUnmanaged = new PluginFusioninventoryUnmanaged();
     $pfIgnoredimportdevice = new PluginFusioninventoryIgnoredimportdevice();
     $GLPIlog = new GLPIlogs();
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['taskjobs_id'] = 1;
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['items_id'] = '1';
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['itemtype'] = 'Computer';
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['state'] = 0;
     $_SESSION['plugin_fusinvsnmp_taskjoblog']['comment'] = '';
     $pfCommunicationNetworkDiscovery->sendCriteria($a_inventory);
     $a_computers = $computer->find();
     $this->assertEquals(0, count($a_computers), 'Computer may not be added');
     $a_unknown = $pfUnmanaged->find();
     $this->assertEquals(0, count($a_unknown), 'Unmanaged may not be added');
     $a_ignored = $pfIgnoredimportdevice->find();
     $this->assertEquals(1, count($a_ignored), 'May have only one ignored device import');
 }