This commit is contained in:
timeshifter
2022-12-06 15:10:36 +01:00
parent 695c4fc924
commit 28963c3e64
11 changed files with 58 additions and 41 deletions
+17 -4
View File
@@ -1,18 +1,25 @@
from __future__ import annotations
from datetime import timedelta
from subprocess import Popen
import config
from dataset import Dataset
from pool import Pool, ExternalPool
from snapshot import Snapshot
from zfs import ZFS
from zfs_backup.commands.zfs import ZFS
class Manager:
"""Controls the overall backup process."""
def __init__(self, local_pool: Pool, external_pool: ExternalPool):
def __init__(
self,
local_pool: Pool,
external_pool: ExternalPool,
recent_scrub_timedelta: timedelta,
):
self._recent_scrub_timedelta = recent_scrub_timedelta
self._local_pool = local_pool
self._external_pool = external_pool
@@ -20,10 +27,16 @@ class Manager:
"""Backup workflow."""
self._external_pool.import_()
try:
self._external_pool.scrub(skip_if_recently_scrubbed=True)
self._external_pool.scrub(
skip_if_recently_scrubbed=True,
recent_scrub_timedelta=self._recent_scrub_timedelta,
)
self._backup_all_datasets()
self._external_pool.clean_old_snapshots()
self._external_pool.scrub(skip_if_recently_scrubbed=False)
self._external_pool.scrub(
skip_if_recently_scrubbed=False,
recent_scrub_timedelta=self._recent_scrub_timedelta,
)
finally:
self._external_pool.export()