From 4e645332c398015a164448fbcc14d0576dbcebee Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sat, 3 Jun 2017 00:15:46 +0200 Subject: [PATCH 1/5] Pump version to 0.36 --- hassio/const.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/const.py b/hassio/const.py index 4115db46c..5dae70b5f 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -1,7 +1,7 @@ """Const file for HassIO.""" from pathlib import Path -HASSIO_VERSION = '0.35' +HASSIO_VERSION = '0.36' URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/' 'hassio/master/version.json') From 711e199977613d87e4cc443e5419f103cf247f37 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 4 Jun 2017 09:11:46 +0200 Subject: [PATCH 2/5] Update HomeAssistant 0.46 --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index 17da72dad..a034d2208 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "hassio": "0.35", - "homeassistant": "0.45.1", + "homeassistant": "0.46", "resinos": "0.8", "resinhup": "0.1", "generic": "0.3" From 99fa91f48021e34b96df4850c8765d9a8eca4766 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 5 Jun 2017 12:45:43 +0200 Subject: [PATCH 3/5] Add better validator for device --- hassio/api/homeassistant.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/api/homeassistant.py b/hassio/api/homeassistant.py index e5b7c761d..b492a8dfc 100644 --- a/hassio/api/homeassistant.py +++ b/hassio/api/homeassistant.py @@ -11,7 +11,7 @@ _LOGGER = logging.getLogger(__name__) SCHEMA_OPTIONS = vol.Schema({ - vol.Optional(ATTR_DEVICES): [vol.Coerce(str)], + vol.Optional(ATTR_DEVICES): [vol.Match(r"^[^/]*$")], }) SCHEMA_VERSION = vol.Schema({ From 99aa4388178a5c1cbbf3b7c2bc5b26ef0468fcdf Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 5 Jun 2017 12:46:45 +0200 Subject: [PATCH 4/5] Allow extend cap for addons (#77) * Allow extend cap for addons * cleanup --- hassio/addons/data.py | 6 +++++- hassio/addons/validate.py | 7 ++++++- hassio/const.py | 1 + hassio/dock/addon.py | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/hassio/addons/data.py b/hassio/addons/data.py index ad2d79d3a..197ad7cb8 100644 --- a/hassio/addons/data.py +++ b/hassio/addons/data.py @@ -17,7 +17,7 @@ from ..const import ( 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_TMPFS) + ATTR_TMPFS, ATTR_PRIVILEGED) from ..config import Config from ..tools import read_json_file, write_json_file @@ -313,6 +313,10 @@ class AddonsData(Config): """Return environment of addon.""" return self._system_data[addon].get(ATTR_ENVIRONMENT) + def get_privileged(self, addon): + """Return list of privilege.""" + return self._system_data[addon].get(ATTR_PRIVILEGED) + def get_url(self, addon): """Return url of addon.""" if addon in self._addons_cache: diff --git a/hassio/addons/validate.py b/hassio/addons/validate.py index f5eecb9d2..62a0e824d 100644 --- a/hassio/addons/validate.py +++ b/hassio/addons/validate.py @@ -7,7 +7,7 @@ from ..const import ( 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, ATTR_TMPFS) + ARCH_I386, ATTR_TMPFS, ATTR_PRIVILEGED) MAP_VOLUME = r"^(config|ssl|addons|backup|share)(?::(rw|:ro))?$" @@ -25,6 +25,10 @@ ARCH_ALL = [ ARCH_ARMHF, ARCH_AARCH64, ARCH_AMD64, ARCH_I386 ] +PRIVILEGE_ALL = [ + "NET_ADMIN" +] + def check_network(data): """Validate network settings.""" @@ -56,6 +60,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema(vol.All({ 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.Optional(ATTR_PRIVILEGED): [vol.In(PRIVILEGE_ALL)], vol.Required(ATTR_OPTIONS): dict, vol.Required(ATTR_SCHEMA): { vol.Coerce(str): vol.Any(ADDON_ELEMENT, [ diff --git a/hassio/const.py b/hassio/const.py index 5dae70b5f..cc80513fe 100644 --- a/hassio/const.py +++ b/hassio/const.py @@ -80,6 +80,7 @@ ATTR_DEVICES = 'devices' ATTR_ENVIRONMENT = 'environment' ATTR_HOST_NETWORK = 'host_network' ATTR_TMPFS = 'tmpfs' +ATTR_PRIVILEGED = 'privileged' STARTUP_INITIALIZE = 'initialize' STARTUP_BEFORE = 'before' diff --git a/hassio/dock/addon.py b/hassio/dock/addon.py index c998cb51f..fbd8bca02 100644 --- a/hassio/dock/addon.py +++ b/hassio/dock/addon.py @@ -107,6 +107,7 @@ class DockerAddon(DockerBase): network_mode=self.addons_data.get_network_mode(self.addon), ports=self.addons_data.get_ports(self.addon), devices=self.addons_data.get_devices(self.addon), + cap_add=self.addons_data.get_privileged(self.addon), environment=self.environment, volumes=self.volumes, tmpfs=self.tmpfs From b119a42f4dabc9ff2364751abb350b5209f364bf Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 5 Jun 2017 12:56:14 +0200 Subject: [PATCH 5/5] Update Hass.IO 0.36 --- version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.json b/version.json index a034d2208..e1ba97268 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "hassio": "0.35", + "hassio": "0.36", "homeassistant": "0.46", "resinos": "0.8", "resinhup": "0.1",