| 
									
										
										
										
											2024-10-19 13:09:16 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 14:22:27 +00:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2024-11-29 16:08:56 +00:00
										 |  |  |  * Jilo components status checks | 
					
						
							| 
									
										
										
										
											2024-11-26 14:22:27 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2024-10-19 13:09:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-22 15:03:34 +00:00
										 |  |  | require '../app/classes/agent.php'; | 
					
						
							|  |  |  | $agentObject = new Agent($dbWeb); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 13:09:16 +00:00
										 |  |  | include '../app/templates/status-server.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 14:22:27 +00:00
										 |  |  | // loop through all platforms to check their agents
 | 
					
						
							| 
									
										
										
										
											2024-10-22 15:03:34 +00:00
										 |  |  | foreach ($platformsAll as $platform) { | 
					
						
							| 
									
										
										
										
											2024-10-23 10:06:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-22 15:03:34 +00:00
										 |  |  |     include '../app/templates/status-platform.php'; | 
					
						
							| 
									
										
										
										
											2024-10-23 10:06:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 14:22:27 +00:00
										 |  |  |     // fetch agent details for the current platform
 | 
					
						
							| 
									
										
										
										
											2024-10-22 15:03:34 +00:00
										 |  |  |     $agentDetails = $agentObject->getAgentDetails($platform['id']); | 
					
						
							|  |  |  |     foreach ($agentDetails as $agent) { | 
					
						
							| 
									
										
										
										
											2024-10-23 10:06:59 +00:00
										 |  |  |         $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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-11-26 14:22:27 +00:00
										 |  |  |         // determine agent availability based on response data
 | 
					
						
							| 
									
										
										
										
											2024-10-23 10:06:59 +00:00
										 |  |  |         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'; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-22 15:03:34 +00:00
										 |  |  |         include '../app/templates/status-agent.php'; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-10-19 13:09:16 +00:00
										 |  |  | ?>
 |