From cec39077ba781d95dd695e306378d1250389fe91 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 18 Apr 2017 00:25:50 +0200 Subject: [PATCH] Fix HassIO timeout bug (#7155) * Fix HassIO timeout bug * fix lint * Add long polling timeout to stop event --- homeassistant/components/hassio.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/hassio.py b/homeassistant/components/hassio.py index 154be0917bb..25da7a67f4b 100644 --- a/homeassistant/components/hassio.py +++ b/homeassistant/components/hassio.py @@ -131,7 +131,8 @@ def async_setup(hass, config): elif service.service == SERVICE_ADDON_START: yield from hassio.send_command("/addons/{}/start".format(addon)) elif service.service == SERVICE_ADDON_STOP: - yield from hassio.send_command("/addons/{}/stop".format(addon)) + yield from hassio.send_command( + "/addons/{}/stop".format(addon), timeout=LONG_TASK_TIMEOUT) elif service.service == SERVICE_ADDON_UPDATE: yield from hassio.send_command( "/addons/{}/update".format(addon), payload=version, @@ -168,8 +169,10 @@ class HassIO(object): @asyncio.coroutine def send_command(self, cmd, payload=None, timeout=DEFAULT_TIMEOUT): """Send request to API.""" - answer = yield from self.send_raw(cmd, payload=payload) - if answer['result'] == 'ok': + answer = yield from self.send_raw( + cmd, payload=payload, timeout=timeout + ) + if answer and answer['result'] == 'ok': return answer['data'] if answer['data'] else True _LOGGER.error("%s return error %s.", cmd, answer['message'])