mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-20 15:46:29 +00:00
add hostmanager
This commit is contained in:
parent
8f357739ec
commit
63b9e023b4
@ -19,6 +19,7 @@ from .updater import Updater
|
|||||||
from .services import ServiceManager
|
from .services import ServiceManager
|
||||||
from .services import Discovery
|
from .services import Discovery
|
||||||
from .host import AlsaAudio
|
from .host import AlsaAudio
|
||||||
|
from .host import HostManager
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -35,6 +36,7 @@ def initialize_coresys(loop):
|
|||||||
coresys.homeassistant = HomeAssistant(coresys)
|
coresys.homeassistant = HomeAssistant(coresys)
|
||||||
coresys.addons = AddonManager(coresys)
|
coresys.addons = AddonManager(coresys)
|
||||||
coresys.snapshots = SnapshotManager(coresys)
|
coresys.snapshots = SnapshotManager(coresys)
|
||||||
|
coresys.host = HostManager(coresys)
|
||||||
coresys.tasks = Tasks(coresys)
|
coresys.tasks = Tasks(coresys)
|
||||||
coresys.services = ServiceManager(coresys)
|
coresys.services = ServiceManager(coresys)
|
||||||
coresys.discovery = Discovery(coresys)
|
coresys.discovery = Discovery(coresys)
|
||||||
|
@ -209,3 +209,10 @@ CRYPTO_AES128 = 'aes128'
|
|||||||
SECURITY_PROFILE = 'profile'
|
SECURITY_PROFILE = 'profile'
|
||||||
SECURITY_DEFAULT = 'default'
|
SECURITY_DEFAULT = 'default'
|
||||||
SECURITY_DISABLE = 'disable'
|
SECURITY_DISABLE = 'disable'
|
||||||
|
|
||||||
|
FEATURES_SHUTDOWN = 'shutdown'
|
||||||
|
FEATURES_REBOOT = 'reboot'
|
||||||
|
FEATURES_UPDATE = 'update'
|
||||||
|
FEATURES_HOSTNAME = 'hostname'
|
||||||
|
FEATURES_NETWORK_INFO = 'network_info'
|
||||||
|
FEATURES_NETWORK_CONTROL = 'network_control'
|
||||||
|
@ -41,6 +41,7 @@ class CoreSys:
|
|||||||
self._updater = None
|
self._updater = None
|
||||||
self._snapshots = None
|
self._snapshots = None
|
||||||
self._tasks = None
|
self._tasks = None
|
||||||
|
self._host = None
|
||||||
self._services = None
|
self._services = None
|
||||||
self._discovery = None
|
self._discovery = None
|
||||||
self._alsa = None
|
self._alsa = None
|
||||||
@ -229,6 +230,18 @@ class CoreSys:
|
|||||||
raise RuntimeError("ALSA already set!")
|
raise RuntimeError("ALSA already set!")
|
||||||
self._alsa = value
|
self._alsa = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def host(self):
|
||||||
|
"""Return HostManager object."""
|
||||||
|
return self._host
|
||||||
|
|
||||||
|
@host.setter
|
||||||
|
def host(self, value):
|
||||||
|
"""Set a HostManager object."""
|
||||||
|
if self._host:
|
||||||
|
raise RuntimeError("HostManager already set!")
|
||||||
|
self._host = value
|
||||||
|
|
||||||
async def run_in_executor(self, funct, *args):
|
async def run_in_executor(self, funct, *args):
|
||||||
"""Wrapper for executor pool."""
|
"""Wrapper for executor pool."""
|
||||||
return self._loop.run_in_executor(None, funct, *args)
|
return self._loop.run_in_executor(None, funct, *args)
|
||||||
|
@ -1,6 +1,30 @@
|
|||||||
"""Host function like audio/dbus/systemd."""
|
"""Host function like audio/dbus/systemd."""
|
||||||
|
|
||||||
from .alsa import AlsaAudio # noqa
|
from .alsa import AlsaAudio # noqa
|
||||||
|
from ..const import FEATURES_REBOOT, FEATURES_SHUTDOWN
|
||||||
|
from ..coresys import CoreSysAttributes
|
||||||
|
|
||||||
|
|
||||||
class HostManager:
|
class HostManager(CoreSysAttributes):
|
||||||
|
"""Manage supported function from host."""
|
||||||
|
|
||||||
|
def __init__(self, coresys):
|
||||||
|
"""Initialize Host manager."""
|
||||||
|
self.coresys = coresys
|
||||||
|
|
||||||
|
@property
|
||||||
|
def supperted_features(self):
|
||||||
|
"""Return a list of supported host features."""
|
||||||
|
features = []
|
||||||
|
|
||||||
|
if self.sys_systemd.is_connected:
|
||||||
|
features.extend([
|
||||||
|
FEATURES_REBOOT,
|
||||||
|
FEATURES_SHUTDOWN,
|
||||||
|
])
|
||||||
|
|
||||||
|
return features
|
||||||
|
|
||||||
|
async def load(self):
|
||||||
|
"""Load host functions."""
|
||||||
|
await self.sys_systemd.connect()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user