コード例 #1
0
 /**
  * @test
  */
 public function prepareDB()
 {
     global $DB;
     $DB->connect();
     $pfDeployPackage = new PluginFusioninventoryDeployPackage();
     $pfDeployGroup = new PluginFusioninventoryDeployGroup();
     $pfTask = new PluginFusioninventoryTask();
     $pfTaskjob = new PluginFusioninventoryTaskjob();
     $pfTaskjobState = new PluginFusioninventoryTaskjobstate();
     $pfTaskjoblog = new PluginFusioninventoryTaskjoblog();
     $pfDeployGroup_Dynamicdata = new PluginFusioninventoryDeployGroup_Dynamicdata();
     // Create package
     $input = array('entities_id' => 0, 'name' => 'package');
     $packages_id = $pfDeployPackage->add($input);
     // Create fusioninventory dynamic group
     $input = array('name' => 'all computers have name computer', 'type' => 'DYNAMIC');
     $groups_id = $pfDeployGroup->add($input);
     $input = array('plugin_fusioninventory_deploygroups_id' => $groups_id, 'fields_array' => 'a:2:{s:8:"criteria";a:1:{i:0;a:3:{s:5:"field";s:1:"1";s:10:"searchtype";s:8:"contains";s:5:"value";s:8:"computer";}}s:12:"metacriteria";s:0:"";}');
     $pfDeployGroup_Dynamicdata->add($input);
     // create task
     $input = array('entities_id' => 0, 'name' => 'deploy', 'is_active' => 1);
     self::$tasks_id = $pfTask->add($input);
     // create taskjob
     $input = array('plugin_fusioninventory_tasks_id' => self::$tasks_id, 'entities_id' => 0, 'name' => 'deploy', 'method' => 'deployinstall', 'targets' => '[{"PluginFusioninventoryDeployPackage":"' . $packages_id . '"}]', 'actors' => '[{"PluginFusioninventoryDeployGroup":"' . self::$tasks_id . '"}]');
     self::$taskjobs_id = $pfTaskjob->add($input);
     //create taskjobstate
     $input = array('plugin_fusioninventory_taskjobs_id' => self::$taskjobs_id, 'items_id' => 0, 'itemtype' => 'Computer', 'state' => PluginFusioninventoryTaskjobstate::FINISHED, 'plugin_fusioninventory_agents_id' => 0, 'specificity' => 0, 'uniqid' => 0);
     self::$taskjobstates_id = $pfTaskjobState->add($input);
     //crfeate taskjoblogR
     $input = array('plugin_fusioninventory_taskjobstates_id' => self::$taskjobstates_id, 'date ' => date('Y-m-d H:i:s'), 'items_id' => 0, 'itemtype' => 'Computer', 'state' => PluginFusioninventoryTaskjoblog::TASK_RUNNING, 'comment' => "1 ==devicesfound==");
     self::$taskjoblogs_id = $pfTaskjoblog->add($input);
 }
