HomeAssistant API token (#303)

* Add a uuid to home-assistant

* Add API_TOKEN to homeassistant

* Update homeassistant.py

* Update addon.py
This commit is contained in:
Pascal Vizeli 2018-01-10 18:14:32 +01:00 committed by GitHub
parent 50ae8e2335
commit 15a4541595
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 5 deletions

View File

@ -160,7 +160,7 @@ class Addon(CoreSysAttributes):
return self._mesh[ATTR_TIMEOUT]
@property
def api_token(self):
def uuid(self):
"""Return a API token for this add-on."""
if self.is_installed:
return self._data.user[self._id][ATTR_UUID]

View File

@ -82,7 +82,7 @@ class DockerAddon(DockerInterface):
# Set api token if any API access is needed
if self.addon.access_hassio_api or self.addon.access_homeassistant_api:
addon_env['API_TOKEN'] = self.addon.api_token
addon_env['HASSIO_TOKEN'] = self.addon.uuid
return {
**addon_env,

View File

@ -54,6 +54,7 @@ class DockerHomeAssistant(DockerInterface):
environment={
'HASSIO': self._docker.network.supervisor,
'TZ': self._config.timezone,
'HASSIO_TOKEN': self._homeassistant.uuid,
},
volumes={
str(self._config.path_extern_config):

View File

@ -8,7 +8,7 @@ import aiohttp
from aiohttp.hdrs import CONTENT_TYPE
from .const import (
FILE_HASSIO_HOMEASSISTANT, ATTR_IMAGE, ATTR_LAST_VERSION,
FILE_HASSIO_HOMEASSISTANT, ATTR_IMAGE, ATTR_LAST_VERSION, ATTR_UUID,
ATTR_BOOT, ATTR_PASSWORD, ATTR_PORT, ATTR_SSL, ATTR_WATCHDOG,
HEADER_HA_ACCESS, CONTENT_TYPE_JSON)
from .coresys import CoreSysAttributes
@ -143,6 +143,11 @@ class HomeAssistant(JsonConfig, CoreSysAttributes):
"""Set home-assistant boot options."""
self._data[ATTR_BOOT] = value
@property
def uuid(self):
"""Return a UUID of this HomeAssistant."""
return self._data[ATTR_UUID]
async def install_landingpage(self):
"""Install a landingpage."""
_LOGGER.info("Setup HomeAssistant landingpage")

View File

@ -1,6 +1,7 @@
"""Validate functions."""
import voluptuous as vol
import uuid
import voluptuous as vol
import pytz
from .const import (
@ -8,7 +9,7 @@ from .const import (
ATTR_SECURITY, ATTR_BETA_CHANNEL, ATTR_TIMEZONE, ATTR_ADDONS_CUSTOM_LIST,
ATTR_AUDIO_OUTPUT, ATTR_AUDIO_INPUT, ATTR_HOMEASSISTANT, ATTR_HASSIO,
ATTR_BOOT, ATTR_LAST_BOOT, ATTR_SSL, ATTR_PORT, ATTR_WATCHDOG,
ATTR_WAIT_BOOT)
ATTR_WAIT_BOOT, ATTR_UUID)
NETWORK_PORT = vol.All(vol.Coerce(int), vol.Range(min=1, max=65535))
@ -59,6 +60,8 @@ DOCKER_PORTS = vol.Schema({
# pylint: disable=no-value-for-parameter
SCHEMA_HASS_CONFIG = vol.Schema({
vol.Optional(ATTR_UUID, default=lambda: uuid.uuid4().hex):
vol.Match(r"^[0-9a-f]{32}$"),
vol.Optional(ATTR_BOOT, default=True): vol.Boolean(),
vol.Inclusive(ATTR_IMAGE, 'custom_hass'): vol.Coerce(str),
vol.Inclusive(ATTR_LAST_VERSION, 'custom_hass'): vol.Coerce(str),