From cd32aa83b705dca32d89c19341ccdc2b0f3cf604 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Fri, 16 Jun 2023 16:03:09 +0000 Subject: [PATCH] refactor(backups): NoneBackupper class for those cases when we do not know --- .../backup/backuppers/none_backupper.py | 26 +++++++++++++++++++ selfprivacy_api/backup/providers/__init__.py | 1 + selfprivacy_api/backup/providers/provider.py | 3 ++- 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 selfprivacy_api/backup/backuppers/none_backupper.py diff --git a/selfprivacy_api/backup/backuppers/none_backupper.py b/selfprivacy_api/backup/backuppers/none_backupper.py new file mode 100644 index 0000000..0c9509e --- /dev/null +++ b/selfprivacy_api/backup/backuppers/none_backupper.py @@ -0,0 +1,26 @@ +from typing import List + +from selfprivacy_api.models.backup.snapshot import Snapshot +from selfprivacy_api.backup.backuppers import AbstractBackuper + + +class NoneBackupper(AbstractBackuper): + def is_initted(self, repo_name: str) -> bool: + return False + + def start_backup(self, folders: List[str], repo_name: str): + raise NotImplementedError + + def get_snapshots(self, repo_name) -> List[Snapshot]: + """Get all snapshots from the repo""" + raise NotImplementedError + + def init(self, repo_name): + raise NotImplementedError + + def restore_from_backup(self, repo_name: str, snapshot_id: str, folders: List[str]): + """Restore a target folder using a snapshot""" + raise NotImplementedError + + def restored_size(self, repo_name, snapshot_id) -> float: + raise NotImplementedError diff --git a/selfprivacy_api/backup/providers/__init__.py b/selfprivacy_api/backup/providers/__init__.py index 5428e80..bac51e5 100644 --- a/selfprivacy_api/backup/providers/__init__.py +++ b/selfprivacy_api/backup/providers/__init__.py @@ -9,6 +9,7 @@ PROVIDER_MAPPING = { BackupProvider.BACKBLAZE: Backblaze, BackupProvider.MEMORY: InMemoryBackup, BackupProvider.FILE: LocalFileBackup, + BackupProvider.NONE: AbstractBackupProvider, } diff --git a/selfprivacy_api/backup/providers/provider.py b/selfprivacy_api/backup/providers/provider.py index c14f1e7..c6da12d 100644 --- a/selfprivacy_api/backup/providers/provider.py +++ b/selfprivacy_api/backup/providers/provider.py @@ -5,12 +5,13 @@ require different backends """ from abc import ABC from selfprivacy_api.backup.backuppers import AbstractBackuper +from selfprivacy_api.backup.backuppers.none_backupper import NoneBackupper class AbstractBackupProvider(ABC): @property def backuper(self) -> AbstractBackuper: - raise NotImplementedError + return NoneBackupper name = "NONE"