コード例 #2
0
 /**
  * @test
  */
 public function prepareDB()
 {
     global $DB;
     $DB->connect();
     $computer = new Computer();
     $pfAgent = new PluginFusioninventoryAgent();
     $pfDeployPackage = new PluginFusioninventoryDeployPackage();
     $pfDeployGroup = new PluginFusioninventoryDeployGroup();
     $pfTask = new PluginFusioninventoryTask();
     $pfTaskjob = new PluginFusioninventoryTaskjob();
     $pfDeployGroup_Dynamicdata = new PluginFusioninventoryDeployGroup_Dynamicdata();
     // Create package
     $input = array('entities_id' => 0, 'name' => 'package');
     $packages_id = $pfDeployPackage->add($input);
     // Create fusioninventory dynamic group
     $input = array('name' => 'all computers have name computer', 'type' => 'DYNAMIC');
     $groups_id = $pfDeployGroup->add($input);
     $input = array('plugin_fusioninventory_deploygroups_id' => $groups_id, 'fields_array' => 'a:2:{s:8:"criteria";a:1:{i:0;a:3:{s:5:"field";s:1:"1";s:10:"searchtype";s:8:"contains";s:5:"value";s:8:"computer";}}s:12:"metacriteria";s:0:"";}');
     $pfDeployGroup_Dynamicdata->add($input);
     // create task
     $input = array('entities_id' => 0, 'name' => 'deploy', 'is_active' => 1);
     $tasks_id = $pfTask->add($input);
     // create takjob
     $input = array('plugin_fusioninventory_tasks_id' => $tasks_id, 'entities_id' => 0, 'name' => 'deploy', 'method' => 'deployinstall', 'targets' => '[{"PluginFusioninventoryDeployPackage":"' . $packages_id . '"}]', 'actors' => '[{"PluginFusioninventoryDeployGroup":"' . $tasks_id . '"}]');
     $pfTaskjob->add($input);
     // Create computers + agents
     $input = array('entities_id' => 0, 'name' => 'computer1');
     $computers_id = $computer->add($input);
     $input = array('entities_id' => 0, 'name' => 'portdavid', 'version' => '{"INVENTORY":"v2.3.11"}', 'device_id' => 'portdavid', 'useragent' => 'FusionInventory-Agent_v2.3.11', 'computers_id' => $computers_id);
     $pfAgent->add($input);
     $input = array('entities_id' => 0, 'name' => 'computer2');
     $computers_id = $computer->add($input);
     $input = array('entities_id' => 0, 'name' => 'computer2', 'version' => '{"INVENTORY":"v2.3.11"}', 'device_id' => 'computer2', 'useragent' => 'FusionInventory-Agent_v2.3.11', 'computers_id' => $computers_id);
     $pfAgent->add($input);
     $input = array('entities_id' => 0, 'name' => 'computer3');
     $computers_id = $computer->add($input);
     $input = array('entities_id' => 0, 'name' => 'computer3', 'version' => '{"INVENTORY":"v2.3.11"}', 'device_id' => 'computer3', 'useragent' => 'FusionInventory-Agent_v2.3.11', 'computers_id' => $computers_id);
     $pfAgent->add($input);
 }
