Remove class backup.BackupUploadMetadata (#130977)

Remove class backup.BackupMetadata
This commit is contained in:
Erik Montnemery
2024-11-19 21:53:22 +01:00
committed by GitHub
parent b447476bcc
commit e08fe57bf3
7 changed files with 21 additions and 60 deletions

View File

@@ -17,7 +17,7 @@ from .manager import (
BackupPlatformProtocol, BackupPlatformProtocol,
CoreBackupReaderWriter, CoreBackupReaderWriter,
) )
from .models import BackupUploadMetadata, BaseBackup from .models import BaseBackup
from .websocket import async_register_websocket_handlers from .websocket import async_register_websocket_handlers
__all__ = [ __all__ = [
@@ -25,7 +25,6 @@ __all__ = [
"BackupAgent", "BackupAgent",
"BackupAgentPlatformProtocol", "BackupAgentPlatformProtocol",
"BackupPlatformProtocol", "BackupPlatformProtocol",
"BackupUploadMetadata",
"BaseBackup", "BaseBackup",
] ]

View File

@@ -9,7 +9,7 @@ from typing import Any, Protocol
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from .models import BackupUploadMetadata, BaseBackup from .models import BaseBackup
class BackupAgentError(HomeAssistantError): class BackupAgentError(HomeAssistantError):
@@ -46,13 +46,15 @@ class BackupAgent(abc.ABC):
self, self,
*, *,
path: Path, path: Path,
metadata: BackupUploadMetadata, homeassistant_version: str,
backup: BaseBackup,
**kwargs: Any, **kwargs: Any,
) -> None: ) -> None:
"""Upload a backup. """Upload a backup.
:param path: The full file path to the backup that should be uploaded. :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 @abc.abstractmethod

View File

@@ -12,7 +12,7 @@ from homeassistant.helpers.hassio import is_hassio
from .agent import BackupAgent, LocalBackupAgent from .agent import BackupAgent, LocalBackupAgent
from .const import LOGGER from .const import LOGGER
from .models import BackupUploadMetadata, BaseBackup from .models import BaseBackup
from .util import read_backup from .util import read_backup
@@ -78,17 +78,11 @@ class CoreLocalBackupAgent(LocalBackupAgent):
self, self,
*, *,
path: Path, path: Path,
metadata: BackupUploadMetadata, backup: BaseBackup,
**kwargs: Any, **kwargs: Any,
) -> None: ) -> None:
"""Upload a backup.""" """Upload a backup."""
self._backups[metadata.backup_id] = BaseBackup( self._backups[backup.backup_id] = backup
backup_id=metadata.backup_id,
date=metadata.date,
name=metadata.name,
protected=metadata.protected,
size=round(path.stat().st_size / 1_048_576, 2),
)
async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]: async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]:
"""List backups.""" """List backups."""

View File

@@ -43,7 +43,7 @@ from .const import (
EXCLUDE_FROM_BACKUP, EXCLUDE_FROM_BACKUP,
LOGGER, LOGGER,
) )
from .models import BackupUploadMetadata, BaseBackup from .models import BaseBackup
from .util import read_backup from .util import read_backup
@@ -226,20 +226,15 @@ class BackupManager:
path: Path, path: Path,
) -> None: ) -> None:
"""Upload a backup to selected agents.""" """Upload a backup to selected agents."""
LOGGER.warning("Uploading backup %s to agents %s", backup.backup_id, agent_ids)
self.syncing = True self.syncing = True
try: try:
sync_backup_results = await asyncio.gather( sync_backup_results = await asyncio.gather(
*( *(
self.backup_agents[agent_id].async_upload_backup( self.backup_agents[agent_id].async_upload_backup(
path=path, path=path,
metadata=BackupUploadMetadata( backup=backup,
backup_id=backup.backup_id, homeassistant_version=HAVERSION,
date=backup.date,
homeassistant=HAVERSION,
name=backup.name,
protected=backup.protected,
size=backup.size,
),
) )
for agent_id in agent_ids for agent_id in agent_ids
), ),

View File

@@ -16,15 +16,3 @@ class BaseBackup:
def as_dict(self) -> dict: def as_dict(self) -> dict:
"""Return a dict representation of this backup.""" """Return a dict representation of this backup."""
return asdict(self) 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)

View File

@@ -6,11 +6,7 @@ import logging
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
from homeassistant.components.backup import ( from homeassistant.components.backup import BackupAgent, BaseBackup
BackupAgent,
BackupUploadMetadata,
BaseBackup,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
@@ -54,20 +50,13 @@ class KitchenSinkBackupAgent(BackupAgent):
self, self,
*, *,
path: Path, path: Path,
metadata: BackupUploadMetadata, backup: BaseBackup,
homeassistant_version: str,
**kwargs: Any, **kwargs: Any,
) -> None: ) -> None:
"""Upload a backup.""" """Upload a backup."""
LOGGER.info("Uploading backup %s %s", path.name, metadata) LOGGER.info("Uploading backup %s %s", path.name, backup)
self._uploads.append( self._uploads.append(backup)
BaseBackup(
backup_id=metadata.backup_id,
date=metadata.date,
name=metadata.name,
protected=metadata.protected,
size=metadata.size,
)
)
async def async_delete_backup( async def async_delete_backup(
self, self,

View File

@@ -10,7 +10,6 @@ from homeassistant.components.backup import (
DOMAIN, DOMAIN,
BackupAgent, BackupAgent,
BackupAgentPlatformProtocol, BackupAgentPlatformProtocol,
BackupUploadMetadata,
BaseBackup, BaseBackup,
) )
from homeassistant.components.backup.const import DATA_MANAGER from homeassistant.components.backup.const import DATA_MANAGER
@@ -75,17 +74,12 @@ class BackupAgentTest(BackupAgent):
self, self,
*, *,
path: Path, path: Path,
metadata: BackupUploadMetadata, backup: BaseBackup,
homeassistant_version: str,
**kwargs: Any, **kwargs: Any,
) -> None: ) -> None:
"""Upload a backup.""" """Upload a backup."""
self._backups[metadata.backup_id] = BaseBackup( self._backups[backup.backup_id] = backup
backup_id=metadata.backup_id,
date=metadata.date,
name=metadata.name,
protected=metadata.protected,
size=metadata.size,
)
async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]: async def async_list_backups(self, **kwargs: Any) -> list[BaseBackup]:
"""List backups.""" """List backups."""