/** * Update agent status for a task * * @param params parameters from the GET HTTP request * * @return nothing */ static function updateLog($params = array()) { global $DB; $p = array(); $p['machineid'] = ''; //DeviceId $p['uuid'] = ''; //Task uuid $p['msg'] = 'ok'; //status of the task $p['code'] = ''; //current step of processing foreach ($params as $key => $value) { $p[$key] = $value; } //Get the agent ID by its deviceid $agent = PluginFusioninventoryAgent::getByDeviceID($p['machineid']); //No need to continue since the requested agent doesn't exists in database if ($agent === FALSE) { self::sendError(); return; } //Get task job status : identifier is the uuid given by the agent $taskjobstates = $DB->request(getTableForItemType('PluginFusioninventoryTaskjobstate'), "`uniqid`='" . $p['uuid'] . "'"); $taskjobstate = new PluginFusioninventoryTaskjobstate(); foreach ($taskjobstates as $jobstate) { $taskjobstate->getFromDB($jobstate['id']); //Get taskjoblog associated $taskjoblog = new PluginFusioninventoryTaskjobLog(); $taskjoblog->getFromDBByQuery("WHERE `plugin_fusioninventory_taskjobstates_id`=" . $jobstate['id']); switch ($p['code']) { case 'running': $taskjoblog->addTaskjoblog($taskjobstate->fields['id'], $taskjobstate->fields['items_id'], $taskjobstate->fields['itemtype'], PluginFusioninventoryTaskjoblog::TASK_RUNNING, $p['msg']); break; case 'ok': $taskjobstate->changeStatusFinish($taskjobstate->fields['id'], $taskjobstate->fields['items_id'], $taskjobstate->fields['itemtype'], 0, $p['msg']); break; case 'ko': $taskjobstate->changeStatusFinish($taskjobstate->fields['id'], $taskjobstate->fields['items_id'], $taskjobstate->fields['itemtype'], 1, $p['msg']); break; } } self::sendOk(); }