diff --git a/hassio/addons/addon.py b/hassio/addons/addon.py index 571f6d304..9dabb94a9 100644 --- a/hassio/addons/addon.py +++ b/hassio/addons/addon.py @@ -661,7 +661,7 @@ class Addon(CoreSysAttributes): try: _LOGGER.info("Build snapshot for addon %s", self._id) await self._loop.run_in_executor(None, _create_tar) - except tarfile.TarError as err: + except (tarfile.TarError, OSError) as err: _LOGGER.error("Can't write tarfile %s: %s", tar_file, err) return False diff --git a/hassio/hardware.py b/hassio/hardware.py index d23a1e542..4f3ea8961 100644 --- a/hassio/hardware.py +++ b/hassio/hardware.py @@ -70,7 +70,7 @@ class Hardware(object): devices = devices_file.read() except OSError as err: _LOGGER.error("Can't read asound data: %s", err) - return None + return {} audio_list = {} diff --git a/hassio/snapshots/snapshot.py b/hassio/snapshots/snapshot.py index c3fe641f6..b32c8475e 100644 --- a/hassio/snapshots/snapshot.py +++ b/hassio/snapshots/snapshot.py @@ -296,7 +296,7 @@ class Snapshot(CoreSysAttributes): _LOGGER.info("Snapshot folder %s done", name) self._data[ATTR_FOLDERS].append(name) - except tarfile.TarError as err: + except (tarfile.TarError, OSError) as err: _LOGGER.warning("Can't snapshot folder %s: %s", name, err) # run tasks @@ -324,7 +324,7 @@ class Snapshot(CoreSysAttributes): with tarfile.open(snapshot_tar, "r:gz") as tar_file: tar_file.extractall(path=origin_dir) _LOGGER.info("Restore folder %s done", name) - except tarfile.TarError as err: + except (tarfile.TarError, OSError) as err: _LOGGER.warning("Can't restore folder %s: %s", name, err) # run tasks diff --git a/hassio/supervisor.py b/hassio/supervisor.py index 38d80e1e7..567f1ba50 100644 --- a/hassio/supervisor.py +++ b/hassio/supervisor.py @@ -59,3 +59,10 @@ class Supervisor(CoreSysAttributes): def in_progress(self): """Return True if a task is in progress.""" return self.instance.in_progress + + def logs(self): + """Get Supervisor docker logs. + + Return a coroutine. + """ + return self.instance.logs()