mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-24 12:29:08 +00:00
Docker events based watchdog and docker healthchecks (#3725)
* Docker events based watchdog * Separate monitor from DockerAPI since it needs coresys * Move monitor into dockerAPI * Fix properties on coresys * Add watchdog tests * Added tests * pylint issue * Current state failures test * Thread-safe event processing * Use labels property
This commit is contained in:
@@ -27,7 +27,8 @@ from supervisor.dbus.network import NetworkManager
|
||||
from supervisor.dbus.resolved import Resolved
|
||||
from supervisor.dbus.systemd import Systemd
|
||||
from supervisor.dbus.timedate import TimeDate
|
||||
from supervisor.docker import DockerAPI
|
||||
from supervisor.docker.manager import DockerAPI
|
||||
from supervisor.docker.monitor import DockerMonitor
|
||||
from supervisor.store.addon import AddonStore
|
||||
from supervisor.store.repository import Repository
|
||||
from supervisor.utils.dbus import DBus
|
||||
@@ -48,20 +49,28 @@ def docker() -> DockerAPI:
|
||||
"""Mock DockerAPI."""
|
||||
images = [MagicMock(tags=["ghcr.io/home-assistant/amd64-hassio-supervisor:latest"])]
|
||||
|
||||
with patch("supervisor.docker.DockerClient", return_value=MagicMock()), patch(
|
||||
"supervisor.docker.DockerAPI.images", return_value=MagicMock()
|
||||
), patch("supervisor.docker.DockerAPI.containers", return_value=MagicMock()), patch(
|
||||
"supervisor.docker.DockerAPI.api", return_value=MagicMock()
|
||||
with patch(
|
||||
"supervisor.docker.manager.DockerClient", return_value=MagicMock()
|
||||
), patch(
|
||||
"supervisor.docker.DockerAPI.images.list", return_value=images
|
||||
"supervisor.docker.manager.DockerAPI.images", return_value=MagicMock()
|
||||
), patch(
|
||||
"supervisor.docker.DockerAPI.info",
|
||||
"supervisor.docker.manager.DockerAPI.containers", return_value=MagicMock()
|
||||
), patch(
|
||||
"supervisor.docker.manager.DockerAPI.api", return_value=MagicMock()
|
||||
), patch(
|
||||
"supervisor.docker.manager.DockerAPI.images.list", return_value=images
|
||||
), patch(
|
||||
"supervisor.docker.manager.DockerAPI.info",
|
||||
return_value=MagicMock(),
|
||||
), patch(
|
||||
"supervisor.docker.DockerConfig",
|
||||
"supervisor.docker.manager.DockerConfig",
|
||||
return_value=MagicMock(),
|
||||
), patch(
|
||||
"supervisor.docker.manager.DockerAPI.load"
|
||||
), patch(
|
||||
"supervisor.docker.manager.DockerAPI.unload"
|
||||
):
|
||||
docker_obj = DockerAPI()
|
||||
docker_obj = DockerAPI(MagicMock())
|
||||
docker_obj.info.logging = "journald"
|
||||
docker_obj.info.storage = "overlay2"
|
||||
docker_obj.info.version = "1.0.0"
|
||||
@@ -219,6 +228,7 @@ async def coresys(loop, docker, network_manager, aiohttp_client, run_dir) -> Cor
|
||||
|
||||
# Mock docker
|
||||
coresys_obj._docker = docker
|
||||
coresys_obj.docker._monitor = DockerMonitor(coresys_obj)
|
||||
|
||||
# Set internet state
|
||||
coresys_obj.supervisor._connectivity = True
|
||||
|
||||
Reference in New Issue
Block a user