]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/backup/verify.rs
use new proxmox-sys crate
[proxmox-backup.git] / src / backup / verify.rs
index 59aa25d01ab0286d206026a5b2457d114e43075e..a1d8a838b49a2a71bfd251f33472ca4c80f1b2c4 100644 (file)
@@ -6,34 +6,21 @@ use std::time::Instant;
 
 use anyhow::{bail, format_err, Error};
 
+use proxmox_sys::{task_log, worker_task_context::WorkerTaskContext};
+
+use pbs_api_types::{Authid, CryptMode, VerifyState, UPID, SnapshotVerifyState};
+use pbs_datastore::{DataStore, DataBlob, StoreProgress};
+use pbs_datastore::backup_info::{BackupGroup, BackupDir, BackupInfo};
+use pbs_datastore::index::IndexFile;
+use pbs_datastore::manifest::{archive_type, ArchiveType, BackupManifest, FileInfo};
 use pbs_tools::fs::lock_dir_noblock_shared;
 
-use crate::{
-    api2::types::*,
-    backup::{
-        DataStore,
-        StoreProgress,
-        DataBlob,
-        BackupGroup,
-        BackupDir,
-        BackupInfo,
-        BackupManifest,
-        IndexFile,
-        CryptMode,
-        FileInfo,
-        ArchiveType,
-        archive_type,
-    },
-    server::UPID,
-    task::TaskState,
-    task_log,
-    tools::ParallelHandler,
-};
+use crate::tools::ParallelHandler;
 
 /// A VerifyWorker encapsulates a task worker, datastore and information about which chunks have
 /// already been verified or detected as corrupt.
 pub struct VerifyWorker {
-    worker: Arc<dyn TaskState + Send + Sync>,
+    worker: Arc<dyn WorkerTaskContext>,
     datastore: Arc<DataStore>,
     verified_chunks: Arc<Mutex<HashSet<[u8; 32]>>>,
     corrupt_chunks: Arc<Mutex<HashSet<[u8; 32]>>>,
@@ -41,7 +28,7 @@ pub struct VerifyWorker {
 
 impl VerifyWorker {
     /// Creates a new VerifyWorker for a given task worker and datastore.
-    pub fn new(worker: Arc<dyn TaskState + Send + Sync>, datastore: Arc<DataStore>) -> Self {
+    pub fn new(worker: Arc<dyn WorkerTaskContext>, datastore: Arc<DataStore>) -> Self {
         Self {
             worker,
             datastore,
@@ -84,7 +71,7 @@ fn verify_blob(
 fn rename_corrupted_chunk(
     datastore: Arc<DataStore>,
     digest: &[u8;32],
-    worker: &dyn TaskState,
+    worker: &dyn WorkerTaskContext,
 ) {
     let (path, digest_str) = datastore.chunk_path(digest);
 
@@ -183,7 +170,7 @@ fn verify_index_chunks(
     let check_abort = |pos: usize| -> Result<(), Error> {
         if pos & 1023 == 0 {
             verify_worker.worker.check_abort()?;
-            crate::tools::fail_on_shutdown()?;
+            verify_worker.worker.fail_on_shutdown()?;
         }
         Ok(())
     };
@@ -195,7 +182,7 @@ fn verify_index_chunks(
 
     for (pos, _) in chunk_list {
         verify_worker.worker.check_abort()?;
-        crate::tools::fail_on_shutdown()?;
+        verify_worker.worker.fail_on_shutdown()?;
 
         let info = index.chunk_info(pos).unwrap();
 
@@ -375,7 +362,7 @@ pub fn verify_backup_dir_with_lock(
 
     let mut verify_result = VerifyState::Ok;
     for info in manifest.files() {
-        let result = proxmox::try_block!({
+        let result = proxmox_lang::try_block!({
             task_log!(verify_worker.worker, "  check {}", info.filename);
             match archive_type(&info.filename)? {
                 ArchiveType::FixedIndex => verify_fixed_index(verify_worker, &backup_dir, info),
@@ -387,7 +374,7 @@ pub fn verify_backup_dir_with_lock(
         });
 
         verify_worker.worker.check_abort()?;
-        crate::tools::fail_on_shutdown()?;
+        verify_worker.worker.fail_on_shutdown()?;
 
         if let Err(err) = result {
             task_log!(
@@ -570,7 +557,7 @@ pub fn verify_filter(
             match outdated_after {
                 None => false, // never re-verify if ignored and no max age
                 Some(max_age) => {
-                    let now = proxmox::tools::time::epoch_i64();
+                    let now = proxmox_time::epoch_i64();
                     let days_since_last_verify = (now - last_verify.upid.starttime) / 86400;
 
                     days_since_last_verify > max_age