.
------------------------------------------------------------------------
@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;
}
}
}