mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-19 07:06:30 +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 Discovery
|
||||
from .host import AlsaAudio
|
||||
from .host import HostManager
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@ -35,6 +36,7 @@ def initialize_coresys(loop):
|
||||
coresys.homeassistant = HomeAssistant(coresys)
|
||||
coresys.addons = AddonManager(coresys)
|
||||
coresys.snapshots = SnapshotManager(coresys)
|
||||
coresys.host = HostManager(coresys)
|
||||
coresys.tasks = Tasks(coresys)
|
||||
coresys.services = ServiceManager(coresys)
|
||||
coresys.discovery = Discovery(coresys)
|
||||
|
@ -209,3 +209,10 @@ CRYPTO_AES128 = 'aes128'
|
||||
SECURITY_PROFILE = 'profile'
|
||||
SECURITY_DEFAULT = 'default'
|
||||
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._snapshots = None
|
||||
self._tasks = None
|
||||
self._host = None
|
||||
self._services = None
|
||||
self._discovery = None
|
||||
self._alsa = None
|
||||
@ -229,6 +230,18 @@ class CoreSys:
|
||||
raise RuntimeError("ALSA already set!")
|
||||
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):
|
||||
"""Wrapper for executor pool."""
|
||||
return self._loop.run_in_executor(None, funct, *args)
|
||||
|
@ -1,6 +1,30 @@
|
||||
"""Host function like audio/dbus/systemd."""
|
||||
|
||||
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