[pbs-devel] [PATCH proxmox-backup v2 1/2] tape/send_load_media_email: move to server/email_notifications

Dominik Csapak d.csapak at proxmox.com
Thu Mar 11 09:24:52 CET 2021


and reuse 'send_job_status_mail' there so that we get consistent
formatted mails from pbs (e.g. html part and author)

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* better commit subject/message
* move code to email related module
* do not make send_job_status_mail pub

 src/server/email_notifications.rs | 24 +++++++++++++++++++++
 src/tape/changer/email.rs         | 36 -------------------------------
 src/tape/changer/mod.rs           |  3 ---
 src/tape/drive/mod.rs             |  6 ++++--
 4 files changed, 28 insertions(+), 41 deletions(-)
 delete mode 100644 src/tape/changer/email.rs

diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs
index 306e84d0..229443f6 100644
--- a/src/server/email_notifications.rs
+++ b/src/server/email_notifications.rs
@@ -448,6 +448,30 @@ pub fn send_tape_backup_status(
     Ok(())
 }
 
+/// Send email to a person to request a manual media change
+pub fn send_load_media_email(
+    drive: &str,
+    label_text: &str,
+    to: &str,
+    reason: Option<String>,
+) -> Result<(), Error> {
+
+    let subject = format!("Load Media '{}' request for drive '{}'", label_text, drive);
+
+    let mut text = String::new();
+
+    if let Some(reason) = reason {
+        text.push_str(&format!("The drive has the wrong or no tape inserted. Error:\n{}\n\n", reason));
+    }
+
+    text.push_str("Please insert the requested media into the backup drive.\n\n");
+
+    text.push_str(&format!("Drive: {}\n", drive));
+    text.push_str(&format!("Media: {}\n", label_text));
+
+    send_job_status_mail(to, &subject, &text)
+}
+
 fn get_server_url() -> (String, usize) {
 
     // user will surely request that they can change this
diff --git a/src/tape/changer/email.rs b/src/tape/changer/email.rs
deleted file mode 100644
index abd7ead8..00000000
--- a/src/tape/changer/email.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-use anyhow::Error;
-
-use proxmox::tools::email::sendmail;
-
-/// Send email to a person to request a manual media change
-pub fn send_load_media_email(
-    drive: &str,
-    label_text: &str,
-    to: &str,
-    reason: Option<String>,
-) -> Result<(), Error> {
-
-    let subject = format!("Load Media '{}' request for drive '{}'", label_text, drive);
-
-    let mut text = String::new();
-
-    if let Some(reason) = reason {
-        text.push_str(&format!("The drive has the wrong or no tape inserted. Error:\n{}\n\n", reason));
-    }
-
-    text.push_str("Please insert the requested media into the backup drive.\n\n");
-
-    text.push_str(&format!("Drive: {}\n", drive));
-    text.push_str(&format!("Media: {}\n", label_text));
-
-    sendmail(
-        &[to],
-        &subject,
-        Some(&text),
-        None,
-        None,
-        None,
-    )?;
-
-    Ok(())
-}
diff --git a/src/tape/changer/mod.rs b/src/tape/changer/mod.rs
index 1e58a437..a25df49b 100644
--- a/src/tape/changer/mod.rs
+++ b/src/tape/changer/mod.rs
@@ -1,8 +1,5 @@
 //! Media changer implementation (SCSI media changer)
 
-mod email;
-pub use email::*;
-
 pub mod sg_pt_changer;
 
 pub mod mtx;
diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs
index a386abf8..1267a481 100644
--- a/src/tape/drive/mod.rs
+++ b/src/tape/drive/mod.rs
@@ -51,7 +51,10 @@ use crate::{
         VirtualTapeDrive,
         LinuxTapeDrive,
     },
-    server::WorkerTask,
+    server::{
+        send_load_media_email,
+        WorkerTask,
+    },
     tape::{
         TapeWrite,
         TapeRead,
@@ -66,7 +69,6 @@ use crate::{
         changer::{
             MediaChange,
             MtxMediaChanger,
-            send_load_media_email,
         },
     },
 };
-- 
2.20.1






More information about the pbs-devel mailing list