Allow config.json to manipulate docker env. (#57)

Allow config.json to manipulate docker env.
This commit is contained in:
Pascal Vizeli 2017-05-17 14:45:02 +02:00 committed by GitHub
parent bddcdcadb2
commit 39d5785118
4 changed files with 10 additions and 3 deletions

View File

@ -16,7 +16,7 @@ from ..const import (
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_LOCATON, ATTR_DEVICES, ATTR_ENVIRONMENT)
from ..config import Config
from ..tools import read_json_file, write_json_file
@ -298,6 +298,10 @@ class AddonsData(Config):
"""Return devices of addon."""
return self._system_data[addon].get(ATTR_DEVICES)
def get_environment(self, addon):
"""Return environment of addon."""
return self._system_data[addon].get(ATTR_ENVIRONMENT)
def get_url(self, addon):
"""Return url of addon."""
if addon in self._addons_cache:

View File

@ -5,8 +5,8 @@ from ..const import (
ATTR_NAME, ATTR_VERSION, ATTR_SLUG, ATTR_DESCRIPTON, ATTR_STARTUP,
ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, STARTUP_ONCE, STARTUP_AFTER,
STARTUP_BEFORE, BOOT_AUTO, BOOT_MANUAL, ATTR_SCHEMA, ATTR_IMAGE,
ATTR_URL, ATTR_MAINTAINER, ATTR_ARCH, ATTR_DEVICES, ARCH_ARMHF,
ARCH_AARCH64, ARCH_AMD64, ARCH_I386)
ATTR_URL, ATTR_MAINTAINER, ATTR_ARCH, ATTR_DEVICES, ATTR_ENVIRONMENT,
ARCH_ARMHF, ARCH_AARCH64, ARCH_AMD64, ARCH_I386)
MAP_VOLUME = r"^(config|ssl|addons|backup)(?::(rw|:ro))?$"
@ -39,6 +39,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema({
vol.Optional(ATTR_PORTS): dict,
vol.Optional(ATTR_DEVICES): [vol.Match(r"^(.*):(.*):([rwm]{1,3})$")],
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,
vol.Required(ATTR_SCHEMA): {
vol.Coerce(str): vol.Any(ADDON_ELEMENT, [

View File

@ -76,6 +76,7 @@ ATTR_SESSION = 'session'
ATTR_LOCATON = 'location'
ATTR_BUILD = 'build'
ATTR_DEVICES = 'devices'
ATTR_ENVIRONMENT = 'environment'
STARTUP_BEFORE = 'before'
STARTUP_AFTER = 'after'

View File

@ -82,6 +82,7 @@ class DockerAddon(DockerBase):
network_mode='bridge',
ports=self.addons_data.get_ports(self.addon),
devices=self.addons_data.get_devices(self.addon),
environment=self.addons_data.get_environment(self.addon),
volumes=self.volumes,
)