Skip to content

Commit

Permalink
HassIO API v2 (#7201)
Browse files Browse the repository at this point in the history
Add an optional extended description…
  • Loading branch information
pvizeli committed Apr 21, 2017
1 parent d4b0850 commit 0acc52b
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
10 changes: 8 additions & 2 deletions homeassistant/components/hassio.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
3 changes: 3 additions & 0 deletions homeassistant/components/services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
18 changes: 18 additions & 0 deletions tests/components/test_hassio.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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_RELOAD, {})
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(
Expand Down

0 comments on commit 0acc52b

Please sign in to comment.