refactor
This commit is contained in:
+17
-4
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user