mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-10-28 13:09:30 +00:00
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
"""Info control for host."""
|
|
import logging
|
|
|
|
from ..coresys import CoreSysAttributes
|
|
from ..exceptions import HassioError, HostNotSupportedError
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
class InfoCenter(CoreSysAttributes):
|
|
"""Handle local system information controls."""
|
|
|
|
def __init__(self, coresys):
|
|
"""Initialize system center handling."""
|
|
self.coresys = coresys
|
|
self._data = {}
|
|
|
|
@property
|
|
def hostname(self):
|
|
"""Return local hostname."""
|
|
return self._data.get('StaticHostname') or None
|
|
|
|
@property
|
|
def chassis(self):
|
|
"""Return local chassis type."""
|
|
return self._data.get('Chassis') or None
|
|
|
|
@property
|
|
def deployment(self):
|
|
"""Return local deployment type."""
|
|
return self._data.get('Deployment') or None
|
|
|
|
@property
|
|
def kernel(self):
|
|
"""Return local kernel version."""
|
|
return self._data.get('KernelRelease') or None
|
|
|
|
@property
|
|
def operating_system(self):
|
|
"""Return local operating system."""
|
|
return self._data.get('OperatingSystemPrettyName') or None
|
|
|
|
@property
|
|
def cpe(self):
|
|
"""Return local CPE."""
|
|
return self._data.get('OperatingSystemCPEName') or None
|
|
|
|
async def update(self):
|
|
"""Update properties over dbus."""
|
|
if not self.sys_dbus.hostname.is_connected:
|
|
_LOGGER.error("No hostname D-Bus connection available")
|
|
raise HostNotSupportedError()
|
|
|
|
_LOGGER.info("Update local host information")
|
|
try:
|
|
self._data = await self.sys_dbus.hostname.get_properties()
|
|
except HassioError:
|
|
_LOGGER.warning("Can't update host system information!")
|