From 6a3c340c0e372e54893ec93639715a8df3847afc Mon Sep 17 00:00:00 2001 From: Jean-Yves <7360784+docjyJ@users.noreply.github.com> Date: Tue, 8 Oct 2024 11:22:55 +0200 Subject: [PATCH] Add unhealthy state Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com> --- php/src/Container/ContainerState.php | 1 + php/src/Docker/DockerActionManager.php | 8 +++++--- php/templates/containers.twig | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/php/src/Container/ContainerState.php b/php/src/Container/ContainerState.php index f6481027fddb..d5c550f48eb9 100644 --- a/php/src/Container/ContainerState.php +++ b/php/src/Container/ContainerState.php @@ -9,4 +9,5 @@ enum ContainerState: string { case Running = 'running'; case Starting = 'starting'; case Stopped = 'stopped'; + case Unhealthy = 'unhealthy'; } diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php index 12a641e0869b..e980706c2c91 100644 --- a/php/src/Docker/DockerActionManager.php +++ b/php/src/Docker/DockerActionManager.php @@ -49,10 +49,12 @@ public function GetContainerRunningState(Container $container) : ContainerState $responseBody = json_decode((string)$response->getBody(), true); - if ($responseBody['State']['Running'] === true) { - return ContainerState::Running; - } else { + if ($responseBody['State']['Running'] !== true) { return ContainerState::Stopped; + } elseif(array_key_exists('Health', $responseBody['State']) && $responseBody['State']['Health']['Status'] !== 'healthy') { + return ContainerState::Unhealthy; + } else { + return ContainerState::Running; } } diff --git a/php/templates/containers.twig b/php/templates/containers.twig index 9bcef1cdc6fe..8a14bcec5d49 100644 --- a/php/templates/containers.twig +++ b/php/templates/containers.twig @@ -268,6 +268,13 @@ (docs) {% endif %} + {% elseif container.GetRunningState().value == 'unhealthy' %} + + {{ container.GetDisplayName() }} (Unhealthy) + {% if container.GetDocumentation() != '' %} + (docs) + {% endif %} + {% elseif container.GetRunningState().value == 'running' %} {{ container.GetDisplayName() }} (Running)