mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-06-22 09:56:30 +00:00

* Improve gdbus error handling * Fix logging type * Detect no dbus * Fix issue with complex * Update hassio/dbus/__init__.py Co-Authored-By: Franck Nijhof <frenck@frenck.nl> * Update hassio/dbus/hostname.py Co-Authored-By: Franck Nijhof <frenck@frenck.nl> * Update hassio/dbus/rauc.py Co-Authored-By: Franck Nijhof <frenck@frenck.nl> * Update hassio/dbus/systemd.py Co-Authored-By: Franck Nijhof <frenck@frenck.nl> * Fix black
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.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!")
|