From c8449217dcdb46c0943719d05284c7b06db24f73 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 24 Sep 2021 07:40:49 +0200 Subject: [PATCH] rename TaskState to WorkerTaskContext --- pbs-datastore/src/chunk_store.rs | 6 +++--- pbs-tools/src/task.rs | 18 +++++++++--------- proxmox-rest-server/src/worker_task.rs | 7 ++++--- src/api2/config/datastore.rs | 5 +++-- src/api2/tape/backup.rs | 2 +- src/api2/tape/restore.rs | 2 +- src/backup/datastore.rs | 8 ++++---- src/backup/verify.rs | 8 ++++---- src/tape/drive/mod.rs | 2 +- tests/worker-task-abort.rs | 2 +- 10 files changed, 31 insertions(+), 29 deletions(-) diff --git a/pbs-datastore/src/chunk_store.rs b/pbs-datastore/src/chunk_store.rs index 5c50e4fc..2e37999e 100644 --- a/pbs-datastore/src/chunk_store.rs +++ b/pbs-datastore/src/chunk_store.rs @@ -9,7 +9,7 @@ use proxmox::tools::fs::{CreateOptions, create_path, create_dir}; use pbs_api_types::GarbageCollectionStatus; use pbs_tools::process_locker::{self, ProcessLocker}; -use pbs_tools::{task_log, task::TaskState}; +use pbs_tools::{task_log, task::WorkerTaskContext}; use crate::DataBlob; @@ -65,7 +65,7 @@ impl ChunkStore { &self.base } - pub fn create

(name: &str, path: P, uid: nix::unistd::Uid, gid: nix::unistd::Gid, worker: Option<&dyn TaskState>) -> Result + pub fn create

