all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Lukas Wagner <l.wagner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox v2 02/20] notify: make api methods take config struct ownership
Date: Fri, 19 Apr 2024 16:17:05 +0200	[thread overview]
Message-ID: <20240419141723.377507-3-l.wagner@proxmox.com> (raw)
In-Reply-To: <20240419141723.377507-1-l.wagner@proxmox.com>

This saves us from some of the awkward cloning steps when updating.

Suggested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Folke Gleumes <f.gleumes@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
---
 proxmox-notify/src/api/gotify.rs   | 46 +++++++++---------
 proxmox-notify/src/api/matcher.rs  | 38 +++++++--------
 proxmox-notify/src/api/mod.rs      | 14 +++---
 proxmox-notify/src/api/sendmail.rs | 40 +++++++--------
 proxmox-notify/src/api/smtp.rs     | 78 +++++++++++++++---------------
 5 files changed, 108 insertions(+), 108 deletions(-)

diff --git a/proxmox-notify/src/api/gotify.rs b/proxmox-notify/src/api/gotify.rs
index a93a024..15d94cb 100644
--- a/proxmox-notify/src/api/gotify.rs
+++ b/proxmox-notify/src/api/gotify.rs
@@ -41,8 +41,8 @@ pub fn get_endpoint(config: &Config, name: &str) -> Result<GotifyConfig, HttpErr
 /// Panics if the names of the private config and the public config do not match.
 pub fn add_endpoint(
     config: &mut Config,
-    endpoint_config: &GotifyConfig,
-    private_endpoint_config: &GotifyPrivateConfig,
+    endpoint_config: GotifyConfig,
+    private_endpoint_config: GotifyPrivateConfig,
 ) -> Result<(), HttpError> {
     if endpoint_config.name != private_endpoint_config.name {
         // Programming error by the user of the crate, thus we panic
@@ -51,11 +51,11 @@ pub fn add_endpoint(
 
     super::ensure_unique(config, &endpoint_config.name)?;
 
-    set_private_config_entry(config, private_endpoint_config)?;
+    set_private_config_entry(config, &private_endpoint_config)?;
 
     config
         .config
-        .set_data(&endpoint_config.name, GOTIFY_TYPENAME, endpoint_config)
+        .set_data(&endpoint_config.name, GOTIFY_TYPENAME, &endpoint_config)
         .map_err(|e| {
             http_err!(
                 INTERNAL_SERVER_ERROR,
@@ -75,8 +75,8 @@ pub fn add_endpoint(
 pub fn update_endpoint(
     config: &mut Config,
     name: &str,
-    endpoint_config_updater: &GotifyConfigUpdater,
-    private_endpoint_config_updater: &GotifyPrivateConfigUpdater,
+    endpoint_config_updater: GotifyConfigUpdater,
+    private_endpoint_config_updater: GotifyPrivateConfigUpdater,
     delete: Option<&[DeleteableGotifyProperty]>,
     digest: Option<&[u8]>,
 ) -> Result<(), HttpError> {
@@ -93,11 +93,11 @@ pub fn update_endpoint(
         }
     }
 
-    if let Some(server) = &endpoint_config_updater.server {
-        endpoint.server = server.into();
+    if let Some(server) = endpoint_config_updater.server {
+        endpoint.server = server;
     }
 
-    if let Some(token) = &private_endpoint_config_updater.token {
+    if let Some(token) = private_endpoint_config_updater.token {
         set_private_config_entry(
             config,
             &GotifyPrivateConfig {
@@ -107,12 +107,12 @@ pub fn update_endpoint(
         )?;
     }
 
-    if let Some(comment) = &endpoint_config_updater.comment {
-        endpoint.comment = Some(comment.into());
+    if let Some(comment) = endpoint_config_updater.comment {
+        endpoint.comment = Some(comment)
     }
 
-    if let Some(disable) = &endpoint_config_updater.disable {
-        endpoint.disable = Some(*disable);
+    if let Some(disable) = endpoint_config_updater.disable {
+        endpoint.disable = Some(disable);
     }
 
     config
@@ -173,13 +173,13 @@ mod tests {
     pub fn add_default_gotify_endpoint(config: &mut Config) -> Result<(), HttpError> {
         add_endpoint(
             config,
-            &GotifyConfig {
+            GotifyConfig {
                 name: "gotify-endpoint".into(),
                 server: "localhost".into(),
                 comment: Some("comment".into()),
                 ..Default::default()
             },
-            &GotifyPrivateConfig {
+            GotifyPrivateConfig {
                 name: "gotify-endpoint".into(),
                 token: "supersecrettoken".into(),
             },
@@ -196,8 +196,8 @@ mod tests {
         assert!(update_endpoint(
             &mut config,
             "test",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             None,
             None
         )
@@ -214,8 +214,8 @@ mod tests {
         assert!(update_endpoint(
             &mut config,
             "gotify-endpoint",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             None,
             Some(&[0; 32])
         )
@@ -234,12 +234,12 @@ mod tests {
         update_endpoint(
             &mut config,
             "gotify-endpoint",
-            &GotifyConfigUpdater {
+            GotifyConfigUpdater {
                 server: Some("newhost".into()),
                 comment: Some("newcomment".into()),
                 ..Default::default()
             },
-            &GotifyPrivateConfigUpdater {
+            GotifyPrivateConfigUpdater {
                 token: Some("changedtoken".into()),
             },
             None,
@@ -263,8 +263,8 @@ mod tests {
         update_endpoint(
             &mut config,
             "gotify-endpoint",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             Some(&[DeleteableGotifyProperty::Comment]),
             None,
         )?;
diff --git a/proxmox-notify/src/api/matcher.rs b/proxmox-notify/src/api/matcher.rs
index ca01bc9..f0eabd9 100644
--- a/proxmox-notify/src/api/matcher.rs
+++ b/proxmox-notify/src/api/matcher.rs
@@ -36,7 +36,7 @@ pub fn get_matcher(config: &Config, name: &str) -> Result<MatcherConfig, HttpErr
 /// Returns a `HttpError` if:
 ///   - an entity with the same name already exists (`400 Bad request`)
 ///   - the configuration could not be saved (`500 Internal server error`)
-pub fn add_matcher(config: &mut Config, matcher_config: &MatcherConfig) -> Result<(), HttpError> {
+pub fn add_matcher(config: &mut Config, matcher_config: MatcherConfig) -> Result<(), HttpError> {
     super::ensure_unique(config, &matcher_config.name)?;
 
     if let Some(targets) = matcher_config.target.as_deref() {
@@ -45,7 +45,7 @@ pub fn add_matcher(config: &mut Config, matcher_config: &MatcherConfig) -> Resul
 
     config
         .config
-        .set_data(&matcher_config.name, MATCHER_TYPENAME, matcher_config)
+        .set_data(&matcher_config.name, MATCHER_TYPENAME, &matcher_config)
         .map_err(|e| {
             http_err!(
                 INTERNAL_SERVER_ERROR,
@@ -67,7 +67,7 @@ pub fn add_matcher(config: &mut Config, matcher_config: &MatcherConfig) -> Resul
 pub fn update_matcher(
     config: &mut Config,
     name: &str,
-    matcher_updater: &MatcherConfigUpdater,
+    matcher_updater: MatcherConfigUpdater,
     delete: Option<&[DeleteableMatcherProperty]>,
     digest: Option<&[u8]>,
 ) -> Result<(), HttpError> {
@@ -90,16 +90,16 @@ pub fn update_matcher(
         }
     }
 
-    if let Some(match_severity) = &matcher_updater.match_severity {
-        matcher.match_severity = Some(match_severity.clone());
+    if let Some(match_severity) = matcher_updater.match_severity {
+        matcher.match_severity = Some(match_severity);
     }
 
-    if let Some(match_field) = &matcher_updater.match_field {
-        matcher.match_field = Some(match_field.clone());
+    if let Some(match_field) = matcher_updater.match_field {
+        matcher.match_field = Some(match_field);
     }
 
-    if let Some(match_calendar) = &matcher_updater.match_calendar {
-        matcher.match_calendar = Some(match_calendar.clone());
+    if let Some(match_calendar) = matcher_updater.match_calendar {
+        matcher.match_calendar = Some(match_calendar);
     }
 
     if let Some(mode) = matcher_updater.mode {
@@ -110,17 +110,17 @@ pub fn update_matcher(
         matcher.invert_match = Some(invert_match);
     }
 
-    if let Some(comment) = &matcher_updater.comment {
-        matcher.comment = Some(comment.into());
+    if let Some(comment) = matcher_updater.comment {
+        matcher.comment = Some(comment);
     }
 
-    if let Some(disable) = &matcher_updater.disable {
-        matcher.disable = Some(*disable);
+    if let Some(disable) = matcher_updater.disable {
+        matcher.disable = Some(disable);
     }
 
-    if let Some(target) = &matcher_updater.target {
+    if let Some(target) = matcher_updater.target {
         super::ensure_endpoints_exist(config, target.as_slice())?;
-        matcher.target = Some(target.clone());
+        matcher.target = Some(target);
     }
 
     config
@@ -178,7 +178,7 @@ matcher: matcher2
     #[test]
     fn test_update_not_existing_returns_error() -> Result<(), HttpError> {
         let mut config = empty_config();
-        assert!(update_matcher(&mut config, "test", &Default::default(), None, None).is_err());
+        assert!(update_matcher(&mut config, "test", Default::default(), None, None).is_err());
         Ok(())
     }
 
@@ -188,7 +188,7 @@ matcher: matcher2
         assert!(update_matcher(
             &mut config,
             "matcher1",
-            &Default::default(),
+            Default::default(),
             None,
             Some(&[0u8; 32])
         )
@@ -206,7 +206,7 @@ matcher: matcher2
         update_matcher(
             &mut config,
             "matcher1",
-            &MatcherConfigUpdater {
+            MatcherConfigUpdater {
                 mode: Some(MatchModeOperator::Any),
                 match_field: None,
                 match_severity: None,
@@ -230,7 +230,7 @@ matcher: matcher2
         update_matcher(
             &mut config,
             "matcher1",
-            &Default::default(),
+            Default::default(),
             Some(&[
                 DeleteableMatcherProperty::InvertMatch,
                 DeleteableMatcherProperty::Mode,
diff --git a/proxmox-notify/src/api/mod.rs b/proxmox-notify/src/api/mod.rs
index 7cc2593..bb0371d 100644
--- a/proxmox-notify/src/api/mod.rs
+++ b/proxmox-notify/src/api/mod.rs
@@ -173,13 +173,13 @@ fn get_referenced_entities(config: &Config, entity: &str) -> HashSet<String> {
 #[allow(unused)]
 fn set_private_config_entry<T: Serialize>(
     config: &mut Config,
-    private_config: &T,
+    private_config: T,
     typename: &str,
     name: &str,
 ) -> Result<(), HttpError> {
     config
         .private_config
-        .set_data(name, typename, private_config)
+        .set_data(name, typename, &private_config)
         .map_err(|e| {
             http_err!(
                 INTERNAL_SERVER_ERROR,
@@ -217,7 +217,7 @@ mod tests {
 
         sendmail::add_endpoint(
             &mut config,
-            &SendmailConfig {
+            SendmailConfig {
                 name: "sendmail".to_string(),
                 mailto: Some(vec!["foo@example.com".to_string()]),
                 ..Default::default()
@@ -226,7 +226,7 @@ mod tests {
 
         sendmail::add_endpoint(
             &mut config,
-            &SendmailConfig {
+            SendmailConfig {
                 name: "builtin".to_string(),
                 mailto: Some(vec!["foo@example.com".to_string()]),
                 origin: Some(Origin::Builtin),
@@ -236,12 +236,12 @@ mod tests {
 
         gotify::add_endpoint(
             &mut config,
-            &GotifyConfig {
+            GotifyConfig {
                 name: "gotify".to_string(),
                 server: "localhost".to_string(),
                 ..Default::default()
             },
-            &GotifyPrivateConfig {
+            GotifyPrivateConfig {
                 name: "gotify".to_string(),
                 token: "foo".to_string(),
             },
@@ -249,7 +249,7 @@ mod tests {
 
         matcher::add_matcher(
             &mut config,
-            &MatcherConfig {
+            MatcherConfig {
                 name: "matcher".to_string(),
                 target: Some(vec![
                     "sendmail".to_string(),
diff --git a/proxmox-notify/src/api/sendmail.rs b/proxmox-notify/src/api/sendmail.rs
index e911505..3285ac7 100644
--- a/proxmox-notify/src/api/sendmail.rs
+++ b/proxmox-notify/src/api/sendmail.rs
@@ -37,7 +37,7 @@ pub fn get_endpoint(config: &Config, name: &str) -> Result<SendmailConfig, HttpE
 ///   - an entity with the same name already exists (`400 Bad request`)
 ///   - the configuration could not be saved (`500 Internal server error`)
 ///   - mailto *and* mailto_user are both set to `None`
-pub fn add_endpoint(config: &mut Config, endpoint: &SendmailConfig) -> Result<(), HttpError> {
+pub fn add_endpoint(config: &mut Config, endpoint: SendmailConfig) -> Result<(), HttpError> {
     super::ensure_unique(config, &endpoint.name)?;
 
     if endpoint.mailto.is_none() && endpoint.mailto_user.is_none() {
@@ -49,7 +49,7 @@ pub fn add_endpoint(config: &mut Config, endpoint: &SendmailConfig) -> Result<()
 
     config
         .config
-        .set_data(&endpoint.name, SENDMAIL_TYPENAME, endpoint)
+        .set_data(&endpoint.name, SENDMAIL_TYPENAME, &endpoint)
         .map_err(|e| {
             http_err!(
                 INTERNAL_SERVER_ERROR,
@@ -69,7 +69,7 @@ pub fn add_endpoint(config: &mut Config, endpoint: &SendmailConfig) -> Result<()
 pub fn update_endpoint(
     config: &mut Config,
     name: &str,
-    updater: &SendmailConfigUpdater,
+    updater: SendmailConfigUpdater,
     delete: Option<&[DeleteableSendmailProperty]>,
     digest: Option<&[u8]>,
 ) -> Result<(), HttpError> {
@@ -90,28 +90,28 @@ pub fn update_endpoint(
         }
     }
 
-    if let Some(mailto) = &updater.mailto {
-        endpoint.mailto = Some(mailto.iter().map(String::from).collect());
+    if let Some(mailto) = updater.mailto {
+        endpoint.mailto = Some(mailto);
     }
 
-    if let Some(mailto_user) = &updater.mailto_user {
-        endpoint.mailto_user = Some(mailto_user.iter().map(String::from).collect());
+    if let Some(mailto_user) = updater.mailto_user {
+        endpoint.mailto_user = Some(mailto_user);
     }
 
-    if let Some(from_address) = &updater.from_address {
-        endpoint.from_address = Some(from_address.into());
+    if let Some(from_address) = updater.from_address {
+        endpoint.from_address = Some(from_address);
     }
 
-    if let Some(author) = &updater.author {
-        endpoint.author = Some(author.into());
+    if let Some(author) = updater.author {
+        endpoint.author = Some(author);
     }
 
-    if let Some(comment) = &updater.comment {
-        endpoint.comment = Some(comment.into());
+    if let Some(comment) = updater.comment {
+        endpoint.comment = Some(comment);
     }
 
-    if let Some(disable) = &updater.disable {
-        endpoint.disable = Some(*disable);
+    if let Some(disable) = updater.disable {
+        endpoint.disable = Some(disable);
     }
 
     if endpoint.mailto.is_none() && endpoint.mailto_user.is_none() {
@@ -162,7 +162,7 @@ pub mod tests {
     ) -> Result<(), HttpError> {
         add_endpoint(
             config,
-            &SendmailConfig {
+            SendmailConfig {
                 name: name.into(),
                 mailto: Some(vec!["user1@example.com".into()]),
                 mailto_user: None,
@@ -193,7 +193,7 @@ pub mod tests {
     fn test_update_not_existing_returns_error() -> Result<(), HttpError> {
         let mut config = empty_config();
 
-        assert!(update_endpoint(&mut config, "test", &Default::default(), None, None,).is_err());
+        assert!(update_endpoint(&mut config, "test", Default::default(), None, None,).is_err());
 
         Ok(())
     }
@@ -206,7 +206,7 @@ pub mod tests {
         assert!(update_endpoint(
             &mut config,
             "sendmail-endpoint",
-            &SendmailConfigUpdater {
+            SendmailConfigUpdater {
                 mailto: Some(vec!["user2@example.com".into(), "user3@example.com".into()]),
                 mailto_user: None,
                 from_address: Some("root@example.com".into()),
@@ -232,7 +232,7 @@ pub mod tests {
         update_endpoint(
             &mut config,
             "sendmail-endpoint",
-            &SendmailConfigUpdater {
+            SendmailConfigUpdater {
                 mailto: Some(vec!["user2@example.com".into(), "user3@example.com".into()]),
                 mailto_user: Some(vec!["root@pam".into()]),
                 from_address: Some("root@example.com".into()),
@@ -262,7 +262,7 @@ pub mod tests {
         update_endpoint(
             &mut config,
             "sendmail-endpoint",
-            &Default::default(),
+            Default::default(),
             Some(&[
                 DeleteableSendmailProperty::FromAddress,
                 DeleteableSendmailProperty::Author,
diff --git a/proxmox-notify/src/api/smtp.rs b/proxmox-notify/src/api/smtp.rs
index 6bd0c4b..16d103c 100644
--- a/proxmox-notify/src/api/smtp.rs
+++ b/proxmox-notify/src/api/smtp.rs
@@ -40,8 +40,8 @@ pub fn get_endpoint(config: &Config, name: &str) -> Result<SmtpConfig, HttpError
 ///   - mailto *and* mailto_user are both set to `None`
 pub fn add_endpoint(
     config: &mut Config,
-    endpoint_config: &SmtpConfig,
-    private_endpoint_config: &SmtpPrivateConfig,
+    endpoint_config: SmtpConfig,
+    private_endpoint_config: SmtpPrivateConfig,
 ) -> Result<(), HttpError> {
     if endpoint_config.name != private_endpoint_config.name {
         // Programming error by the user of the crate, thus we panic
@@ -66,7 +66,7 @@ pub fn add_endpoint(
 
     config
         .config
-        .set_data(&endpoint_config.name, SMTP_TYPENAME, endpoint_config)
+        .set_data(&endpoint_config.name, SMTP_TYPENAME, &endpoint_config)
         .map_err(|e| {
             http_err!(
                 INTERNAL_SERVER_ERROR,
@@ -86,8 +86,8 @@ pub fn add_endpoint(
 pub fn update_endpoint(
     config: &mut Config,
     name: &str,
-    updater: &SmtpConfigUpdater,
-    private_endpoint_config_updater: &SmtpPrivateConfigUpdater,
+    updater: SmtpConfigUpdater,
+    private_endpoint_config_updater: SmtpPrivateConfigUpdater,
     delete: Option<&[DeleteableSmtpProperty]>,
     digest: Option<&[u8]>,
 ) -> Result<(), HttpError> {
@@ -105,7 +105,7 @@ pub fn update_endpoint(
                 DeleteableSmtpProperty::MailtoUser => endpoint.mailto_user = None,
                 DeleteableSmtpProperty::Password => super::set_private_config_entry(
                     config,
-                    &SmtpPrivateConfig {
+                    SmtpPrivateConfig {
                         name: name.to_string(),
                         password: None,
                     },
@@ -118,49 +118,49 @@ pub fn update_endpoint(
         }
     }
 
-    if let Some(mailto) = &updater.mailto {
-        endpoint.mailto = Some(mailto.iter().map(String::from).collect());
+    if let Some(mailto) = updater.mailto {
+        endpoint.mailto = Some(mailto);
     }
-    if let Some(mailto_user) = &updater.mailto_user {
-        endpoint.mailto_user = Some(mailto_user.iter().map(String::from).collect());
+    if let Some(mailto_user) = updater.mailto_user {
+        endpoint.mailto_user = Some(mailto_user);
     }
-    if let Some(from_address) = &updater.from_address {
-        endpoint.from_address = from_address.into();
+    if let Some(from_address) = updater.from_address {
+        endpoint.from_address = from_address;
     }
-    if let Some(server) = &updater.server {
-        endpoint.server = server.into();
+    if let Some(server) = updater.server {
+        endpoint.server = server;
     }
-    if let Some(port) = &updater.port {
-        endpoint.port = Some(*port);
+    if let Some(port) = updater.port {
+        endpoint.port = Some(port);
     }
-    if let Some(username) = &updater.username {
-        endpoint.username = Some(username.into());
+    if let Some(username) = updater.username {
+        endpoint.username = Some(username);
     }
-    if let Some(mode) = &updater.mode {
-        endpoint.mode = Some(*mode);
+    if let Some(mode) = updater.mode {
+        endpoint.mode = Some(mode);
     }
-    if let Some(password) = &private_endpoint_config_updater.password {
+    if let Some(password) = private_endpoint_config_updater.password {
         super::set_private_config_entry(
             config,
-            &SmtpPrivateConfig {
+            SmtpPrivateConfig {
                 name: name.into(),
-                password: Some(password.into()),
+                password: Some(password),
             },
             SMTP_TYPENAME,
             name,
         )?;
     }
 
-    if let Some(author) = &updater.author {
-        endpoint.author = Some(author.into());
+    if let Some(author) = updater.author {
+        endpoint.author = Some(author);
     }
 
-    if let Some(comment) = &updater.comment {
-        endpoint.comment = Some(comment.into());
+    if let Some(comment) = updater.comment {
+        endpoint.comment = Some(comment);
     }
 
-    if let Some(disable) = &updater.disable {
-        endpoint.disable = Some(*disable);
+    if let Some(disable) = updater.disable {
+        endpoint.disable = Some(disable);
     }
 
     if endpoint.mailto.is_none() && endpoint.mailto_user.is_none() {
@@ -209,7 +209,7 @@ pub mod tests {
     pub fn add_smtp_endpoint_for_test(config: &mut Config, name: &str) -> Result<(), HttpError> {
         add_endpoint(
             config,
-            &SmtpConfig {
+            SmtpConfig {
                 name: name.into(),
                 mailto: Some(vec!["user1@example.com".into()]),
                 mailto_user: None,
@@ -222,7 +222,7 @@ pub mod tests {
                 username: Some("username".into()),
                 ..Default::default()
             },
-            &SmtpPrivateConfig {
+            SmtpPrivateConfig {
                 name: name.into(),
                 password: Some("password".into()),
             },
@@ -252,8 +252,8 @@ pub mod tests {
         assert!(update_endpoint(
             &mut config,
             "test",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             None,
             None,
         )
@@ -270,8 +270,8 @@ pub mod tests {
         assert!(update_endpoint(
             &mut config,
             "sendmail-endpoint",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             None,
             Some(&[0; 32]),
         )
@@ -290,7 +290,7 @@ pub mod tests {
         update_endpoint(
             &mut config,
             "smtp-endpoint",
-            &SmtpConfigUpdater {
+            SmtpConfigUpdater {
                 mailto: Some(vec!["user2@example.com".into(), "user3@example.com".into()]),
                 mailto_user: Some(vec!["root@pam".into()]),
                 from_address: Some("root@example.com".into()),
@@ -302,7 +302,7 @@ pub mod tests {
                 username: Some("newusername".into()),
                 ..Default::default()
             },
-            &Default::default(),
+            Default::default(),
             None,
             Some(&digest),
         )?;
@@ -325,8 +325,8 @@ pub mod tests {
         update_endpoint(
             &mut config,
             "smtp-endpoint",
-            &Default::default(),
-            &Default::default(),
+            Default::default(),
+            Default::default(),
             Some(&[
                 DeleteableSmtpProperty::Author,
                 DeleteableSmtpProperty::MailtoUser,
-- 
2.39.2


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2024-04-19 14:19 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-19 14:17 [pve-devel] [PATCH many v2 00/20] notifications: move template strings to template files; PBS preparations Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 01/20] notify: switch to file-based templating system Lukas Wagner
2024-04-19 14:17 ` Lukas Wagner [this message]
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 03/20] notify: convert Option<Vec<T>> -> Vec<T> in config structs Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 04/20] notify: don't make tests require pve-context Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 05/20] notify: make the `mail-forwarder` feature depend on proxmox-sys Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 06/20] notify: cargo.toml: add spaces before curly braces Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 07/20] notify: give each notification a unique ID Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 08/20] notify: api: add get_targets Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 09/20] notify: derive `api` for Deleteable*Property Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 10/20] notify: derive Deserialize/Serialize for Notification struct Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 11/20] notify: pbs context: include nodename in default sendmail author Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox v2 12/20] notify: renderer: add relative-percentage helper from PBS Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox-perl-rs v2 13/20] notify: use file based notification templates Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox-perl-rs v2 14/20] notify: don't pass config structs by reference Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH proxmox-perl-rs v2 15/20] notify: adapt to Option<Vec<T>> to Vec<T> changes in proxmox_notify Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH cluster v2 16/20] notify: use named template instead of passing template strings Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH pve-ha-manager v2 17/20] env: notify: use named templates " Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH manager v2 18/20] gitignore: ignore any test artifacts Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH manager v2 19/20] tests: remove vzdump_notification test Lukas Wagner
2024-04-19 14:17 ` [pve-devel] [PATCH manager v2 20/20] notifications: use named templates instead of in-code templates Lukas Wagner
2024-04-23 22:31 ` [pve-devel] partially-applied-series: [PATCH many v2 00/20] notifications: move template strings to template files; PBS preparations Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240419141723.377507-3-l.wagner@proxmox.com \
    --to=l.wagner@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal