/** * @test */ public function prepareTask() { global $DB; // Verify prepare a network discovery task $DB->connect(); PluginFusioninventoryTask::cronTaskscheduler(); $pfTask = new PluginFusioninventoryTask(); $data = $pfTask->getJoblogs(array(1)); $ref = array(2 => 'computer2'); $this->assertEquals($ref, $data['agents']); }
/** * @test */ public function PrinterToInventoryWithoutIP() { self::restore_database(); $printer = new Printer(); $networkport = new NetworkPort(); $networkName = new NetworkName(); $pfPrinter = new PluginFusioninventoryPrinter(); $pfTask = new PluginFusioninventoryTask(); $pfTaskjob = new PluginFusioninventoryTaskjob(); $computer = new Computer(); $pfAgent = new PluginFusioninventoryAgent(); $communication = new PluginFusioninventoryCommunication(); // Create computers + agents $input = array('entities_id' => 0, 'name' => 'computer1'); $computers_id = $computer->add($input); $input = array('entities_id' => 0, 'name' => 'computer1', 'version' => '{"INVENTORY":"v2.3.11"}', 'device_id' => 'computer1', 'useragent' => 'FusionInventory-Agent_v2.3.11', 'computers_id' => $computers_id); $pfAgent->add($input); // Create printer $input = array('name' => 'printer 001', 'entities_id' => 0); $printers_id = $printer->add($input); // Add port $networkports_id = $networkport->add(array('itemtype' => 'Printer', 'instantiation_type' => 'NetworkPortEthernet', 'items_id' => $printers_id, 'entities_id' => 0)); $networknames_id = $networkName->add(array('entities_id' => 0, 'itemtype' => 'NetworkPort', 'items_id' => $networkports_id)); $input = array('printers_id' => 1, 'plugin_fusioninventory_configsecurities_id' => 2); $pfPrinter->add($input); // Add task // create task $input = array('entities_id' => 0, 'name' => 'network inventory', 'is_active' => 1); $tasks_id = $pfTask->add($input); // create taskjob $input = array('plugin_fusioninventory_tasks_id' => $tasks_id, 'entities_id' => 0, 'name' => 'inventory', 'method' => 'networkinventory', 'targets' => '[{"Printer":"' . $printers_id . '"}]', 'actors' => '[{"PluginFusioninventoryAgent":"1"}]'); $pfTaskjob->add($input); PluginFusioninventoryTask::cronTaskscheduler(); $data = $pfTask->getJoblogs(array(1)); // Task is prepared // Agent will get data $communication->getTaskAgent(1); $message = $communication->getMessage(); $json = json_encode($message); $array = json_decode($json, TRUE); $ref = array(); $this->assertEquals($ref, $array, 'XML of SNMP inventory task'); }
#!/usr/bin/php <?php $doc = <<<DOC prepare_jobs.php Usage: prepare_jobs.php [-h | -q | -d ] -h, --help show this help -q, --quiet run quietly -d, --debug display more execution messages DOC; chdir(dirname($_SERVER["SCRIPT_FILENAME"])); include "../../../inc/includes.php"; include "./docopt.php"; require "./logging.php"; $_SESSION["glpicronuserrunning"] = 1; /** * Process arguments passed to the script */ $docopt = new \Docopt\Handler(); $args = $docopt->handle($doc); $logger = new Logging(); $logger->setLevelFromArgs($args['--quiet'], $args['--debug']); $task = new PluginFusioninventoryTask(); $task->cronTaskscheduler();
/** * @test */ public function prepareTaskDisabled() { global $DB; $DB->connect(); $pfTask = new PluginFusioninventoryTask(); $pfTask->update(array('id' => 1, 'is_active' => 0)); PluginFusioninventoryTask::cronTaskscheduler(); $data = $pfTask->getJoblogs(array(1)); $ref = array(); $this->assertEquals($ref, $data['agents'], 'Task inactive, so no agent prepared'); $ref_prepared = array(); $this->assertEquals($ref_prepared, $data['tasks']); }