From b4505e16cf4478bc56922829cf14c49600ab388b Mon Sep 17 00:00:00 2001 From: pvizeli Date: Fri, 21 Apr 2017 11:29:25 +0200 Subject: [PATCH 1/3] HassIO API v2 --- homeassistant/components/hassio.py | 10 ++++++++-- tests/components/test_hassio.py | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/hassio.py b/homeassistant/components/hassio.py index 25da7a67f4b19..c74918dbfa0f6 100644 --- a/homeassistant/components/hassio.py +++ b/homeassistant/components/hassio.py @@ -31,9 +31,11 @@ SERVICE_HOST_REBOOT = 'host_reboot' SERVICE_HOST_UPDATE = 'host_update' -SERVICE_SUPERVISOR_UPDATE = 'supervisor_update' SERVICE_HOMEASSISTANT_UPDATE = 'homeassistant_update' +SERVICE_SUPERVISOR_UPDATE = 'supervisor_update' +SERVICE_SUPERVISOR_RELOAD = 'supervisor_reload' + SERVICE_ADDON_INSTALL = 'addon_install' SERVICE_ADDON_UNINSTALL = 'addon_uninstall' SERVICE_ADDON_UPDATE = 'addon_update' @@ -61,8 +63,9 @@ SERVICE_HOST_SHUTDOWN: None, SERVICE_HOST_REBOOT: None, SERVICE_HOST_UPDATE: SCHEMA_SERVICE_UPDATE, - SERVICE_SUPERVISOR_UPDATE: SCHEMA_SERVICE_UPDATE, SERVICE_HOMEASSISTANT_UPDATE: SCHEMA_SERVICE_UPDATE, + SERVICE_SUPERVISOR_UPDATE: SCHEMA_SERVICE_UPDATE, + SERVICE_SUPERVISOR_RELOAD: None, SERVICE_ADDON_INSTALL: SCHEMA_SERVICE_ADDONS_VERSION, SERVICE_ADDON_UNINSTALL: SCHEMA_SERVICE_ADDONS, SERVICE_ADDON_START: SCHEMA_SERVICE_ADDONS, @@ -117,6 +120,9 @@ def async_service_handler(service): elif service.service == SERVICE_SUPERVISOR_UPDATE: yield from hassio.send_command( "/supervisor/update", payload=version) + elif service.service == SERVICE_SUPERVISOR_RELOAD: + yield from hassio.send_command( + "/supervisor/reload", timeout=LONG_TASK_TIMEOUT) elif service.service == SERVICE_HOMEASSISTANT_UPDATE: yield from hassio.send_command( "/homeassistant/update", payload=version, diff --git a/tests/components/test_hassio.py b/tests/components/test_hassio.py index bde419c410421..87589d88156f8 100644 --- a/tests/components/test_hassio.py +++ b/tests/components/test_hassio.py @@ -53,6 +53,8 @@ def test_setup_component_test_service(self, aioclient_mock): assert self.hass.services.has_service( ho.DOMAIN, ho.SERVICE_SUPERVISOR_UPDATE) + assert self.hass.services.has_service( + ho.DOMAIN, ho.SERVICE_SUPERVISOR_RELOAD) assert self.hass.services.has_service( ho.DOMAIN, ho.SERVICE_ADDON_INSTALL) @@ -216,6 +218,22 @@ def test_rest_command_http_supervisor_update(self, aioclient_mock): assert len(aioclient_mock.mock_calls) == 2 assert aioclient_mock.mock_calls[-1][2]['version'] == '0.4' + def test_rest_command_http_supervisor_reload(self, aioclient_mock): + """Call a hassio for supervisor reload.""" + aioclient_mock.get( + "http://127.0.0.1/supervisor/ping", json=self.ok_msg) + with assert_setup_component(0, ho.DOMAIN): + setup_component(self.hass, ho.DOMAIN, self.config) + + aioclient_mock.get( + self.url.format("supervisor/reload"), json=self.ok_msg) + + self.hass.services.call( + ho.DOMAIN, ho.SERVICE_SUPERVISOR_UPDATE, {}) + self.hass.block_till_done() + + assert len(aioclient_mock.mock_calls) == 2 + def test_rest_command_http_homeassistant_update(self, aioclient_mock): """Call a hassio for homeassistant update.""" aioclient_mock.get( From 325bd2f73a6394c84f6a0128929494f3e7487d96 Mon Sep 17 00:00:00 2001 From: pvizeli Date: Fri, 21 Apr 2017 11:48:02 +0200 Subject: [PATCH 2/3] Update service descriptions --- homeassistant/components/services.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homeassistant/components/services.yaml b/homeassistant/components/services.yaml index cf5999200d892..6cff6d5f4f458 100644 --- a/homeassistant/components/services.yaml +++ b/homeassistant/components/services.yaml @@ -338,6 +338,9 @@ hassio: description: Optional or it will be use the latest version. example: '0.3' + supervisor_reload: + description: Reload HassIO supervisor addons/updates/configs. + homeassistant_update: description: Update HomeAssistant docker image. fields: From c162c905d7915ba2b61575a8d86fb2df8a698e87 Mon Sep 17 00:00:00 2001 From: pvizeli Date: Fri, 21 Apr 2017 12:04:07 +0200 Subject: [PATCH 3/3] fix test --- tests/components/test_hassio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/components/test_hassio.py b/tests/components/test_hassio.py index 87589d88156f8..2574e7fa9f3da 100644 --- a/tests/components/test_hassio.py +++ b/tests/components/test_hassio.py @@ -229,7 +229,7 @@ def test_rest_command_http_supervisor_reload(self, aioclient_mock): self.url.format("supervisor/reload"), json=self.ok_msg) self.hass.services.call( - ho.DOMAIN, ho.SERVICE_SUPERVISOR_UPDATE, {}) + ho.DOMAIN, ho.SERVICE_SUPERVISOR_RELOAD, {}) self.hass.block_till_done() assert len(aioclient_mock.mock_calls) == 2