From dd06b7f1eea52e78e624caba01e5a133ce51dafa Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Thu, 9 Mar 2023 08:03:43 +0100 Subject: [PATCH] server: switch to inline template variables & small cleanups Signed-off-by: Thomas Lamprecht --- src/server/email_notifications.rs | 40 ++++++++++++++----------------- src/server/gc_job.rs | 14 +++++------ src/server/jobstate.rs | 10 ++++---- src/server/mod.rs | 2 +- 4 files changed, 30 insertions(+), 36 deletions(-) diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs index b3298cf9..1224191c 100644 --- a/src/server/email_notifications.rs +++ b/src/server/email_notifications.rs @@ -269,7 +269,7 @@ lazy_static::lazy_static! { }); if let Err(err) = result { - eprintln!("error during template registration: {}", err); + eprintln!("error during template registration: {err}"); } hb @@ -291,16 +291,13 @@ fn send_job_status_mail(email: &str, subject: &str, text: &str) -> Result<(), Er let (config, _) = crate::config::node::config()?; let from = config.email_from; - // Note: OX has serious problems displaying text mails, - // so we include html as well - let html = format!( - "
\n{}\n
",
-        handlebars::html_escape(text)
-    );
+    // NOTE: some (web)mailers have big problems displaying text mails, so include html as well
+    let escaped_text = handlebars::html_escape(text);
+    let html = format!("
\n{escaped_text}\n
");
 
     let nodename = proxmox_sys::nodename();
 
-    let author = format!("Proxmox Backup Server - {}", nodename);
+    let author = format!("Proxmox Backup Server - {nodename}");
 
     sendmail(
         &[email],
@@ -357,8 +354,8 @@ pub fn send_gc_status(
     };
 
     let subject = match result {
-        Ok(()) => format!("Garbage Collect Datastore '{}' successful", datastore,),
-        Err(_) => format!("Garbage Collect Datastore '{}' failed", datastore,),
+        Ok(()) => format!("Garbage Collect Datastore '{datastore}' successful"),
+        Err(_) => format!("Garbage Collect Datastore '{datastore}' failed"),
     };
 
     send_job_status_mail(email, &subject, &text)?;
@@ -406,8 +403,8 @@ pub fn send_verify_status(
     }
 
     let subject = match result {
-        Ok(errors) if errors.is_empty() => format!("Verify Datastore '{}' successful", job.store,),
-        _ => format!("Verify Datastore '{}' failed", job.store,),
+        Ok(errors) if errors.is_empty() => format!("Verify Datastore '{}' successful", job.store),
+        _ => format!("Verify Datastore '{}' failed", job.store),
     };
 
     send_job_status_mail(email, &subject, &text)?;
@@ -447,8 +444,8 @@ pub fn send_prune_status(
     };
 
     let subject = match result {
-        Ok(()) => format!("Pruning datastore '{}' successful", store,),
-        Err(_) => format!("Pruning datastore '{}' failed", store,),
+        Ok(()) => format!("Pruning datastore '{store}' successful"),
+        Err(_) => format!("Pruning datastore '{store}' failed"),
     };
 
     send_job_status_mail(&email, &subject, &text)?;
@@ -530,9 +527,9 @@ pub fn send_tape_backup_status(
     };
 
     let subject = match (result, id) {
-        (Ok(()), Some(id)) => format!("Tape Backup '{}' datastore '{}' successful", id, job.store,),
+        (Ok(()), Some(id)) => format!("Tape Backup '{id}' datastore '{}' successful", job.store,),
         (Ok(()), None) => format!("Tape Backup datastore '{}' successful", job.store,),
-        (Err(_), Some(id)) => format!("Tape Backup '{}' datastore '{}' failed", id, job.store,),
+        (Err(_), Some(id)) => format!("Tape Backup '{id}' datastore '{}' failed", job.store,),
         (Err(_), None) => format!("Tape Backup datastore '{}' failed", job.store,),
     };
 
@@ -550,22 +547,21 @@ pub fn send_load_media_email(
 ) -> Result<(), Error> {
     use std::fmt::Write as _;
 
-    let subject = format!("Load Media '{}' request for drive '{}'", label_text, drive);
+    let subject = format!("Load Media '{label_text}' request for drive '{drive}'");
 
     let mut text = String::new();
 
     if let Some(reason) = reason {
         let _ = write!(
             text,
-            "The drive has the wrong or no tape inserted. Error:\n{}\n\n",
-            reason
+            "The drive has the wrong or no tape inserted. Error:\n{reason}\n\n"
         );
     }
 
     text.push_str("Please insert the requested media into the backup drive.\n\n");
 
-    let _ = writeln!(text, "Drive: {}", drive);
-    let _ = writeln!(text, "Media: {}", label_text);
+    let _ = writeln!(text, "Drive: {drive}");
+    let _ = writeln!(text, "Media: {label_text}");
 
     send_job_status_mail(to, &subject, &text)
 }
@@ -592,7 +588,7 @@ pub fn send_updates_available(updates: &[&APTUpdateInfo]) -> Result<(), Error> {
     // update mails always go to the root@pam configured email..
     if let Some(email) = lookup_user_email(Userid::root_userid()) {
         let nodename = proxmox_sys::nodename();
-        let subject = format!("New software packages available ({})", nodename);
+        let subject = format!("New software packages available ({nodename})");
 
         let (fqdn, port) = get_server_url();
 
diff --git a/src/server/gc_job.rs b/src/server/gc_job.rs
index 1940ce87..41375d72 100644
--- a/src/server/gc_job.rs
+++ b/src/server/gc_job.rs
@@ -7,7 +7,7 @@ use pbs_api_types::Authid;
 use pbs_datastore::DataStore;
 use proxmox_rest_server::WorkerTask;
 
-use crate::server::jobstate::Job;
+use crate::server::{jobstate::Job, send_gc_status};
 
 /// Runs a garbage collection job.
 pub fn do_garbage_collection_job(
@@ -30,9 +30,9 @@ pub fn do_garbage_collection_job(
         move |worker| {
             job.start(&worker.upid().to_string())?;
 
-            task_log!(worker, "starting garbage collection on store {}", store);
+            task_log!(worker, "starting garbage collection on store {store}");
             if let Some(event_str) = schedule {
-                task_log!(worker, "task triggered by schedule '{}'", event_str);
+                task_log!(worker, "task triggered by schedule '{event_str}'");
             }
 
             let result = datastore.garbage_collection(&*worker, worker.upid());
@@ -40,15 +40,13 @@ pub fn do_garbage_collection_job(
             let status = worker.create_state(&result);
 
             if let Err(err) = job.finish(status) {
-                eprintln!("could not finish job state for {}: {}", job.jobtype(), err);
+                eprintln!("could not finish job state for {}: {err}", job.jobtype());
             }
 
             if let Some(email) = email {
                 let gc_status = datastore.last_gc_status();
-                if let Err(err) =
-                    crate::server::send_gc_status(&email, notify, &store, &gc_status, &result)
-                {
-                    eprintln!("send gc notification failed: {}", err);
+                if let Err(err) = send_gc_status(&email, notify, &store, &gc_status, &result) {
+                    eprintln!("send gc notification failed: {err}");
                 }
             }
 
diff --git a/src/server/jobstate.rs b/src/server/jobstate.rs
index 159a4cc6..3f0acb8c 100644
--- a/src/server/jobstate.rs
+++ b/src/server/jobstate.rs
@@ -88,14 +88,14 @@ pub fn create_jobstate_dir() -> Result<(), Error> {
         .group(backup_user.gid);
 
     create_path(JOB_STATE_BASEDIR, Some(opts.clone()), Some(opts))
-        .map_err(|err: Error| format_err!("unable to create job state dir - {}", err))?;
+        .map_err(|err: Error| format_err!("unable to create job state dir - {err}"))?;
 
     Ok(())
 }
 
 fn get_path(jobtype: &str, jobname: &str) -> PathBuf {
     let mut path = PathBuf::from(JOB_STATE_BASEDIR);
-    path.push(format!("{}-{}.json", jobtype, jobname));
+    path.push(format!("{jobtype}-{jobname}.json"));
     path
 }
 
@@ -176,7 +176,7 @@ pub fn last_run_time(jobtype: &str, jobname: &str) -> Result {
         } => {
             let upid: UPID = upid
                 .parse()
-                .map_err(|err| format_err!("could not parse upid from state: {}", err))?;
+                .map_err(|err| format_err!("could not parse upid from state: {err}"))?;
             Ok(upid.starttime)
         }
     }
@@ -195,11 +195,11 @@ impl JobState {
                 JobState::Started { upid } => {
                     let parsed: UPID = upid
                         .parse()
-                        .map_err(|err| format_err!("error parsing upid: {}", err))?;
+                        .map_err(|err| format_err!("error parsing upid: {err}"))?;
 
                     if !worker_is_active_local(&parsed) {
                         let state = upid_read_status(&parsed)
-                            .map_err(|err| format_err!("error reading upid log status: {}", err))?;
+                            .map_err(|err| format_err!("error reading upid log status: {err}"))?;
 
                         Ok(JobState::Finished {
                             upid,
diff --git a/src/server/mod.rs b/src/server/mod.rs
index 6e73b7cf..4e3b68ac 100644
--- a/src/server/mod.rs
+++ b/src/server/mod.rs
@@ -89,6 +89,6 @@ pub fn create_active_operations_dir() -> Result<(), Error> {
         .group(backup_user.gid);
 
     create_path(pbs_datastore::ACTIVE_OPERATIONS_DIR, None, Some(options))
-        .map_err(|err: Error| format_err!("unable to create active operations dir - {}", err))?;
+        .map_err(|err: Error| format_err!("unable to create active operations dir - {err}"))?;
     Ok(())
 }