Add network to host suppported features (#1973)

This commit is contained in:
Joakim Sørensen 2020-08-26 14:11:21 +02:00 committed by GitHub
parent bd1450a682
commit 7a5a01bdcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 16 deletions

View File

@ -338,12 +338,6 @@ PRIVILEGED_ALL = [
PRIVILEGED_DAC_READ_SEARCH,
]
FEATURES_SHUTDOWN = "shutdown"
FEATURES_REBOOT = "reboot"
FEATURES_HASSOS = "hassos"
FEATURES_HOSTNAME = "hostname"
FEATURES_SERVICES = "services"
ROLE_DEFAULT = "default"
ROLE_HOMEASSISTANT = "homeassistant"
ROLE_BACKUP = "backup"
@ -403,3 +397,14 @@ class LogLevel(str, Enum):
WARNING = "warning"
ERROR = "error"
CRITICAL = "critical"
class HostFeature(str, Enum):
"""Host feature."""
HASSOS = "hassos"
HOSTNAME = "hostname"
NETWORK = "network"
REBOOT = "reboot"
SERVICES = "services"
SHUTDOWN = "shutdown"

View File

@ -2,13 +2,7 @@
from contextlib import suppress
import logging
from ..const import (
FEATURES_HASSOS,
FEATURES_HOSTNAME,
FEATURES_REBOOT,
FEATURES_SERVICES,
FEATURES_SHUTDOWN,
)
from ..const import HostFeature
from ..coresys import CoreSys, CoreSysAttributes
from ..exceptions import HassioError, PulseAudioError
from .apparmor import AppArmorControl
@ -71,13 +65,18 @@ class HostManager(CoreSysAttributes):
features = []
if self.sys_dbus.systemd.is_connected:
features.extend([FEATURES_REBOOT, FEATURES_SHUTDOWN, FEATURES_SERVICES])
features.extend(
[HostFeature.REBOOT, HostFeature.SHUTDOWN, HostFeature.SERVICES]
)
if self.sys_dbus.network.is_connected:
features.append(HostFeature.NETWORK)
if self.sys_dbus.hostname.is_connected:
features.append(FEATURES_HOSTNAME)
features.append(HostFeature.HOSTNAME)
if self.sys_hassos.available:
features.append(FEATURES_HASSOS)
features.append(HostFeature.HASSOS)
return features

View File

@ -0,0 +1,11 @@
"""Test supported features."""
# pylint: disable=protected-access
def test_supported_features(coresys):
"""Test host features."""
assert "network" in coresys.host.supported_features
coresys._dbus.network.is_connected = False
assert "network" not in coresys.host.supported_features