/** * @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'); }
/** * Import IPs * * @param $p_ips IPs code to import * @param $networkequipments_id id of network equipment * * @return errors string to be alimented if import ko / '' if ok **/ function internalPorts($a_ips, $networkequipments_id, $mac, $networkname_name) { $networkPort = new NetworkPort(); $iPAddress = new IPAddress(); $pfUnmanaged = new PluginFusioninventoryUnmanaged(); $networkName = new NetworkName(); // Get agregated ports $a_networkPortAggregates = current($networkPort->find("`itemtype`='NetworkEquipment'\n AND `items_id`='" . $networkequipments_id . "'\n AND `instantiation_type`='NetworkPortAggregate'\n AND `logical_number` = '0'", '', 1)); $a_ips_DB = array(); $networkports_id = 0; if (isset($a_networkPortAggregates['id'])) { $a_networkPortAggregates['mac'] = $mac; $networkPort->update($a_networkPortAggregates); $networkports_id = $a_networkPortAggregates['id']; } else { $input = array(); $input['itemtype'] = 'NetworkEquipment'; $input['items_id'] = $networkequipments_id; $input['instantiation_type'] = 'NetworkPortAggregate'; $input['name'] = 'general'; $input['mac'] = $mac; $networkports_id = $networkPort->add($input); } // Get networkname $a_networknames_find = current($networkName->find("`items_id`='" . $networkports_id . "'\n AND `itemtype`='NetworkPort'", "", 1)); $networknames_id = 0; if (isset($a_networknames_find['id'])) { $networknames_id = $a_networknames_find['id']; $a_networknames_find['name'] = $networkname_name; $networkName->update($a_networknames_find); } else { $input = array(); $input['items_id'] = $networkports_id; $input['itemtype'] = 'NetworkPort'; $input['name'] = $networkname_name; $networknames_id = $networkName->add($input); } $a_ips_fromDB = $iPAddress->find("`itemtype`='NetworkName'\n AND `items_id`='" . $networknames_id . "'"); foreach ($a_ips_fromDB as $data) { $a_ips_DB[$data['id']] = $data['name']; } foreach ($a_ips as $key => $ip) { foreach ($a_ips_DB as $keydb => $ipdb) { if ($ip == $ipdb) { unset($a_ips[$key]); unset($a_ips_DB[$keydb]); break; } } } if (count($a_ips) == 0 and count($a_ips_DB) == 0) { // Nothing to do } else { if (count($a_ips_DB) != 0 && count($a_ips) != 0) { // Delete IPs in DB foreach ($a_ips_DB as $idtmp => $ip) { $iPAddress->delete(array('id' => $idtmp)); } } if (count($a_ips) != 0) { foreach ($a_ips as $ip) { if ($ip != '127.0.0.1') { $input = array(); $input['entities_id'] = 0; $input['itemtype'] = 'NetworkName'; $input['items_id'] = $networknames_id; $input['name'] = $ip; $iPAddress->add($input); // Search in unmanaged device if device with IP (LLDP) is yet added, in this case, // we get id of this unmanaged device $a_manageds = $pfUnmanaged->find("`ip`='" . $ip . "'", "", 1); if (count($a_manageds) > 0) { $datas = current($a_unmanageds); $this->unmanagedCDP = $datas['id']; } } } } } }