Fix hostname / add device if it use audio (#144)

Add an optional extended description…
This commit is contained in:
Pascal Vizeli 2017-08-10 11:06:55 +02:00 committed by GitHub
parent 7f33b3b5aa
commit 27a079742d

View File

@ -13,6 +13,8 @@ from ..const import (
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
AUDIO_DEVICE = "/dev/snd:/dev/snd:rwm"
class DockerAddon(DockerBase): class DockerAddon(DockerBase):
"""Docker hassio wrapper for HomeAssistant.""" """Docker hassio wrapper for HomeAssistant."""
@ -28,6 +30,11 @@ class DockerAddon(DockerBase):
"""Return name of docker container.""" """Return name of docker container."""
return "addon_{}".format(self.addon.slug) return "addon_{}".format(self.addon.slug)
@property
def hostname(self):
"""Return slug/id of addon."""
return self.addon.slug.replace('_', '-')
@property @property
def environment(self): def environment(self):
"""Return environment for docker add-on.""" """Return environment for docker add-on."""
@ -43,6 +50,20 @@ class DockerAddon(DockerBase):
'TZ': self.config.timezone, 'TZ': self.config.timezone,
} }
@property
def devices(self):
"""Return needed devices."""
devices = self.addon.devices or []
# use audio devices
if self.addon.with_audio and AUDIO_DEVICE not in devices:
devices.append(AUDIO_DEVICE)
# Return None if no devices is present
if devices:
return devices
return None
@property @property
def tmpfs(self): def tmpfs(self):
"""Return tmpfs for docker add-on.""" """Return tmpfs for docker add-on."""
@ -122,12 +143,12 @@ class DockerAddon(DockerBase):
self.dock.containers.run( self.dock.containers.run(
self.image, self.image,
name=self.name, name=self.name,
hostname=self.addon.slug, hostname=self.hostname,
detach=True, detach=True,
network_mode=self.addon.network_mode, network_mode=self.addon.network_mode,
ports=self.addon.ports, ports=self.addon.ports,
extra_hosts=self.mapping, extra_hosts=self.mapping,
devices=self.addon.devices, devices=self.devices,
cap_add=self.addon.privileged, cap_add=self.addon.privileged,
environment=self.environment, environment=self.environment,
volumes=self.volumes, volumes=self.volumes,