Add device support (#54)

Add device support
This commit is contained in:
Pascal Vizeli 2017-05-16 14:50:47 +02:00 committed by GitHub
parent 47e45dfc9f
commit 34c4acf199
4 changed files with 9 additions and 2 deletions

View File

@ -14,7 +14,7 @@ from ..const import (
FILE_HASSIO_ADDONS, ATTR_NAME, ATTR_VERSION, ATTR_SLUG, ATTR_DESCRIPTON, FILE_HASSIO_ADDONS, ATTR_NAME, ATTR_VERSION, ATTR_SLUG, ATTR_DESCRIPTON,
ATTR_STARTUP, ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, BOOT_AUTO, ATTR_STARTUP, ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, BOOT_AUTO,
ATTR_SCHEMA, ATTR_IMAGE, MAP_CONFIG, MAP_SSL, MAP_ADDONS, MAP_BACKUP, ATTR_SCHEMA, ATTR_IMAGE, MAP_CONFIG, MAP_SSL, MAP_ADDONS, MAP_BACKUP,
ATTR_REPOSITORY, ATTR_URL, ATTR_ARCH, ATTR_LOCATON) ATTR_REPOSITORY, ATTR_URL, ATTR_ARCH, ATTR_LOCATON, ATTR_DEVICES)
from ..config import Config from ..config import Config
from ..tools import read_json_file, write_json_file from ..tools import read_json_file, write_json_file
@ -290,6 +290,10 @@ class AddonsData(Config):
"""Return ports of addon.""" """Return ports of addon."""
return self._system_data[addon].get(ATTR_PORTS) return self._system_data[addon].get(ATTR_PORTS)
def get_devices(self, addon):
"""Return devices of addon."""
return self._system_data[addon].get(ATTR_DEVICES)
def get_url(self, addon): def get_url(self, addon):
"""Return url of addon.""" """Return url of addon."""
if addon in self._addons_cache: if addon in self._addons_cache:

View File

@ -6,7 +6,7 @@ from ..const import (
ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, STARTUP_ONCE, STARTUP_AFTER, ATTR_BOOT, ATTR_MAP, ATTR_OPTIONS, ATTR_PORTS, STARTUP_ONCE, STARTUP_AFTER,
STARTUP_BEFORE, BOOT_AUTO, BOOT_MANUAL, ATTR_SCHEMA, ATTR_IMAGE, MAP_SSL, STARTUP_BEFORE, BOOT_AUTO, BOOT_MANUAL, ATTR_SCHEMA, ATTR_IMAGE, MAP_SSL,
MAP_CONFIG, MAP_ADDONS, MAP_BACKUP, ATTR_URL, ATTR_MAINTAINER, ATTR_ARCH, MAP_CONFIG, MAP_ADDONS, MAP_BACKUP, ATTR_URL, ATTR_MAINTAINER, ATTR_ARCH,
ARCH_ARMHF, ARCH_AARCH64, ARCH_AMD64, ARCH_I386) ARCH_ARMHF, ARCH_AARCH64, ARCH_AMD64, ARCH_I386, ATTR_DEVICES)
V_STR = 'str' V_STR = 'str'
V_INT = 'int' V_INT = 'int'
@ -34,6 +34,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema({
vol.Required(ATTR_BOOT): vol.Required(ATTR_BOOT):
vol.In([BOOT_AUTO, BOOT_MANUAL]), vol.In([BOOT_AUTO, BOOT_MANUAL]),
vol.Optional(ATTR_PORTS): dict, vol.Optional(ATTR_PORTS): dict,
vol.Optional(ATTR_DEVICES): [vol.Match(r"(.*):(.*):(rwm|rw|rm)")],
vol.Optional(ATTR_MAP, default=[]): [ vol.Optional(ATTR_MAP, default=[]): [
vol.In([MAP_CONFIG, MAP_SSL, MAP_ADDONS, MAP_BACKUP]) vol.In([MAP_CONFIG, MAP_SSL, MAP_ADDONS, MAP_BACKUP])
], ],

View File

@ -75,6 +75,7 @@ ATTR_INITIALIZE = 'initialize'
ATTR_SESSION = 'session' ATTR_SESSION = 'session'
ATTR_LOCATON = 'location' ATTR_LOCATON = 'location'
ATTR_BUILD = 'build' ATTR_BUILD = 'build'
ATTR_DEVICES = 'devices'
STARTUP_BEFORE = 'before' STARTUP_BEFORE = 'before'
STARTUP_AFTER = 'after' STARTUP_AFTER = 'after'

View File

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