mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-19 15:16:33 +00:00
Fix merge conflict version
This commit is contained in:
commit
8fd1599173
1
API.md
1
API.md
@ -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",
|
||||||
|
@ -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."""
|
||||||
|
@ -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, [
|
||||||
|
@ -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()
|
||||||
|
@ -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,
|
||||||
}
|
}
|
||||||
|
@ -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'
|
||||||
|
@ -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
|
||||||
|
@ -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."""
|
||||||
|
@ -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",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user