From 958a0e31d183445fa2d54b980fd63f777f66cdcf Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 25 Feb 2025 17:47:37 +0100 Subject: [PATCH] Handle new AddFileError where atomic_contents_add is used --- supervisor/addons/addon.py | 4 ++-- supervisor/backups/backup.py | 4 ++-- supervisor/homeassistant/module.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/supervisor/addons/addon.py b/supervisor/addons/addon.py index a0d51327c..415ed664c 100644 --- a/supervisor/addons/addon.py +++ b/supervisor/addons/addon.py @@ -20,7 +20,7 @@ from typing import Any, Final import aiohttp from awesomeversion import AwesomeVersionCompareException from deepmerge import Merger -from securetar import atomic_contents_add, secure_path +from securetar import AddFileError, atomic_contents_add, secure_path import voluptuous as vol from voluptuous.humanize import humanize_error @@ -1327,7 +1327,7 @@ class Addon(AddonModel): ) ) _LOGGER.info("Finish backup for addon %s", self.slug) - except (tarfile.TarError, OSError) as err: + except (tarfile.TarError, OSError, AddFileError) as err: raise AddonsError( f"Can't write tarfile {tar_file}: {err}", _LOGGER.error ) from err diff --git a/supervisor/backups/backup.py b/supervisor/backups/backup.py index 6ded4acfa..78c73f72c 100644 --- a/supervisor/backups/backup.py +++ b/supervisor/backups/backup.py @@ -19,7 +19,7 @@ from typing import Any, Self from awesomeversion import AwesomeVersion, AwesomeVersionCompareException from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from securetar import SecureTarFile, atomic_contents_add, secure_path +from securetar import AddFileError, SecureTarFile, atomic_contents_add, secure_path import voluptuous as vol from voluptuous.humanize import humanize_error @@ -741,7 +741,7 @@ class Backup(JobGroup): try: if await self.sys_run_in_executor(_save): self._data[ATTR_FOLDERS].append(name) - except (tarfile.TarError, OSError) as err: + except (tarfile.TarError, OSError, AddFileError) as err: raise BackupError( f"Can't backup folder {name}: {str(err)}", _LOGGER.error ) from err diff --git a/supervisor/homeassistant/module.py b/supervisor/homeassistant/module.py index 395ed31b3..3b9b76cb2 100644 --- a/supervisor/homeassistant/module.py +++ b/supervisor/homeassistant/module.py @@ -13,7 +13,7 @@ from typing import Any from uuid import UUID from awesomeversion import AwesomeVersion, AwesomeVersionException -from securetar import atomic_contents_add, secure_path +from securetar import AddFileError, atomic_contents_add, secure_path import voluptuous as vol from voluptuous.humanize import humanize_error @@ -435,7 +435,7 @@ class HomeAssistant(FileConfiguration, CoreSysAttributes): file_filter=_is_excluded_by_filter, arcname="data", ) - except (tarfile.TarError, OSError) as err: + except (tarfile.TarError, OSError, AddFileError) as err: raise HomeAssistantBackupError( f"Can't backup Home Assistant Core config folder: {str(err)}", _LOGGER.error,