]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/server/gc_job.rs
move worker_task.rs into proxmox-rest-server crate
[proxmox-backup.git] / src / server / gc_job.rs
index dabbb23747739a7a92ac991ef03250cf1b4e1e86..608b58317c9afd727b2eab658ea2ddb0e36240c8 100644 (file)
@@ -1,9 +1,10 @@
 use std::sync::Arc;
 use anyhow::Error;
 
+use pbs_api_types::Authid;
+use proxmox_rest_server::WorkerTask;
+
 use crate::{
-    server::WorkerTask,
-    api2::types::*,
     server::jobstate::Job,
     backup::DataStore,
 };
@@ -14,18 +15,19 @@ pub fn do_garbage_collection_job(
     datastore: Arc<DataStore>,
     auth_id: &Authid,
     schedule: Option<String>,
+    to_stdout: bool,
 ) -> Result<String, Error> {
 
-    let email = crate::server::lookup_user_email(auth_id.user());
-
     let store = datastore.name().to_string();
 
+    let (email, notify) = crate::server::lookup_datastore_notify_settings(&store);
+
     let worker_type = job.jobtype().to_string();
     let upid_str = WorkerTask::new_thread(
         &worker_type,
         Some(store.clone()),
-        auth_id.clone(),
-        false,
+        auth_id.to_string(),
+        to_stdout,
         move |worker| {
             job.start(&worker.upid().to_string())?;
 
@@ -38,18 +40,17 @@ pub fn do_garbage_collection_job(
 
             let status = worker.create_state(&result);
 
-            match job.finish(status) {
-                Err(err) => eprintln!(
+            if let Err(err) = job.finish(status) {
+                eprintln!(
                     "could not finish job state for {}: {}",
                     job.jobtype().to_string(),
                     err
-                ),
-                Ok(_) => (),
+                );
             }
 
             if let Some(email) = email {
                 let gc_status = datastore.last_gc_status();
-                if let Err(err) = crate::server::send_gc_status(&email, &store, &gc_status, &result) {
+                if let Err(err) = crate::server::send_gc_status(&email, notify, &store, &gc_status, &result) {
                     eprintln!("send gc notification failed: {}", err);
                 }
             }