mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-08 09:46:29 +00:00
Abstract restart logic
This commit is contained in:
parent
6a84829c16
commit
92d5b14cf5
@ -264,31 +264,6 @@ class DockerInterface(CoreSysAttributes):
|
|||||||
except docker.errors.DockerException as err:
|
except docker.errors.DockerException as err:
|
||||||
_LOGGER.warning("Can't grap logs from %s: %s", self.image, err)
|
_LOGGER.warning("Can't grap logs from %s: %s", self.image, err)
|
||||||
|
|
||||||
@process_lock
|
|
||||||
def restart(self):
|
|
||||||
"""Restart docker container."""
|
|
||||||
return self._loop.run_in_executor(None, self._restart)
|
|
||||||
|
|
||||||
def _restart(self):
|
|
||||||
"""Restart docker container.
|
|
||||||
|
|
||||||
Need run inside executor.
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
container = self._docker.containers.get(self.name)
|
|
||||||
except docker.errors.DockerException:
|
|
||||||
return False
|
|
||||||
|
|
||||||
_LOGGER.info("Restart %s", self.image)
|
|
||||||
|
|
||||||
try:
|
|
||||||
container.restart(timeout=self.timeout)
|
|
||||||
except docker.errors.DockerException as err:
|
|
||||||
_LOGGER.warning("Can't restart %s: %s", self.image, err)
|
|
||||||
return False
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
@process_lock
|
@process_lock
|
||||||
def cleanup(self):
|
def cleanup(self):
|
||||||
"""Check if old version exists and cleanup."""
|
"""Check if old version exists and cleanup."""
|
||||||
|
@ -218,15 +218,17 @@ class HomeAssistant(JsonConfig, CoreSysAttributes):
|
|||||||
"""Start HomeAssistant docker & wait."""
|
"""Start HomeAssistant docker & wait."""
|
||||||
if await self.instance.run():
|
if await self.instance.run():
|
||||||
await self._block_till_run()
|
await self._block_till_run()
|
||||||
|
return False
|
||||||
|
|
||||||
@process_lock
|
@process_lock
|
||||||
async def start(self):
|
def start(self):
|
||||||
"""Run HomeAssistant docker."""
|
"""Run HomeAssistant docker.
|
||||||
if not await self.instance.run():
|
|
||||||
return False
|
|
||||||
|
|
||||||
return await self._block_till_run()
|
Return a coroutine.
|
||||||
|
"""
|
||||||
|
return self._start()
|
||||||
|
|
||||||
|
@process_lock
|
||||||
def stop(self):
|
def stop(self):
|
||||||
"""Stop HomeAssistant docker.
|
"""Stop HomeAssistant docker.
|
||||||
|
|
||||||
@ -237,10 +239,8 @@ class HomeAssistant(JsonConfig, CoreSysAttributes):
|
|||||||
@process_lock
|
@process_lock
|
||||||
async def restart(self):
|
async def restart(self):
|
||||||
"""Restart HomeAssistant docker."""
|
"""Restart HomeAssistant docker."""
|
||||||
if not await self.instance.restart():
|
await self.instance.stop()
|
||||||
return False
|
return await self._start()
|
||||||
|
|
||||||
return await self._block_till_run()
|
|
||||||
|
|
||||||
def logs(self):
|
def logs(self):
|
||||||
"""Get HomeAssistant docker logs.
|
"""Get HomeAssistant docker logs.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user