diff --git a/hassio/api/util.py b/hassio/api/util.py index 671073c1d..b04451a1c 100644 --- a/hassio/api/util.py +++ b/hassio/api/util.py @@ -87,9 +87,6 @@ def api_process_raw(content): def api_return_error(message=None): """Return a API error message.""" - if message: - _LOGGER.error(message) - return web.json_response({ JSON_RESULT: RESULT_ERROR, JSON_MESSAGE: message, diff --git a/hassio/dock/homeassistant.py b/hassio/dock/homeassistant.py index ee9ee3460..9dc4847cd 100644 --- a/hassio/dock/homeassistant.py +++ b/hassio/dock/homeassistant.py @@ -103,15 +103,15 @@ class DockerHomeAssistant(DockerBase): ) # wait until command is done - container.wait() + exit_code = container.wait() output = container.logs() except docker.errors.DockerException as err: _LOGGER.error("Can't execute command -> %s", err) - return b"" + return (None, b"") # cleanup container with suppress(docker.errors.DockerException): container.remove(force=True) - return output + return (exit_code, output) diff --git a/hassio/homeassistant.py b/hassio/homeassistant.py index 5e2f044f0..280876a81 100644 --- a/hassio/homeassistant.py +++ b/hassio/homeassistant.py @@ -13,7 +13,7 @@ from .validate import SCHEMA_HASS_CONFIG _LOGGER = logging.getLogger(__name__) -RE_CONFIG_CHECK = re.compile(r"error", re.IGNORECASE) +RE_YAML_ERROR = re.compile(r"homeassistant\.util\.yaml") class HomeAssistant(JsonConfig): @@ -171,17 +171,16 @@ class HomeAssistant(JsonConfig): async def check_config(self): """Run homeassistant config check.""" - log = await self.docker.execute_command( + exit_code, log = await self.docker.execute_command( "python3 -m homeassistant -c /config --script check_config" ) # if not valid - if not log: + if exit_code is None: return (False, "") # parse output log = convert_to_ascii(log) - if RE_CONFIG_CHECK.search(log): + if exit_code != 0 or RE_YAML_ERROR.search(log): return (False, log) - return (True, log)