(name: &str, path: P, uid: nix::unistd::Uid, gid: nix::unistd::Gid, worker: Option<&dyn WorkerTaskContext>) -> Result where P: Into, { @@ -285,7 +285,7 @@ impl ChunkStore { oldest_writer: i64, phase1_start_time: i64, status: &mut GarbageCollectionStatus, - worker: &dyn TaskState, + worker: &dyn WorkerTaskContext, fail_on_shutdown: F, ) -> Result<(), Error> { use nix::sys::stat::fstatat; diff --git a/pbs-tools/src/task.rs b/pbs-tools/src/task.rs index 8cfd6fe8..e8648a49 100644 --- a/pbs-tools/src/task.rs +++ b/pbs-tools/src/task.rs @@ -1,7 +1,7 @@ use anyhow::Error; /// `WorkerTask` methods commonly used from contexts otherwise not related to the API server. -pub trait TaskState { +pub trait WorkerTaskContext { /// If the task should be aborted, this should fail with a reasonable error message. fn check_abort(&self) -> Result<(), Error>; @@ -10,47 +10,47 @@ pub trait TaskState { } /// Convenience implementation: -impl TaskState for std::sync::Arc { +impl WorkerTaskContext for std::sync::Arc { fn check_abort(&self) -> Result<(), Error> { - ::check_abort(&*self) + ::check_abort(&*self) } fn log(&self, level: log::Level, message: &std::fmt::Arguments) { - ::log(&*self, level, message) + ::log(&*self, level, message) } } #[macro_export] macro_rules! task_error { ($task:expr, $($fmt:tt)+) => {{ - $crate::task::TaskState::log(&*$task, log::Level::Error, &format_args!($($fmt)+)) + $crate::task::WorkerTaskContext::log(&*$task, log::Level::Error, &format_args!($($fmt)+)) }}; } #[macro_export] macro_rules! task_warn { ($task:expr, $($fmt:tt)+) => {{ - $crate::task::TaskState::log(&*$task, log::Level::Warn, &format_args!($($fmt)+)) + $crate::task::WorkerTaskContext::log(&*$task, log::Level::Warn, &format_args!($($fmt)+)) }}; } #[macro_export] macro_rules! task_log { ($task:expr, $($fmt:tt)+) => {{ - $crate::task::TaskState::log(&*$task, log::Level::Info, &format_args!($($fmt)+)) + $crate::task::WorkerTaskContext::log(&*$task, log::Level::Info, &format_args!($($fmt)+)) }}; } #[macro_export] macro_rules! task_debug { ($task:expr, $($fmt:tt)+) => {{ - $crate::task::TaskState::log(&*$task, log::Level::Debug, &format_args!($($fmt)+)) + $crate::task::WorkerTaskContext::log(&*$task, log::Level::Debug, &format_args!($($fmt)+)) }}; } #[macro_export] macro_rules! task_trace { ($task:expr, $($fmt:tt)+) => {{ - $crate::task::TaskState::log(&*$task, log::Level::Trace, &format_args!($($fmt)+)) + $crate::task::WorkerTaskContext::log(&*$task, log::Level::Trace, &format_args!($($fmt)+)) }}; } diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs index b6ed6862..1b20391a 100644 --- a/proxmox-rest-server/src/worker_task.rs +++ b/proxmox-rest-server/src/worker_task.rs @@ -20,6 +20,7 @@ use proxmox::try_block; use proxmox::tools::fs::{create_path, replace_file, atomic_open_or_create_file, CreateOptions}; use proxmox::api::upid::UPID; +use pbs_tools::task::WorkerTaskContext; use pbs_tools::logrotate::{LogRotate, LogRotateFiles}; use crate::{CommandoSocket, FileLogger, FileLogOptions}; @@ -834,7 +835,7 @@ impl WorkerTask { } /// Fail if abort was requested. - pub fn fail_on_abort(&self) -> Result<(), Error> { + pub fn check_abort(&self) -> Result<(), Error> { if self.abort_requested() { bail!("abort requested - aborting task"); } @@ -859,9 +860,9 @@ impl WorkerTask { } } -impl pbs_tools::task::TaskState for WorkerTask { +impl WorkerTaskContext for WorkerTask { fn check_abort(&self) -> Result<(), Error> { - self.fail_on_abort() + self.check_abort() } fn log(&self, level: log::Level, message: &std::fmt::Arguments) { diff --git a/src/api2/config/datastore.rs b/src/api2/config/datastore.rs index 0f9234ca..0819d5ec 100644 --- a/src/api2/config/datastore.rs +++ b/src/api2/config/datastore.rs @@ -16,7 +16,6 @@ use pbs_api_types::{ PRIV_DATASTORE_ALLOCATE, PRIV_DATASTORE_AUDIT, PRIV_DATASTORE_MODIFY, DataStoreConfig, DataStoreConfigUpdater, }; -use pbs_tools::task::TaskState; use crate::api2::config::sync::delete_sync_job; use crate::api2::config::verify::delete_verification_job; @@ -26,6 +25,8 @@ use crate::api2::admin::{ verify::list_verification_jobs, }; use pbs_config::CachedUserInfo; +use pbs_tools::task::WorkerTaskContext; + use proxmox_rest_server::WorkerTask; use crate::server::jobstate; @@ -69,7 +70,7 @@ pub(crate) fn do_create_datastore( _lock: BackupLockGuard, mut config: SectionConfigData, datastore: DataStoreConfig, - worker: Option<&dyn TaskState>, + worker: Option<&dyn WorkerTaskContext>, ) -> Result<(), Error> { let path: PathBuf = datastore.path.clone().into(); diff --git a/src/api2/tape/backup.rs b/src/api2/tape/backup.rs index 5effa99d..9529eca3 100644 --- a/src/api2/tape/backup.rs +++ b/src/api2/tape/backup.rs @@ -22,7 +22,7 @@ use pbs_api_types::{ use pbs_datastore::StoreProgress; use pbs_datastore::backup_info::{BackupDir, BackupInfo}; -use pbs_tools::{task_log, task_warn, task::TaskState}; +use pbs_tools::{task_log, task_warn}; use pbs_config::CachedUserInfo; use proxmox_rest_server::WorkerTask; diff --git a/src/api2/tape/restore.rs b/src/api2/tape/restore.rs index 045d8d6c..8feed754 100644 --- a/src/api2/tape/restore.rs +++ b/src/api2/tape/restore.rs @@ -45,7 +45,7 @@ use pbs_tape::{ TapeRead, BlockReadError, MediaContentHeader, PROXMOX_BACKUP_CONTENT_HEADER_MAGIC_1_0, }; -use pbs_tools::{task_log, task_warn, task::TaskState}; +use pbs_tools::{task_log, task_warn}; use proxmox_rest_server::WorkerTask; use crate::{ diff --git a/src/backup/datastore.rs b/src/backup/datastore.rs index fcef2d39..ec37286f 100644 --- a/src/backup/datastore.rs +++ b/src/backup/datastore.rs @@ -26,7 +26,7 @@ use pbs_datastore::manifest::{ use pbs_tools::format::HumanByte; use pbs_tools::fs::{lock_dir_noblock, DirLockGuard}; use pbs_tools::process_locker::ProcessLockSharedGuard; -use pbs_tools::{task_log, task_warn, task::TaskState}; +use pbs_tools::{task_log, task_warn, task::WorkerTaskContext}; use pbs_config::{open_backup_lockfile, BackupLockGuard}; use proxmox_rest_server::fail_on_shutdown; @@ -498,7 +498,7 @@ impl DataStore { index: I, file_name: &Path, // only used for error reporting status: &mut GarbageCollectionStatus, - worker: &dyn TaskState, + worker: &dyn WorkerTaskContext, ) -> Result<(), Error> { status.index_file_count += 1; @@ -534,7 +534,7 @@ impl DataStore { fn mark_used_chunks( &self, status: &mut GarbageCollectionStatus, - worker: &dyn TaskState, + worker: &dyn WorkerTaskContext, ) -> Result<(), Error> { let image_list = self.list_images()?; @@ -611,7 +611,7 @@ impl DataStore { !matches!(self.gc_mutex.try_lock(), Ok(_)) } - pub fn garbage_collection(&self, worker: &dyn TaskState, upid: &UPID) -> Result<(), Error> { + pub fn garbage_collection(&self, worker: &dyn WorkerTaskContext, upid: &UPID) -> Result<(), Error> { if let Ok(ref mut _mutex) = self.gc_mutex.try_lock() { diff --git a/src/backup/verify.rs b/src/backup/verify.rs index 051d6918..40185f8f 100644 --- a/src/backup/verify.rs +++ b/src/backup/verify.rs @@ -12,7 +12,7 @@ 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 pbs_tools::{task_log, task::TaskState}; +use pbs_tools::{task_log, task::WorkerTaskContext}; use crate::{ backup::DataStore, @@ -22,7 +22,7 @@ use crate::{ /// 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, + worker: Arc, datastore: Arc, verified_chunks: Arc>>, corrupt_chunks: Arc>>, @@ -30,7 +30,7 @@ pub struct VerifyWorker { impl VerifyWorker { /// Creates a new VerifyWorker for a given task worker and datastore. - pub fn new(worker: Arc, datastore: Arc) -> Self { + pub fn new(worker: Arc, datastore: Arc) -> Self { Self { worker, datastore, @@ -73,7 +73,7 @@ fn verify_blob( fn rename_corrupted_chunk( datastore: Arc, digest: &[u8;32], - worker: &dyn TaskState, + worker: &dyn WorkerTaskContext, ) { let (path, digest_str) = datastore.chunk_path(digest); diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs index e8e60d19..660255d2 100644 --- a/src/tape/drive/mod.rs +++ b/src/tape/drive/mod.rs @@ -30,7 +30,7 @@ use proxmox::{ use pbs_api_types::{VirtualTapeDrive, LtoTapeDrive, Fingerprint}; use pbs_config::key_config::KeyConfig; -use pbs_tools::{task_log, task::TaskState}; +use pbs_tools::task_log; use pbs_tape::{ TapeWrite, TapeRead, BlockReadError, MediaContentHeader, diff --git a/tests/worker-task-abort.rs b/tests/worker-task-abort.rs index 08b8fa9e..2481d984 100644 --- a/tests/worker-task-abort.rs +++ b/tests/worker-task-abort.rs @@ -17,7 +17,7 @@ fn garbage_collection(worker: &WorkerTask) -> Result<(), Error> { worker.log("start garbage collection"); for i in 0..50 { - worker.fail_on_abort()?; + worker.check_abort()?; flog!(worker, "progress {}", i);