Fix merge conflict version

This commit is contained in:
pvizeli 2017-10-25 12:09:33 +02:00
commit 8fd1599173
9 changed files with 48 additions and 12 deletions

1
API.md
View File

@ -243,6 +243,7 @@ Optional:
"serial": ["/dev/xy"], "serial": ["/dev/xy"],
"input": ["Input device name"], "input": ["Input device name"],
"disk": ["/dev/sdax"], "disk": ["/dev/sdax"],
"gpio": ["gpiochip0", "gpiochip100"],
"audio": { "audio": {
"CARD_ID": { "CARD_ID": {
"name": "xy", "name": "xy",

View File

@ -21,7 +21,7 @@ from ..const import (
STATE_STARTED, STATE_STOPPED, STATE_NONE, ATTR_USER, ATTR_SYSTEM, STATE_STARTED, STATE_STOPPED, STATE_NONE, ATTR_USER, ATTR_SYSTEM,
ATTR_STATE, ATTR_TIMEOUT, ATTR_AUTO_UPDATE, ATTR_NETWORK, ATTR_WEBUI, ATTR_STATE, ATTR_TIMEOUT, ATTR_AUTO_UPDATE, ATTR_NETWORK, ATTR_WEBUI,
ATTR_HASSIO_API, ATTR_AUDIO, ATTR_AUDIO_OUTPUT, ATTR_AUDIO_INPUT, ATTR_HASSIO_API, ATTR_AUDIO, ATTR_AUDIO_OUTPUT, ATTR_AUDIO_INPUT,
ATTR_GPIO, ATTR_HOMEASSISTANT_API, ATTR_STDIN) ATTR_GPIO, ATTR_HOMEASSISTANT_API, ATTR_STDIN, ATTR_LEGACY)
from .util import check_installed from .util import check_installed
from ..dock.addon import DockerAddon from ..dock.addon import DockerAddon
from ..tools import write_json_file, read_json_file from ..tools import write_json_file, read_json_file
@ -257,6 +257,11 @@ class Addon(object):
"""Return list of privilege.""" """Return list of privilege."""
return self._mesh.get(ATTR_PRIVILEGED) return self._mesh.get(ATTR_PRIVILEGED)
@property
def legacy(self):
"""Return if the add-on don't support hass labels."""
return self._mesh.get(ATTR_LEGACY)
@property @property
def access_hassio_api(self): def access_hassio_api(self):
"""Return True if the add-on access to hassio api.""" """Return True if the add-on access to hassio api."""

View File

@ -15,7 +15,7 @@ from ..const import (
ATTR_LOCATON, ATTR_REPOSITORY, ATTR_TIMEOUT, ATTR_NETWORK, ATTR_LOCATON, ATTR_REPOSITORY, ATTR_TIMEOUT, ATTR_NETWORK,
ATTR_AUTO_UPDATE, ATTR_WEBUI, ATTR_AUDIO, ATTR_AUDIO_INPUT, ATTR_AUTO_UPDATE, ATTR_WEBUI, ATTR_AUDIO, ATTR_AUDIO_INPUT,
ATTR_AUDIO_OUTPUT, ATTR_HASSIO_API, ATTR_BUILD_FROM, ATTR_SQUASH, ATTR_AUDIO_OUTPUT, ATTR_HASSIO_API, ATTR_BUILD_FROM, ATTR_SQUASH,
ATTR_ARGS, ATTR_GPIO, ATTR_HOMEASSISTANT_API, ATTR_STDIN) ATTR_ARGS, ATTR_GPIO, ATTR_HOMEASSISTANT_API, ATTR_STDIN, ATTR_LEGACY)
from ..validate import NETWORK_PORT, DOCKER_PORTS, ALSA_CHANNEL from ..validate import NETWORK_PORT, DOCKER_PORTS, ALSA_CHANNEL
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -102,6 +102,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema({
vol.Optional(ATTR_HASSIO_API, default=False): vol.Boolean(), vol.Optional(ATTR_HASSIO_API, default=False): vol.Boolean(),
vol.Optional(ATTR_HOMEASSISTANT_API, default=False): vol.Boolean(), vol.Optional(ATTR_HOMEASSISTANT_API, default=False): vol.Boolean(),
vol.Optional(ATTR_STDIN, default=False): vol.Boolean(), vol.Optional(ATTR_STDIN, default=False): vol.Boolean(),
vol.Optional(ATTR_LEGACY, default=False): vol.Boolean(),
vol.Required(ATTR_OPTIONS): dict, vol.Required(ATTR_OPTIONS): dict,
vol.Required(ATTR_SCHEMA): vol.Any(vol.Schema({ vol.Required(ATTR_SCHEMA): vol.Any(vol.Schema({
vol.Coerce(str): vol.Any(SCHEMA_ELEMENT, [ vol.Coerce(str): vol.Any(SCHEMA_ELEMENT, [

View File

@ -166,5 +166,5 @@ class RestAPI(object):
await self.webapp.shutdown() await self.webapp.shutdown()
if self._handler: if self._handler:
await self._handler.finish_connections(60) await self._handler.shutdown(60)
await self.webapp.cleanup() await self.webapp.cleanup()

View File

@ -8,7 +8,7 @@ from .util import api_process_hostcontrol, api_process, api_validate
from ..const import ( from ..const import (
ATTR_VERSION, ATTR_LAST_VERSION, ATTR_TYPE, ATTR_HOSTNAME, ATTR_FEATURES, ATTR_VERSION, ATTR_LAST_VERSION, ATTR_TYPE, ATTR_HOSTNAME, ATTR_FEATURES,
ATTR_OS, ATTR_SERIAL, ATTR_INPUT, ATTR_DISK, ATTR_AUDIO, ATTR_AUDIO_INPUT, ATTR_OS, ATTR_SERIAL, ATTR_INPUT, ATTR_DISK, ATTR_AUDIO, ATTR_AUDIO_INPUT,
ATTR_AUDIO_OUTPUT) ATTR_AUDIO_OUTPUT, ATTR_GPIO)
from ..validate import ALSA_CHANNEL from ..validate import ALSA_CHANNEL
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -83,8 +83,9 @@ class APIHost(object):
async def hardware(self, request): async def hardware(self, request):
"""Return local hardware infos.""" """Return local hardware infos."""
return { return {
ATTR_SERIAL: self.local_hw.serial_devices, ATTR_SERIAL: list(self.local_hw.serial_devices),
ATTR_INPUT: self.local_hw.input_devices, ATTR_INPUT: list(self.local_hw.input_devices),
ATTR_DISK: self.local_hw.disk_devices, ATTR_DISK: list(self.local_hw.disk_devices),
ATTR_GPIO: list(self.local_hw.gpio_devices),
ATTR_AUDIO: self.local_hw.audio_devices, ATTR_AUDIO: self.local_hw.audio_devices,
} }

View File

@ -2,7 +2,7 @@
from pathlib import Path from pathlib import Path
from ipaddress import ip_network from ipaddress import ip_network
HASSIO_VERSION = '0.72' HASSIO_VERSION = '0.73'
URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/' URL_HASSIO_VERSION = ('https://raw.githubusercontent.com/home-assistant/'
'hassio/{}/version.json') 'hassio/{}/version.json')
@ -127,6 +127,7 @@ ATTR_SECURITY = 'security'
ATTR_BUILD_FROM = 'build_from' ATTR_BUILD_FROM = 'build_from'
ATTR_SQUASH = 'squash' ATTR_SQUASH = 'squash'
ATTR_GPIO = 'gpio' ATTR_GPIO = 'gpio'
ATTR_LEGACY = 'ATTR_LEGACY'
ATTR_ADDONS_CUSTOM_LIST = 'addons_custom_list' ATTR_ADDONS_CUSTOM_LIST = 'addons_custom_list'
STARTUP_INITIALIZE = 'initialize' STARTUP_INITIALIZE = 'initialize'

View File

@ -25,6 +25,21 @@ class DockerAddon(DockerInterface):
config, loop, api, image=addon.image, timeout=addon.timeout) config, loop, api, image=addon.image, timeout=addon.timeout)
self.addon = addon self.addon = addon
def process_metadata(self, metadata, force=False):
"""Use addon data instead meta data with legacy."""
if not self.addon.legacy:
return super().process_metadata(metadata, force=force)
# set meta data
if not self.version or force:
if force: # called on install/update/build
self.version = self.addon.last_version
else:
self.version = self.addon.version_installed
if not self.arch:
self.arch = self.config.arch
@property @property
def name(self): def name(self):
"""Return name of docker container.""" """Return name of docker container."""
@ -89,6 +104,7 @@ class DockerAddon(DockerInterface):
"""Return hosts mapping.""" """Return hosts mapping."""
return { return {
'homeassistant': self.docker.network.gateway, 'homeassistant': self.docker.network.gateway,
'hassio': self.docker.network.supervisor,
} }
@property @property

View File

@ -19,6 +19,8 @@ RE_DEVICES = re.compile(r"\[.*(\d+)- (\d+).*\]: ([\w ]*)")
PROC_STAT = Path("/proc/stat") PROC_STAT = Path("/proc/stat")
RE_BOOT_TIME = re.compile(r"btime (\d+)") RE_BOOT_TIME = re.compile(r"btime (\d+)")
GPIO_DEVICES = Path("/sys/class/gpio")
class Hardware(object): class Hardware(object):
"""Represent a interface to procfs, sysfs and udev.""" """Represent a interface to procfs, sysfs and udev."""
@ -35,7 +37,7 @@ class Hardware(object):
if 'ID_VENDOR' in device: if 'ID_VENDOR' in device:
dev_list.add(device.device_node) dev_list.add(device.device_node)
return list(dev_list) return dev_list
@property @property
def input_devices(self): def input_devices(self):
@ -45,7 +47,7 @@ class Hardware(object):
if 'NAME' in device: if 'NAME' in device:
dev_list.add(device['NAME'].replace('"', '')) dev_list.add(device['NAME'].replace('"', ''))
return list(dev_list) return dev_list
@property @property
def disk_devices(self): def disk_devices(self):
@ -55,7 +57,7 @@ class Hardware(object):
if device.device_node.startswith('/dev/sd'): if device.device_node.startswith('/dev/sd'):
dev_list.add(device.device_node) dev_list.add(device.device_node)
return list(dev_list) return dev_list
@property @property
def audio_devices(self): def audio_devices(self):
@ -90,6 +92,15 @@ class Hardware(object):
return audio_list return audio_list
@property
def gpio_devices(self):
"""Return list of GPIO interface on device."""
dev_list = set()
for interface in GPIO_DEVICES.glob("gpio*"):
dev_list.add(interface.name)
return dev_list
@property @property
def last_boot(self): def last_boot(self):
"""Return last boot time.""" """Return last boot time."""

View File

@ -1,5 +1,5 @@
{ {
"hassio": "0.72", "hassio": "0.73",
"homeassistant": "0.56.2", "homeassistant": "0.56.2",
"resinos": "1.1", "resinos": "1.1",
"resinhup": "0.3", "resinhup": "0.3",