diff --git a/homeassistant/components/backup/__init__.py b/homeassistant/components/backup/__init__.py index 29dbe6f9e6a..c3e57e74dea 100644 --- a/homeassistant/components/backup/__init__.py +++ b/homeassistant/components/backup/__init__.py @@ -17,7 +17,7 @@ from .manager import ( BackupPlatformProtocol, CoreBackupReaderWriter, ) -from .models import BackupUploadMetadata, BaseBackup +from .models import BaseBackup from .websocket import async_register_websocket_handlers __all__ = [ @@ -25,7 +25,6 @@ __all__ = [ "BackupAgent", "BackupAgentPlatformProtocol", "BackupPlatformProtocol", - "BackupUploadMetadata", "BaseBackup", ] diff --git a/homeassistant/components/backup/agent.py b/homeassistant/components/backup/agent.py index 0913ef25896..c17712ca5b2 100644 --- a/homeassistant/components/backup/agent.py +++ b/homeassistant/components/backup/agent.py @@ -9,7 +9,7 @@ from typing import Any, Protocol from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError -from .models import BackupUploadMetadata, BaseBackup +from .models import BaseBackup class BackupAgentError(HomeAssistantError): @@ -46,13 +46,15 @@ class BackupAgent(abc.ABC): self, *, path: Path, - metadata: BackupUploadMetadata, + homeassistant_version: str, + backup: BaseBackup, **kwargs: Any, ) -> None: """Upload a backup. :param path: The full file path to the backup that should be uploaded. - :param metadata: Metadata about the backup that should be uploaded. + :param backup: Metadata about the backup that should be uploaded. + :param homeassistant_version: The version of Home Assistant that created the backup """ @abc.abstractmethod diff --git a/homeassistant/components/backup/backup.py b/homeassistant/components/backup/backup.py index ef4e2905589..7dad124c2f6 100644 --- a/homeassistant/components/backup/backup.py +++ b/homeassistant/components/backup/backup.py @@ -12,7 +12,7 @@ from homeassistant.helpers.hassio import is_hassio from .agent import BackupAgent, LocalBackupAgent from .const import LOGGER -from .models import BackupUploadMetadata, BaseBackup +from .models import BaseBackup from .util import read_backup @@ -78,17 +78,11 @@ class CoreLocalBackupAgent(LocalBackupAgent): self, *, path: Path, - metadata: BackupUploadMetadata, + backup: BaseBackup, **kwargs: Any, ) -> None: """Upload a backup.""" - self._backups[metadata.backup_id] = BaseBackup( - backup_id=metadata.backup_id, - date=metadata.date, - name=metadata.name, - protected=metadata.protected, - size=round(path.stat().st_size / 1_048_576, 2), - ) + self._backups[backup.backup_id] = backup async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]: """List backups.""" diff --git a/homeassistant/components/backup/manager.py b/homeassistant/components/backup/manager.py index 5b8586b828e..b1ea9cd1093 100644 --- a/homeassistant/components/backup/manager.py +++ b/homeassistant/components/backup/manager.py @@ -43,7 +43,7 @@ from .const import ( EXCLUDE_FROM_BACKUP, LOGGER, ) -from .models import BackupUploadMetadata, BaseBackup +from .models import BaseBackup from .util import read_backup @@ -226,20 +226,15 @@ class BackupManager: path: Path, ) -> None: """Upload a backup to selected agents.""" + LOGGER.warning("Uploading backup %s to agents %s", backup.backup_id, agent_ids) self.syncing = True try: sync_backup_results = await asyncio.gather( *( self.backup_agents[agent_id].async_upload_backup( path=path, - metadata=BackupUploadMetadata( - backup_id=backup.backup_id, - date=backup.date, - homeassistant=HAVERSION, - name=backup.name, - protected=backup.protected, - size=backup.size, - ), + backup=backup, + homeassistant_version=HAVERSION, ) for agent_id in agent_ids ), diff --git a/homeassistant/components/backup/models.py b/homeassistant/components/backup/models.py index f9a913affde..0ac2727983f 100644 --- a/homeassistant/components/backup/models.py +++ b/homeassistant/components/backup/models.py @@ -16,15 +16,3 @@ class BaseBackup: def as_dict(self) -> dict: """Return a dict representation of this backup.""" return asdict(self) - - -@dataclass() -class BackupUploadMetadata: - """Backup upload metadata.""" - - backup_id: str # The ID of the backup - date: str # The date the backup was created - homeassistant: str # The version of Home Assistant that created the backup - name: str # The name of the backup - protected: bool # If the backup is protected - size: float # The size of the backup (in bytes) diff --git a/homeassistant/components/kitchen_sink/backup.py b/homeassistant/components/kitchen_sink/backup.py index 51e14a1a074..a5f045d5c24 100644 --- a/homeassistant/components/kitchen_sink/backup.py +++ b/homeassistant/components/kitchen_sink/backup.py @@ -6,11 +6,7 @@ import logging from pathlib import Path from typing import Any -from homeassistant.components.backup import ( - BackupAgent, - BackupUploadMetadata, - BaseBackup, -) +from homeassistant.components.backup import BackupAgent, BaseBackup from homeassistant.core import HomeAssistant LOGGER = logging.getLogger(__name__) @@ -54,20 +50,13 @@ class KitchenSinkBackupAgent(BackupAgent): self, *, path: Path, - metadata: BackupUploadMetadata, + backup: BaseBackup, + homeassistant_version: str, **kwargs: Any, ) -> None: """Upload a backup.""" - LOGGER.info("Uploading backup %s %s", path.name, metadata) - self._uploads.append( - BaseBackup( - backup_id=metadata.backup_id, - date=metadata.date, - name=metadata.name, - protected=metadata.protected, - size=metadata.size, - ) - ) + LOGGER.info("Uploading backup %s %s", path.name, backup) + self._uploads.append(backup) async def async_delete_backup( self, diff --git a/tests/components/backup/common.py b/tests/components/backup/common.py index 80c2b73a3de..01164acae7a 100644 --- a/tests/components/backup/common.py +++ b/tests/components/backup/common.py @@ -10,7 +10,6 @@ from homeassistant.components.backup import ( DOMAIN, BackupAgent, BackupAgentPlatformProtocol, - BackupUploadMetadata, BaseBackup, ) from homeassistant.components.backup.const import DATA_MANAGER @@ -75,17 +74,12 @@ class BackupAgentTest(BackupAgent): self, *, path: Path, - metadata: BackupUploadMetadata, + backup: BaseBackup, + homeassistant_version: str, **kwargs: Any, ) -> None: """Upload a backup.""" - self._backups[metadata.backup_id] = BaseBackup( - backup_id=metadata.backup_id, - date=metadata.date, - name=metadata.name, - protected=metadata.protected, - size=metadata.size, - ) + self._backups[backup.backup_id] = backup async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]: """List backups."""