69 lines
2.5 KiB
PHP
69 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Jilo components status checks
|
|
*
|
|
* This page ("status") checks the status of various Jilo platform components
|
|
* by fetching data from agents and determining their availability.
|
|
* It generates output for each platform and agent.
|
|
*/
|
|
|
|
require '../app/classes/agent.php';
|
|
$agentObject = new Agent($dbWeb);
|
|
|
|
include '../app/templates/status-server.php';
|
|
|
|
// loop through all platforms to check their agents
|
|
foreach ($platformsAll as $platform) {
|
|
|
|
// check if we can connect to the jilo database
|
|
$response = connectDB($config, 'jilo', $platform['jilo_database'], $platform['id']);
|
|
if ($response['error'] !== null) {
|
|
$jilo_database_status = '<span class="text-danger">' . htmlspecialchars($response['error']) . '</span>';
|
|
} else {
|
|
$jilo_database_status = '<span class="text-success">OK</span>';
|
|
}
|
|
|
|
include '../app/templates/status-platform.php';
|
|
|
|
// fetch agent details for the current platform
|
|
$agentDetails = $agentObject->getAgentDetails($platform['id']);
|
|
foreach ($agentDetails as $agent) {
|
|
$agent_url = parse_url($agent['url']);
|
|
$agent_protocol = isset($agent_url['scheme']) ? $agent_url['scheme']: '';
|
|
$agent_host = isset($agent_url['host']) ? $agent_url['host']: '';
|
|
$agent_port = isset($agent_url['port']) ? $agent_url['port']: '';
|
|
|
|
// we get agent data to check availability
|
|
$agent_response = $agentObject->fetchAgent($agent['id'], true);
|
|
$agent_data = json_decode($agent_response);
|
|
|
|
// determine agent availability based on response data
|
|
if (json_last_error() === JSON_ERROR_NONE) {
|
|
$agent_availability = '<span class="text-warning">unknown</span>';
|
|
foreach ($agent_data as $key => $value) {
|
|
if ($key === 'error') {
|
|
$agent_availability = '<span class="text-danger">' . htmlspecialchars($value) . '</span>';
|
|
break;
|
|
}
|
|
if (preg_match('/_state$/', $key)) {
|
|
if ($value === 'error') {
|
|
$agent_availability = '<span class="text-danger">not running</span>';
|
|
break;
|
|
}
|
|
if ($value === 'running') {
|
|
$agent_availability = '<span class="text-success">running</span>';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$agent_availability = 'json error';
|
|
}
|
|
|
|
include '../app/templates/status-agent.php';
|
|
}
|
|
}
|
|
|
|
?>
|