Fix udev error without privileged (#1566)

* Fix udev error without privileged

* Fix udev

* Remove context

* Update supervisor/hwmon.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

* Update supervisor/hwmon.py

Co-Authored-By: Paulus Schoutsen <balloob@gmail.com>

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
This commit is contained in:
Pascal Vizeli 2020-03-04 18:55:07 +01:00 committed by GitHub
parent c02f30dd7e
commit 82299a3799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,20 +19,25 @@ class HwMonitor(CoreSysAttributes):
"""Initialize Hardware Monitor object.""" """Initialize Hardware Monitor object."""
self.coresys: CoreSys = coresys self.coresys: CoreSys = coresys
self.context = pyudev.Context() self.context = pyudev.Context()
self.monitor = pyudev.Monitor.from_netlink(self.context) self.monitor: Optional[pyudev.Monitor] = None
self.observer: Optional[pyudev.MonitorObserver] = None self.observer: Optional[pyudev.MonitorObserver] = None
async def load(self) -> None: async def load(self) -> None:
"""Start hardware monitor.""" """Start hardware monitor."""
self.observer = pyudev.MonitorObserver(self.monitor, self._udev_events) try:
self.observer.start() self.monitor = pyudev.Monitor.from_netlink(self.context)
self.observer = pyudev.MonitorObserver(self.monitor, self._udev_events)
_LOGGER.info("Start Supervisor hardware monitor") except OSError:
_LOGGER.fatal("Not privileged to run udev. Update your installation!")
else:
self.observer.start()
_LOGGER.info("Started Supervisor hardware monitor")
async def unload(self) -> None: async def unload(self) -> None:
"""Shutdown sessions.""" """Shutdown sessions."""
if self.observer is None: if self.observer is None:
return return
self.observer.stop() self.observer.stop()
_LOGGER.info("Stop Supervisor hardware monitor") _LOGGER.info("Stop Supervisor hardware monitor")