Add advanced property for HA simple-mode (#1439)

This commit is contained in:
Pascal Vizeli 2020-01-20 10:17:14 +01:00 committed by GitHub
parent 4702f8bd5e
commit b1e768f69e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 1 deletions

2
API.md
View File

@ -456,6 +456,7 @@ Get all available addons.
"name": "xy bla", "name": "xy bla",
"slug": "xy", "slug": "xy",
"description": "description", "description": "description",
"advanced": "bool",
"repository": "core|local|REP_ID", "repository": "core|local|REP_ID",
"version": "LAST_VERSION", "version": "LAST_VERSION",
"installed": "none|INSTALL_VERSION", "installed": "none|INSTALL_VERSION",
@ -494,6 +495,7 @@ Get all available addons.
"url": "null|url of addon", "url": "null|url of addon",
"detached": "bool", "detached": "bool",
"available": "bool", "available": "bool",
"advanced": "bool",
"arch": ["armhf", "aarch64", "i386", "amd64"], "arch": ["armhf", "aarch64", "i386", "amd64"],
"machine": "[raspberrypi2, tinker]", "machine": "[raspberrypi2, tinker]",
"homeassistant": "null|min Home Assistant version", "homeassistant": "null|min Home Assistant version",

View File

@ -6,6 +6,7 @@ from packaging import version as pkg_version
import voluptuous as vol import voluptuous as vol
from ..const import ( from ..const import (
ATTR_ADVANCED,
ATTR_APPARMOR, ATTR_APPARMOR,
ATTR_ARCH, ATTR_ARCH,
ATTR_AUDIO, ATTR_AUDIO,
@ -189,6 +190,11 @@ class AddonModel(CoreSysAttributes):
"""Return startup type of add-on.""" """Return startup type of add-on."""
return self.data.get(ATTR_STARTUP) return self.data.get(ATTR_STARTUP)
@property
def advanced(self) -> bool:
"""Return advanced mode of add-on."""
return self.data[ATTR_ADVANCED]
@property @property
def services_role(self) -> Dict[str, str]: def services_role(self) -> Dict[str, str]:
"""Return dict of services with rights.""" """Return dict of services with rights."""

View File

@ -10,6 +10,7 @@ import voluptuous as vol
from ..const import ( from ..const import (
ARCH_ALL, ARCH_ALL,
ATTR_ACCESS_TOKEN, ATTR_ACCESS_TOKEN,
ATTR_ADVANCED,
ATTR_APPARMOR, ATTR_APPARMOR,
ATTR_ARCH, ATTR_ARCH,
ATTR_ARGS, ATTR_ARGS,
@ -90,9 +91,9 @@ from ..const import (
from ..coresys import CoreSys from ..coresys import CoreSys
from ..discovery.validate import valid_discovery_service from ..discovery.validate import valid_discovery_service
from ..validate import ( from ..validate import (
alsa_device,
DOCKER_PORTS, DOCKER_PORTS,
DOCKER_PORTS_DESCRIPTION, DOCKER_PORTS_DESCRIPTION,
alsa_device,
network_port, network_port,
token, token,
uuid_match, uuid_match,
@ -175,6 +176,7 @@ SCHEMA_ADDON_CONFIG = vol.Schema(
vol.Optional(ATTR_URL): vol.Url(), vol.Optional(ATTR_URL): vol.Url(),
vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.In(STARTUP_ALL)), vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.In(STARTUP_ALL)),
vol.Required(ATTR_BOOT): vol.In([BOOT_AUTO, BOOT_MANUAL]), vol.Required(ATTR_BOOT): vol.In([BOOT_AUTO, BOOT_MANUAL]),
vol.Optional(ATTR_ADVANCED, default=False): vol.Boolean(),
vol.Optional(ATTR_PORTS): DOCKER_PORTS, vol.Optional(ATTR_PORTS): DOCKER_PORTS,
vol.Optional(ATTR_PORTS_DESCRIPTION): DOCKER_PORTS_DESCRIPTION, vol.Optional(ATTR_PORTS_DESCRIPTION): DOCKER_PORTS_DESCRIPTION,
vol.Optional(ATTR_WEBUI): vol.Match( vol.Optional(ATTR_WEBUI): vol.Match(

View File

@ -10,6 +10,7 @@ from ..addons import AnyAddon
from ..addons.utils import rating_security from ..addons.utils import rating_security
from ..const import ( from ..const import (
ATTR_ADDONS, ATTR_ADDONS,
ATTR_ADVANCED,
ATTR_APPARMOR, ATTR_APPARMOR,
ATTR_ARCH, ATTR_ARCH,
ATTR_AUDIO, ATTR_AUDIO,
@ -146,6 +147,7 @@ class APIAddons(CoreSysAttributes):
ATTR_NAME: addon.name, ATTR_NAME: addon.name,
ATTR_SLUG: addon.slug, ATTR_SLUG: addon.slug,
ATTR_DESCRIPTON: addon.description, ATTR_DESCRIPTON: addon.description,
ATTR_ADVANCED: addon.advanced,
ATTR_VERSION: addon.latest_version, ATTR_VERSION: addon.latest_version,
ATTR_INSTALLED: addon.version if addon.is_installed else None, ATTR_INSTALLED: addon.version if addon.is_installed else None,
ATTR_AVAILABLE: addon.available, ATTR_AVAILABLE: addon.available,
@ -189,6 +191,7 @@ class APIAddons(CoreSysAttributes):
ATTR_DNS: addon.dns, ATTR_DNS: addon.dns,
ATTR_DESCRIPTON: addon.description, ATTR_DESCRIPTON: addon.description,
ATTR_LONG_DESCRIPTION: addon.long_description, ATTR_LONG_DESCRIPTION: addon.long_description,
ATTR_ADVANCED: addon.advanced,
ATTR_AUTO_UPDATE: None, ATTR_AUTO_UPDATE: None,
ATTR_REPOSITORY: addon.repository, ATTR_REPOSITORY: addon.repository,
ATTR_VERSION: None, ATTR_VERSION: None,

View File

@ -223,6 +223,7 @@ ATTR_UDEV = "udev"
ATTR_VALUE = "value" ATTR_VALUE = "value"
ATTR_SNAPSHOT_EXCLUDE = "snapshot_exclude" ATTR_SNAPSHOT_EXCLUDE = "snapshot_exclude"
ATTR_DOCUMENTATION = "documentation" ATTR_DOCUMENTATION = "documentation"
ATTR_ADVANCED = "advanced"
PROVIDE_SERVICE = "provide" PROVIDE_SERVICE = "provide"
NEED_SERVICE = "need" NEED_SERVICE = "need"