コード例 #3
0
 public function package_clone($new_name = '')
 {
     if ($this->getField('id') < 0) {
         return FALSE;
     }
     $_SESSION['tmp_clone_package'] = TRUE;
     //duplicate package
     $package_oldId = $this->getField('id');
     if ($new_name == "") {
         $new_name = $this->getField('name');
     }
     $params = $this->fields;
     unset($params['id']);
     $params['name'] = $new_name;
     $new_package = new PluginFusioninventoryDeployPackage();
     $package_newId = $new_package->add($params);
     //duplicate orders
     $order_obj = new PluginFusioninventoryDeployOrder();
     $orders = $order_obj->find("plugin_fusioninventory_deploypackages_id = '" . $package_oldId . "'");
     foreach ($orders as $order_oldId => $order) {
         //create new order for this new package
         $order_param = array('type' => $order['type'], 'create_date' => date("Y-m-d H:i:s"), 'plugin_fusioninventory_deploypackages_id' => $package_newId);
         $order_newId = $order_obj->add($order_param);
         unset($order_param);
         //duplicate checks
         $check_obj = new PluginFusioninventoryDeployCheck();
         $checks = $check_obj->find("plugin_fusioninventory_deployorders_id = '" . $order_oldId . "'");
         foreach ($checks as $check) {
             //create new check for this new order
             unset($check['id']);
             $check['plugin_fusioninventory_deployorders_id'] = $order_newId;
             $check_obj->add($check);
         }
         //duplicate files
         $file_obj = new PluginFusioninventoryDeployFile();
         $files = $file_obj->find("plugin_fusioninventory_deployorders_id = '" . $order_oldId . "'");
         foreach ($files as $file) {
             //create new file for this new order
             unset($file['id']);
             $file['plugin_fusioninventory_deployorders_id'] = $order_newId;
             $file_newId = $file_obj->add($file);
             //duplicate fileparts
             $filepart_obj = new PluginFusioninventoryDeployFilepart();
             $fileparts = $filepart_obj->find("plugin_fusioninventory_deployfiles_id = '" . $order_oldId . "'");
             foreach ($fileparts as $filepart) {
                 //create new filepart for this new file
                 unset($filepart['id']);
                 $filepart['plugin_fusioninventory_deployorders_id'] = $order_newId;
                 $filepart['plugin_fusioninventory_deployfiles_id'] = $file_newId;
                 $filepart_obj->add($filepart);
             }
         }
         //duplicate actions
         $action_obj = new PluginFusioninventoryDeployAction();
         $actions = $action_obj->find("plugin_fusioninventory_deployorders_id = '" . $order_oldId . "'");
         foreach ($actions as $action) {
             //duplicate actions subitem
             $action_subitem_obj = new $action['itemtype']();
             $action_subitem_oldId = $action['items_id'];
             $action_subitem_obj->getFromDB($action_subitem_oldId);
             $params_subitem = $action_subitem_obj->fields;
             unset($params_subitem['id']);
             $action_subitem_newId = $action_subitem_obj->add($params_subitem);
             //special case for command, we need to duplicate commandstatus and commandenvvariables
             if ($action['itemtype'] == 'PluginFusioninventoryDeployAction_Command') {
                 $command_oldId = $action_subitem_oldId;
                 $command_newId = $action_subitem_newId;
                 //duplicate commandstatus
                 $commandstatus_obj = new PluginFusioninventoryDeployAction_Commandstatus();
                 $commandstatus = $commandstatus_obj->find("plugin_fusioninventory_deploycommands_id = '" . $command_oldId . "'");
                 foreach ($commandstatus as $commandstate) {
                     //create new commandstatus for this command
                     unset($commandstate['id']);
                     $commandstate['plugin_fusioninventory_deploycommands_id'] = $command_newId;
                     $commandstatus_obj->add($commandstate);
                 }
                 //duplicate commandenvvariables
                 $commandenvvariables_obj = new PluginFusioninventoryDeployAction_Commandenvvariable();
                 $commandenvvariables = $commandenvvariables_obj->find("plugin_fusioninventory_deploycommands_id = '" . $command_oldId . "'");
                 foreach ($commandenvvariables as $commandenvvariable) {
                     //create new commandenvvariable for this command
                     unset($commandenvvariable['id']);
                     $commandenvvariable['plugin_fusioninventory_deploycommands_id'] = $command_newId;
                     $commandenvvariables_obj->add($commandenvvariable);
                 }
             }
             //create new action for this new order
             unset($action['id']);
             $action['plugin_fusioninventory_deployorders_id'] = $order_newId;
             $action['items_id'] = $action_subitem_newId;
             $action_obj->add($action);
         }
     }
     if ($new_package->getName() == NOT_AVAILABLE) {
         $new_package->fields['name'] = $new_package->getTypeName() . " : " . __('ID') . " " . $new_package->fields['id'];
     }
     $display = isset($this->input['_no_message_link']) ? $new_package->getNameID() : $new_package->getLink();
     // Do not display quotes
     Session::addMessageAfterRedirect(__('Item successfully added', 'fusioninventory') . "&nbsp;: " . stripslashes($display));
     unset($_SESSION['tmp_clone_package']);
     //exit;
 }
