From 13c10dbb47d6b2f288d67ba659759ae25022f670 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Fri, 5 Aug 2022 10:04:34 -0400 Subject: [PATCH] Healthy/Unhealthy state means addon started (#3773) --- supervisor/addons/addon.py | 6 +++++- tests/addons/test_addon.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/supervisor/addons/addon.py b/supervisor/addons/addon.py index 6c5b69430..41f46513a 100644 --- a/supervisor/addons/addon.py +++ b/supervisor/addons/addon.py @@ -888,7 +888,11 @@ class Addon(AddonModel): if event.name != self.instance.name: return - if event.state == ContainerState.RUNNING: + if event.state in [ + ContainerState.RUNNING, + ContainerState.HEALTHY, + ContainerState.UNHEALTHY, + ]: self.state = AddonState.STARTED elif event.state == ContainerState.STOPPED: self.state = AddonState.STOPPED diff --git a/tests/addons/test_addon.py b/tests/addons/test_addon.py index f3b1fabc7..bebd03f17 100644 --- a/tests/addons/test_addon.py +++ b/tests/addons/test_addon.py @@ -99,6 +99,18 @@ async def test_addon_state_listener(coresys: CoreSys, install_addon_ssh: Addon) await asyncio.sleep(0) assert install_addon_ssh.state == AddonState.STOPPED + coresys.bus.fire_event( + BusEvent.DOCKER_CONTAINER_STATE_CHANGE, + DockerContainerStateEvent( + name=f"addon_{TEST_ADDON_SLUG}", + state=ContainerState.HEALTHY, + id="abc123", + time=1, + ), + ) + await asyncio.sleep(0) + assert install_addon_ssh.state == AddonState.STARTED + coresys.bus.fire_event( BusEvent.DOCKER_CONTAINER_STATE_CHANGE, DockerContainerStateEvent(