Revert "Do not backup add-on being uninstalled (#5917)" (#5925)

This reverts commit 63fde3b4109310e95ebdcc8e3c23a04ff96ba592.

This change introduced another more severe regression, causing all
add-ons that haven't been started since Supervisor startup to cause
errors during their backup. More sophisticated check would have to be
implemented to address edge cases during backups for non-existing
add-ons (or their config actually).

Fixes #5924
This commit is contained in:
Jan Čermák 2025-05-29 17:32:51 +02:00 committed by GitHub
parent 42f885595e
commit ad2d6a3156
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 1 additions and 11 deletions

View File

@ -1335,13 +1335,6 @@ class Addon(AddonModel):
wait_for_start: asyncio.Task | None = None
# Refuse to backup if add-on is unknown (e.g. has been uninstalled by the user
# since the backup got started).
if self.state == AddonState.UNKNOWN:
raise AddonsError(
f"Add-on {self.slug} is not installed, cannot backup!", _LOGGER.error
)
data = {
ATTR_USER: self.persist,
ATTR_SYSTEM: self.data,

View File

@ -102,7 +102,7 @@ async def test_addon_state_listener(coresys: CoreSys, install_addon_ssh: Addon)
with patch.object(DockerAddon, "attach"):
await install_addon_ssh.load()
assert install_addon_ssh.state == AddonState.STOPPED
assert install_addon_ssh.state == AddonState.UNKNOWN
with patch.object(Addon, "watchdog_container"):
_fire_test_event(coresys, f"addon_{TEST_ADDON_SLUG}", ContainerState.RUNNING)

View File

@ -40,7 +40,6 @@ from supervisor.const import (
ATTR_TYPE,
ATTR_VERSION,
REQUEST_FROM,
AddonState,
CoreState,
)
from supervisor.coresys import CoreSys
@ -632,7 +631,6 @@ async def install_addon_ssh(coresys: CoreSys, repository):
coresys.addons.data._data = coresys.addons.data._schema(coresys.addons.data._data)
addon = Addon(coresys, store.slug)
addon.state = AddonState.STOPPED
coresys.addons.local[addon.slug] = addon
yield addon
@ -645,7 +643,6 @@ async def install_addon_example(coresys: CoreSys, repository):
coresys.addons.data._data = coresys.addons.data._schema(coresys.addons.data._data)
addon = Addon(coresys, store.slug)
addon.state = AddonState.STOPPED
coresys.addons.local[addon.slug] = addon
yield addon