. ------------------------------------------------------------------------ @package FusionInventory @author Walid Nouh @co-author @copyright Copyright (c) 2010-2011 FusionInventory team @license AGPL License 3.0 or (at your option) any later version http://www.gnu.org/licenses/agpl-3.0-standalone.html @link http://www.fusioninventory.org/ @link http://forge.fusioninventory.org/projects/fusioninventory-for-glpi/ @since 2010 ------------------------------------------------------------------------ */ include ("../../../inc/includes.php"); Session::checkCentralAccess(); header("Content-Type: text/json; charset=UTF-8"); Html::header_nocache(); if (isset($_REQUEST['id'])) { $agent = new PluginFusioninventoryAgent; $agent->getFromDB((int) $_REQUEST['id']); if (isset($_REQUEST['action'])) { switch ($_REQUEST['action']) { case "get_status": $agentStatus = $agent->getStatus(); $agentStatus['waiting'] = false; switch ($agentStatus['message']) { case 'executing scheduled tasks': case 'running': $agentStatus['message'] = __('Running'); break; case 'noanswer': $agentStatus['message'] = "". __('cannot contact the agent', 'fusioninventory'); break; case 'waiting': $agentStatus['waiting'] = true; $agentStatus['message'] = sprintf( __('Available on %1$s', 'fusioninventory'), '' . $agentStatus['url_ok'] . '' ); break; default: if (strstr($agentStatus['message'], 'running')) { $agentStatus['message'] = $agentStatus['message']; } else { $agentStatus['message'] = "SELinux problem, do 'setsebool -P httpd_can_network_connect on'"; } break; } echo json_encode($agentStatus); break; case "start_agent"; if ($agent->wakeUp()) { Session::addMessageAfterRedirect(__('The agent is running', 'fusioninventory')); $response = [ 'status' => 'ok' ]; } else { Session::addMessageAfterRedirect(__('Impossible to communicate with agent!', 'fusioninventory')); $response = [ 'status' => 'ko' ]; } echo json_encode($response); break; } } }