Skip to content

Commit

Permalink
Merge pull request #74 from home-assistant/dev
Browse files Browse the repository at this point in the history
Release 0.34
  • Loading branch information
pvizeli authored May 31, 2017
2 parents abd9683 + e35b0a5 commit 2a09b70
Show file tree
Hide file tree
Showing 12 changed files with 139 additions and 190 deletions.
12 changes: 5 additions & 7 deletions hassio/addons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,13 @@ async def update(self, addon, version=None):
return False

version = version or self.get_last_version(addon)
is_running = await self.dockers[addon].is_running()

# update
if await self.dockers[addon].update(version):
self.set_addon_update(addon, version)
if is_running:
await self.start(addon)
return True
return False
if not await self.dockers[addon].update(version):
return False

self.set_addon_update(addon, version)
return True

async def restart(self, addon):
"""Restart addon."""
Expand Down
7 changes: 6 additions & 1 deletion hassio/addons/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
FILE_HASSIO_ADDONS, ATTR_NAME, ATTR_VERSION, ATTR_SLUG, ATTR_DESCRIPTON,
ATTR_STARTUP, ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, BOOT_AUTO,
ATTR_SCHEMA, ATTR_IMAGE, ATTR_REPOSITORY, ATTR_URL, ATTR_ARCH,
ATTR_LOCATON, ATTR_DEVICES, ATTR_ENVIRONMENT, ATTR_HOST_NETWORK)
ATTR_LOCATON, ATTR_DEVICES, ATTR_ENVIRONMENT, ATTR_HOST_NETWORK,
ATTR_TMPFS)
from ..config import Config
from ..tools import read_json_file, write_json_file

Expand Down Expand Up @@ -304,6 +305,10 @@ def get_devices(self, addon):
"""Return devices of addon."""
return self._system_data[addon].get(ATTR_DEVICES)

def get_tmpfs(self, addon):
"""Return tmpfs of addon."""
return self._system_data[addon].get(ATTR_TMPFS)

def get_environment(self, addon):
"""Return environment of addon."""
return self._system_data[addon].get(ATTR_ENVIRONMENT)
Expand Down
4 changes: 3 additions & 1 deletion hassio/addons/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
STARTUP_BEFORE, STARTUP_INITIALIZE, BOOT_AUTO, BOOT_MANUAL, ATTR_SCHEMA,
ATTR_IMAGE, ATTR_URL, ATTR_MAINTAINER, ATTR_ARCH, ATTR_DEVICES,
ATTR_ENVIRONMENT, ATTR_HOST_NETWORK, ARCH_ARMHF, ARCH_AARCH64, ARCH_AMD64,
ARCH_I386)
ARCH_I386, ATTR_TMPFS)


MAP_VOLUME = r"^(config|ssl|addons|backup|share)(?::(rw|:ro))?$"
Expand Down Expand Up @@ -52,6 +52,8 @@ def check_network(data):
vol.Optional(ATTR_PORTS): dict,
vol.Optional(ATTR_HOST_NETWORK, default=False): vol.Boolean(),
vol.Optional(ATTR_DEVICES): [vol.Match(r"^(.*):(.*):([rwm]{1,3})$")],
vol.Optional(ATTR_TMPFS):
vol.Match(r"^size=(\d)*[kmg](,uid=\d{1,4})?(,rw)?$"),
vol.Optional(ATTR_MAP, default=[]): [vol.Match(MAP_VOLUME)],
vol.Optional(ATTR_ENVIRONMENT): {vol.Match(r"\w*"): vol.Coerce(str)},
vol.Required(ATTR_OPTIONS): dict,
Expand Down
16 changes: 0 additions & 16 deletions hassio/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

HASSIO_SSL = PurePath("ssl")
HASSIO_LAST = 'hassio_last'
HASSIO_CLEANUP = 'hassio_cleanup'

ADDONS_CORE = PurePath("addons/core")
ADDONS_LOCAL = PurePath("addons/local")
Expand Down Expand Up @@ -51,7 +50,6 @@
vol.Optional(TIMEZONE, default='UTC'): validate_timezone,
vol.Optional(HOMEASSISTANT_LAST): vol.Coerce(str),
vol.Optional(HASSIO_LAST): vol.Coerce(str),
vol.Optional(HASSIO_CLEANUP): vol.Coerce(str),
vol.Optional(ADDONS_CUSTOM_LIST, default=[]): [vol.Url()],
vol.Optional(SECURITY_INITIALIZE, default=False): vol.Boolean(),
vol.Optional(SECURITY_TOTP): vol.Coerce(str),
Expand Down Expand Up @@ -148,20 +146,6 @@ def timezone(self, value):
self._data[TIMEZONE] = value
self.save()

@property
def hassio_cleanup(self):
"""Return Version they need to cleanup."""
return self._data.get(HASSIO_CLEANUP)

@hassio_cleanup.setter
def hassio_cleanup(self, version):
"""Set or remove cleanup flag."""
if version is None:
self._data.pop(HASSIO_CLEANUP, None)
else:
self._data[HASSIO_CLEANUP] = version
self.save()

@property
def homeassistant_image(self):
"""Return docker homeassistant repository."""
Expand Down
3 changes: 2 additions & 1 deletion hassio/const.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Const file for HassIO."""
from pathlib import Path

HASSIO_VERSION = '0.33'
HASSIO_VERSION = '0.34'

URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
'hassio/master/version.json')
Expand Down Expand Up @@ -79,6 +79,7 @@
ATTR_DEVICES = 'devices'
ATTR_ENVIRONMENT = 'environment'
ATTR_HOST_NETWORK = 'host_network'
ATTR_TMPFS = 'tmpfs'

STARTUP_INITIALIZE = 'initialize'
STARTUP_BEFORE = 'before'
Expand Down
7 changes: 5 additions & 2 deletions hassio/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def __init__(self, loop):

# init basic docker container
self.supervisor = DockerSupervisor(
self.config, self.loop, self.dock, self)
self.config, self.loop, self.dock, self.stop)
self.homeassistant = DockerHomeAssistant(
self.config, self.loop, self.dock)

Expand All @@ -54,7 +54,8 @@ def __init__(self, loop):
async def setup(self):
"""Setup HassIO orchestration."""
# supervisor
await self.supervisor.attach()
if not await self.supervisor.attach():
_LOGGER.fatal("Can't attach to supervisor docker container!")
await self.supervisor.cleanup()

# set api endpoint
Expand Down Expand Up @@ -96,6 +97,8 @@ async def setup(self):
_LOGGER.info("No HomeAssistant docker found.")
await homeassistant_setup(
self.config, self.loop, self.homeassistant)
else:
await self.homeassistant.attach()

# Load addons
arch = get_arch_from_image(self.supervisor.image)
Expand Down
Loading

0 comments on commit 2a09b70

Please sign in to comment.