verify: factor out common parameters
all the verify methods pass along the following: - task worker - datastore - corrupt and verified chunks might as well pull that out into a common type, with the added bonus of now having a single point for construction instead of copying the default capacaties in three different modules.. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
committed by
Wolfgang Bumiller
parent
93e3581ce7
commit
9c26a3d61a
@ -3,7 +3,6 @@
|
||||
use std::collections::HashSet;
|
||||
use std::ffi::OsStr;
|
||||
use std::os::unix::ffi::OsStrExt;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::pin::Pin;
|
||||
|
||||
@ -672,17 +671,12 @@ pub fn verify(
|
||||
auth_id.clone(),
|
||||
to_stdout,
|
||||
move |worker| {
|
||||
let verified_chunks = Arc::new(Mutex::new(HashSet::with_capacity(1024*16)));
|
||||
let corrupt_chunks = Arc::new(Mutex::new(HashSet::with_capacity(64)));
|
||||
|
||||
let verify_worker = crate::backup::VerifyWorker::new(worker.clone(), datastore);
|
||||
let failed_dirs = if let Some(backup_dir) = backup_dir {
|
||||
let mut res = Vec::new();
|
||||
if !verify_backup_dir(
|
||||
datastore,
|
||||
&verify_worker,
|
||||
&backup_dir,
|
||||
verified_chunks,
|
||||
corrupt_chunks,
|
||||
worker.clone(),
|
||||
worker.upid().clone(),
|
||||
None,
|
||||
)? {
|
||||
@ -691,12 +685,9 @@ pub fn verify(
|
||||
res
|
||||
} else if let Some(backup_group) = backup_group {
|
||||
let failed_dirs = verify_backup_group(
|
||||
datastore,
|
||||
&verify_worker,
|
||||
&backup_group,
|
||||
verified_chunks,
|
||||
corrupt_chunks,
|
||||
&mut StoreProgress::new(1),
|
||||
worker.clone(),
|
||||
worker.upid(),
|
||||
None,
|
||||
)?;
|
||||
@ -711,7 +702,7 @@ pub fn verify(
|
||||
None
|
||||
};
|
||||
|
||||
verify_all_backups(datastore, worker.clone(), worker.upid(), owner, None)?
|
||||
verify_all_backups(&verify_worker, worker.upid(), owner, None)?
|
||||
};
|
||||
if !failed_dirs.is_empty() {
|
||||
worker.log("Failed to verify the following snapshots/groups:");
|
||||
|
@ -1,6 +1,6 @@
|
||||
use anyhow::{bail, format_err, Error};
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::collections::{HashMap, HashSet};
|
||||
use std::collections::HashMap;
|
||||
use nix::dir::Dir;
|
||||
|
||||
use ::serde::{Serialize};
|
||||
@ -525,15 +525,11 @@ impl BackupEnvironment {
|
||||
move |worker| {
|
||||
worker.log("Automatically verifying newly added snapshot");
|
||||
|
||||
let verified_chunks = Arc::new(Mutex::new(HashSet::with_capacity(1024*16)));
|
||||
let corrupt_chunks = Arc::new(Mutex::new(HashSet::with_capacity(64)));
|
||||
|
||||
let verify_worker = crate::backup::VerifyWorker::new(worker.clone(), datastore);
|
||||
if !verify_backup_dir_with_lock(
|
||||
datastore,
|
||||
&verify_worker,
|
||||
&backup_dir,
|
||||
verified_chunks,
|
||||
corrupt_chunks,
|
||||
worker.clone(),
|
||||
worker.upid().clone(),
|
||||
None,
|
||||
snap_lock,
|
||||
|
Reference in New Issue
Block a user