From 92d5b14cf59322ac692463b83cbc83ed02bb904a Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 9 Apr 2018 22:13:16 +0200 Subject: [PATCH 1/3] Abstract restart logic --- hassio/docker/interface.py | 25 ------------------------- hassio/homeassistant.py | 18 +++++++++--------- 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/hassio/docker/interface.py b/hassio/docker/interface.py index 69e69052b..f14ddae46 100644 --- a/hassio/docker/interface.py +++ b/hassio/docker/interface.py @@ -264,31 +264,6 @@ class DockerInterface(CoreSysAttributes): except docker.errors.DockerException as 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 def cleanup(self): """Check if old version exists and cleanup.""" diff --git a/hassio/homeassistant.py b/hassio/homeassistant.py index 57c6af89d..cbbff13f0 100644 --- a/hassio/homeassistant.py +++ b/hassio/homeassistant.py @@ -218,15 +218,17 @@ class HomeAssistant(JsonConfig, CoreSysAttributes): """Start HomeAssistant docker & wait.""" if await self.instance.run(): await self._block_till_run() + return False @process_lock - async def start(self): - """Run HomeAssistant docker.""" - if not await self.instance.run(): - return False + def start(self): + """Run HomeAssistant docker. - return await self._block_till_run() + Return a coroutine. + """ + return self._start() + @process_lock def stop(self): """Stop HomeAssistant docker. @@ -237,10 +239,8 @@ class HomeAssistant(JsonConfig, CoreSysAttributes): @process_lock async def restart(self): """Restart HomeAssistant docker.""" - if not await self.instance.restart(): - return False - - return await self._block_till_run() + await self.instance.stop() + return await self._start() def logs(self): """Get HomeAssistant docker logs. From b692b19a4de5a8a040247fd0894562e4fda8d744 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 9 Apr 2018 22:50:21 +0200 Subject: [PATCH 2/3] Fix log bug --- hassio/api/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/api/__init__.py b/hassio/api/__init__.py index 8493b0154..c3d878751 100644 --- a/hassio/api/__init__.py +++ b/hassio/api/__init__.py @@ -80,10 +80,10 @@ class RestAPI(CoreSysAttributes): web.get('/supervisor/ping', api_supervisor.ping), web.get('/supervisor/info', api_supervisor.info), web.get('/supervisor/stats', api_supervisor.stats), + web.get('/supervisor/logs', api_supervisor.logs), web.post('/supervisor/update', api_supervisor.update), web.post('/supervisor/reload', api_supervisor.reload), web.post('/supervisor/options', api_supervisor.options), - ]) def _register_homeassistant(self): From f062f31ca2520b67542c8635ac55dca943b3a98f Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 9 Apr 2018 23:10:12 +0200 Subject: [PATCH 3/3] Fix logic --- hassio/homeassistant.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hassio/homeassistant.py b/hassio/homeassistant.py index cbbff13f0..21916cfdc 100644 --- a/hassio/homeassistant.py +++ b/hassio/homeassistant.py @@ -216,9 +216,9 @@ class HomeAssistant(JsonConfig, CoreSysAttributes): async def _start(self): """Start HomeAssistant docker & wait.""" - if await self.instance.run(): - await self._block_till_run() - return False + if not await self.instance.run(): + return False + return await self._block_till_run() @process_lock def start(self):