From 25e887b4574475eb0fc922b514494412b0e57e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Tue, 15 Oct 2024 18:44:13 +0200 Subject: [PATCH] Move backup plaform loading to the base class (#128449) --- homeassistant/components/backup/manager.py | 82 ++++++++++------------ 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/homeassistant/components/backup/manager.py b/homeassistant/components/backup/manager.py index 8ac36f220bb..701174e1b8d 100644 --- a/homeassistant/components/backup/manager.py +++ b/homeassistant/components/backup/manager.py @@ -60,45 +60,10 @@ class BaseBackupManager(abc.ABC): def __init__(self, hass: HomeAssistant) -> None: """Initialize the backup manager.""" self.hass = hass - self.backups: dict[str, Backup] = {} self.backing_up = False - - async def async_post_backup_actions(self, **kwargs: Any) -> None: - """Post backup actions.""" - - async def async_pre_backup_actions(self, **kwargs: Any) -> None: - """Pre backup actions.""" - - @abc.abstractmethod - async def async_create_backup(self, **kwargs: Any) -> Backup: - """Generate a backup.""" - - @abc.abstractmethod - async def async_get_backups(self, **kwargs: Any) -> dict[str, Backup]: - """Get backups. - - Return a dictionary of Backup instances keyed by their slug. - """ - - @abc.abstractmethod - async def async_get_backup(self, *, slug: str, **kwargs: Any) -> Backup | None: - """Get a backup.""" - - @abc.abstractmethod - async def async_remove_backup(self, *, slug: str, **kwargs: Any) -> None: - """Remove a backup.""" - - -class BackupManager(BaseBackupManager): - """Backup manager for the Backup integration.""" - - def __init__(self, hass: HomeAssistant) -> None: - """Initialize the backup manager.""" - super().__init__(hass=hass) - self.backup_dir = Path(hass.config.path("backups")) - self.platforms: dict[str, BackupPlatformProtocol] = {} - self.loaded_backups = False + self.backups: dict[str, Backup] = {} self.loaded_platforms = False + self.platforms: dict[str, BackupPlatformProtocol] = {} @callback def _add_platform( @@ -150,13 +115,6 @@ class BackupManager(BaseBackupManager): if isinstance(result, Exception): raise result - async def load_backups(self) -> None: - """Load data of stored backup files.""" - backups = await self.hass.async_add_executor_job(self._read_backups) - LOGGER.debug("Loaded %s backups", len(backups)) - self.backups = backups - self.loaded_backups = True - async def load_platforms(self) -> None: """Load backup platforms.""" await integration_platform.async_process_integration_platforms( @@ -165,6 +123,42 @@ class BackupManager(BaseBackupManager): LOGGER.debug("Loaded %s platforms", len(self.platforms)) self.loaded_platforms = True + @abc.abstractmethod + async def async_create_backup(self, **kwargs: Any) -> Backup: + """Generate a backup.""" + + @abc.abstractmethod + async def async_get_backups(self, **kwargs: Any) -> dict[str, Backup]: + """Get backups. + + Return a dictionary of Backup instances keyed by their slug. + """ + + @abc.abstractmethod + async def async_get_backup(self, *, slug: str, **kwargs: Any) -> Backup | None: + """Get a backup.""" + + @abc.abstractmethod + async def async_remove_backup(self, *, slug: str, **kwargs: Any) -> None: + """Remove a backup.""" + + +class BackupManager(BaseBackupManager): + """Backup manager for the Backup integration.""" + + def __init__(self, hass: HomeAssistant) -> None: + """Initialize the backup manager.""" + super().__init__(hass=hass) + self.backup_dir = Path(hass.config.path("backups")) + self.loaded_backups = False + + async def load_backups(self) -> None: + """Load data of stored backup files.""" + backups = await self.hass.async_add_executor_job(self._read_backups) + LOGGER.debug("Loaded %s backups", len(backups)) + self.backups = backups + self.loaded_backups = True + def _read_backups(self) -> dict[str, Backup]: """Read backups from disk.""" backups: dict[str, Backup] = {}