コード例 #4
0
} elseif (isset($_POST['save_item'])) {
    $data = array_map(array('Toolbox', 'stripslashes_deep'), $_POST);
    PluginFusioninventoryDeployPackage::alter_json('save_item', $data);
    Html::back();
} elseif (isset($_POST['remove_item'])) {
    $data = array_map(array('Toolbox', 'stripslashes_deep'), $_POST);
    PluginFusioninventoryDeployPackage::alter_json('remove_item', $data);
    Html::back();
}
//$data = Toolbox::stripslashes_deep($_POST);
$data = $_POST;
$package = new PluginFusioninventoryDeployPackage();
//general form
if (isset($data["add"])) {
    Session::checkRight('plugin_fusioninventory_package', CREATE);
    $newID = $package->add($data);
    html::redirect(Toolbox::getItemTypeFormURL('PluginFusioninventoryDeployPackage') . "?id=" . $newID);
} else {
    if (isset($data["update"])) {
        Session::checkRight('plugin_fusioninventory_package', UPDATE);
        $package->update($data);
        Html::back();
    } else {
        if (isset($data["delete"])) {
            Session::checkRight('plugin_fusioninventory_package', PURGE);
            $package->delete($data);
            $package->redirectToList();
        }
    }
}
Html::header(__('FusionInventory DEPLOY'), $_SERVER["PHP_SELF"], "plugins", "pluginfusioninventorymenu", "deploypackage");
コード例 #5
0
 /**
  * @test
  */
 public function TaskWithPC()
 {
     $this->mark_incomplete();
     global $DB;
     $_SESSION['glpiactiveentities_string'] = 0;
     $pfDeployGroup = new PluginFusioninventoryDeployGroup();
     $pfDeployGroup_Dynamicdata = new PluginFusioninventoryDeployGroup_Dynamicdata();
     $pfDeployPackage = new PluginFusioninventoryDeployPackage();
     $pfTask = new PluginFusioninventoryTask();
     $pfTaskJob = new PluginFusioninventoryTaskjob();
     $input = array('name' => 'test', 'type' => 'DYNAMIC');
     $pfDeployGroup->add($input);
     $input = array('groups_id' => 1, 'fields_array' => '{"entities_id":"0","name":"","field":["1"],"searchtype":["contains"],"contains":["^pc"],"plugin_fusioninventory_deploygroup_dynamicdatas_id":"1","id":"1","updaterule":"Update this rule","itemtype":"Computer"}');
     $pfDeployGroup_Dynamicdata->add($input);
     $input = array('name' => 'ls', 'entities_id' => 0);
     $pfDeployPackage->add($input);
     $input = array('name' => 'deploy', 'is_active' => 1, 'communication' => 'pull');
     $pfTask->add($input);
     $a_plugins = current(getAllDatasFromTable('glpi_plugins', '`directory`="fusioninventory"'));
     $input = array('plugin_fusioninventory_tasks_id' => 1, 'name' => 'deploy', 'plugins_id' => $a_plugins['id'], 'method' => 'deployinstall', 'action' => '[{"PluginFusioninventoryDeployGroup":"1"}]');
     $pfTaskJob->add($input);
     $DB->query('UPDATE `glpi_plugin_fusioninventory_taskjobs`
      SET `definition`=\'[{"PluginFusioninventoryDeployPackage":"1"}]\'
      WHERE `id`="1"');
     // Force task prepation
     $pfTaskJob->forceRunningTask(1);
     $a_jobstates = getAllDatasFromTable("glpi_plugin_fusioninventory_taskjobstates");
     foreach ($a_jobstates as $num => $data) {
         unset($data['uniqid']);
         $a_jobstates[$num] = $data;
     }
     $a_reference = array(1 => array('id' => 1, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 1, 'specificity' => '', 'execution_id' => '0'), 2 => array('id' => 2, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 2, 'specificity' => '', 'execution_id' => '0'), 3 => array('id' => 3, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 3, 'specificity' => '', 'execution_id' => '0'), 4 => array('id' => 4, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 4, 'specificity' => '', 'execution_id' => '0'), 5 => array('id' => 5, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 5, 'specificity' => '', 'execution_id' => '0'), 6 => array('id' => 6, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 6, 'specificity' => '', 'execution_id' => '0'), 7 => array('id' => 7, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 7, 'specificity' => '', 'execution_id' => '0'), 8 => array('id' => 8, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 8, 'specificity' => '', 'execution_id' => '0'), 9 => array('id' => 9, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 9, 'specificity' => '', 'execution_id' => '0'), 10 => array('id' => 10, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 10, 'specificity' => '', 'execution_id' => '0'), 11 => array('id' => 11, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 11, 'specificity' => '', 'execution_id' => '0'), 12 => array('id' => 12, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 12, 'specificity' => '', 'execution_id' => '0'), 13 => array('id' => 13, 'plugin_fusioninventory_taskjobs_id' => 1, 'items_id' => 1, 'itemtype' => "PluginFusioninventoryDeployPackage", 'state' => 0, 'plugin_fusioninventory_agents_id' => 13, 'specificity' => '', 'execution_id' => '0'));
     $this->assertEquals($a_reference, $a_jobstates);
 }