public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address
@ 2021-12-14 12:44 Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 1/4] config: add email-from to NodeConfig Hannes Laimer
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Hannes Laimer @ 2021-12-14 12:44 UTC (permalink / raw)
  To: pbs-devel

Adds an option to configure the email address that is used as 'from'
when mails are sent.

Hannes Laimer (4):
  config: add email-from to NodeConfig
  api2: make email-from updatable
  server: use configured email-from for sending mail
  ui: add new options tab under configuration

 src/api2/node/config.rs           |  4 ++++
 src/config/node.rs                |  8 ++++++++
 src/server/email_notifications.rs |  6 +++++-
 www/SystemConfiguration.js        | 25 +++++++++++++++++++++++--
 www/config/NodeOptionView.js      |  9 +++++++++
 5 files changed, 49 insertions(+), 3 deletions(-)

-- 
2.30.2





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 1/4] config: add email-from to NodeConfig
  2021-12-14 12:44 [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address Hannes Laimer
@ 2021-12-14 12:44 ` Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 2/4] api2: make email-from updatable Hannes Laimer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Hannes Laimer @ 2021-12-14 12:44 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 src/config/node.rs | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/config/node.rs b/src/config/node.rs
index ebbd08bd..2056fea8 100644
--- a/src/config/node.rs
+++ b/src/config/node.rs
@@ -7,6 +7,7 @@ use proxmox_schema::{api, ApiStringFormat, ApiType, Updater};
 
 use proxmox_http::ProxyConfig;
 
+use pbs_api_types::EMAIL_SCHEMA;
 use pbs_buildcfg::configdir;
 use pbs_config::{open_backup_lockfile, BackupLockGuard};
 
@@ -86,6 +87,10 @@ pub struct AcmeConfig {
             schema: HTTP_PROXY_SCHEMA,
             optional: true,
         },
+        "email-from": {
+            schema: EMAIL_SCHEMA,
+            optional: true,
+        },
     },
 )]
 #[derive(Deserialize, Serialize, Updater)]
@@ -113,6 +118,9 @@ pub struct NodeConfig {
 
     #[serde(skip_serializing_if = "Option::is_none")]
     pub http_proxy: Option<String>,
+    
+    #[serde(skip_serializing_if = "Option::is_none")]
+    pub email_from: Option<String>,
 }
 
 impl NodeConfig {
-- 
2.30.2





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/4] api2: make email-from updatable
  2021-12-14 12:44 [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 1/4] config: add email-from to NodeConfig Hannes Laimer
@ 2021-12-14 12:44 ` Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration Hannes Laimer
  3 siblings, 0 replies; 7+ messages in thread
From: Hannes Laimer @ 2021-12-14 12:44 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 src/api2/node/config.rs | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/api2/node/config.rs b/src/api2/node/config.rs
index 0b45f34c..3f060981 100644
--- a/src/api2/node/config.rs
+++ b/src/api2/node/config.rs
@@ -54,6 +54,8 @@ pub enum DeletableProperty {
     acmedomain4,
     /// Delete the http-proxy property.
     http_proxy,
+    /// Delete the email-from property.
+    email_from,
 }
 
 #[api(
@@ -110,6 +112,7 @@ pub fn update_node_config(
                 DeletableProperty::acmedomain3 => { config.acmedomain3 = None; },
                 DeletableProperty::acmedomain4 => { config.acmedomain4 = None; },
                 DeletableProperty::http_proxy => { config.http_proxy = None; },
+                DeletableProperty::email_from => { config.email_from = None; },
             }
         }
     }
@@ -121,6 +124,7 @@ pub fn update_node_config(
     if update.acmedomain3.is_some() { config.acmedomain3 = update.acmedomain3; }
     if update.acmedomain4.is_some() { config.acmedomain4 = update.acmedomain4; }
     if update.http_proxy.is_some() { config.http_proxy = update.http_proxy; }
+    if update.email_from.is_some() { config.email_from = update.email_from; }
 
     crate::config::node::save_config(&config)?;
 
-- 
2.30.2





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail
  2021-12-14 12:44 [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 1/4] config: add email-from to NodeConfig Hannes Laimer
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 2/4] api2: make email-from updatable Hannes Laimer
@ 2021-12-14 12:44 ` Hannes Laimer
  2021-12-16  9:59   ` Dominik Csapak
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration Hannes Laimer
  3 siblings, 1 reply; 7+ messages in thread
From: Hannes Laimer @ 2021-12-14 12:44 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 src/server/email_notifications.rs | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs
index 1e7650b0..0dc0cba5 100644
--- a/src/server/email_notifications.rs
+++ b/src/server/email_notifications.rs
@@ -235,6 +235,10 @@ fn send_job_status_mail(
     text: &str,
 ) -> Result<(), Error> {
 
+    let _lock = crate::config::node::lock()?;
+    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!("<html><body><pre>\n{}\n<pre>", handlebars::html_escape(text));
@@ -248,7 +252,7 @@ fn send_job_status_mail(
         &subject,
         Some(&text),
         Some(&html),
-        None,
+        from.as_deref(),
         Some(&author),
     )?;
 
-- 
2.30.2





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration
  2021-12-14 12:44 [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address Hannes Laimer
                   ` (2 preceding siblings ...)
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail Hannes Laimer
@ 2021-12-14 12:44 ` Hannes Laimer
  2021-12-16 10:04   ` Dominik Csapak
  3 siblings, 1 reply; 7+ messages in thread
From: Hannes Laimer @ 2021-12-14 12:44 UTC (permalink / raw)
  To: pbs-devel

... and add email-from + move http-proxy there

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 www/SystemConfiguration.js   | 25 +++++++++++++++++++++++--
 www/config/NodeOptionView.js |  9 +++++++++
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/www/SystemConfiguration.js b/www/SystemConfiguration.js
index 86371193..ac24bff9 100644
--- a/www/SystemConfiguration.js
+++ b/www/SystemConfiguration.js
@@ -63,9 +63,25 @@ Ext.define('PBS.SystemConfiguration', {
 		    title: gettext('Webauthn'),
 		    xtype: 'pbsWebauthnConfigView',
 		},
+	    ],
+	},
+	{
+	    title: gettext('Options'),
+	    itemId: 'options',
+	    xtype: 'panel',
+	    layout: {
+		type: 'vbox',
+		align: 'stretch',
+		multi: true,
+	    },
+	    defaults: {
+		collapsible: true,
+		animCollapse: false,
+		margin: '10 10 0 10',
+	    },
+	    items: [
 		{
-		    // FIXME: this is only a semi-OK place as long as there's only the http-proxy in there
-		    title: gettext('HTTP proxy'),
+		    title: gettext('General'),
 		    xtype: 'pbsNodeOptionView',
 		},
 	    ],
@@ -86,6 +102,11 @@ Ext.define('PBS.SystemConfiguration', {
 	Ext.Array.forEach(authentication.query(), function(item) {
 	    item.relayEvents(authentication, ['activate', 'deactivate', 'destroy']);
 	});
+
+	let options = me.getComponent('options');
+	Ext.Array.forEach(options.query(), function(item) {
+	    item.relayEvents(options, ['activate', 'deactivate', 'destroy']);
+	});
     },
 });
 
diff --git a/www/config/NodeOptionView.js b/www/config/NodeOptionView.js
index 55271a91..64f3d792 100644
--- a/www/config/NodeOptionView.js
+++ b/www/config/NodeOptionView.js
@@ -34,6 +34,15 @@ Ext.define('PBS.NodeOptionView', {
 	    deleteEmpty: true,
 	    onlineHelp: 'node_options_http_proxy',
 	},
+	{
+	    xtype: 'text',
+	    name: 'email-from',
+	    defaultValue: gettext('root@$hostname'),
+	    text: gettext('Email from address'),
+	    vtype: 'proxmoxMail',
+	    deleteEmpty: true,
+	},
+
     ],
 
     initComponent: function() {
-- 
2.30.2





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail Hannes Laimer
@ 2021-12-16  9:59   ` Dominik Csapak
  0 siblings, 0 replies; 7+ messages in thread
From: Dominik Csapak @ 2021-12-16  9:59 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Hannes Laimer

comment inline

On 12/14/21 13:44, Hannes Laimer wrote:
> Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
> ---
>   src/server/email_notifications.rs | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/src/server/email_notifications.rs b/src/server/email_notifications.rs
> index 1e7650b0..0dc0cba5 100644
> --- a/src/server/email_notifications.rs
> +++ b/src/server/email_notifications.rs
> @@ -235,6 +235,10 @@ fn send_job_status_mail(
>       text: &str,
>   ) -> Result<(), Error> {
>   
> +    let _lock = crate::config::node::lock()?;
if you only read from the config, you do not need to lock it

we normally atomically replace the config on change, so a read
should always result in a valid config


> +    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!("<html><body><pre>\n{}\n<pre>", handlebars::html_escape(text));
> @@ -248,7 +252,7 @@ fn send_job_status_mail(
>           &subject,
>           Some(&text),
>           Some(&html),
> -        None,
> +        from.as_deref(),
>           Some(&author),
>       )?;
>   





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration
  2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration Hannes Laimer
@ 2021-12-16 10:04   ` Dominik Csapak
  0 siblings, 0 replies; 7+ messages in thread
From: Dominik Csapak @ 2021-12-16 10:04 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Hannes Laimer,
	Thomas Lamprecht

if i remember correctly, thomas did not like the
'configuration' -> 'options' approach (too generic)
or did that change @thomas?

(also the 'general' panel does make this not better imho)

On 12/14/21 13:44, Hannes Laimer wrote:
> ... and add email-from + move http-proxy there
> 
> Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
> ---
>   www/SystemConfiguration.js   | 25 +++++++++++++++++++++++--
>   www/config/NodeOptionView.js |  9 +++++++++
>   2 files changed, 32 insertions(+), 2 deletions(-)
> 
> diff --git a/www/SystemConfiguration.js b/www/SystemConfiguration.js
> index 86371193..ac24bff9 100644
> --- a/www/SystemConfiguration.js
> +++ b/www/SystemConfiguration.js
> @@ -63,9 +63,25 @@ Ext.define('PBS.SystemConfiguration', {
>   		    title: gettext('Webauthn'),
>   		    xtype: 'pbsWebauthnConfigView',
>   		},
> +	    ],
> +	},
> +	{
> +	    title: gettext('Options'),
> +	    itemId: 'options',
> +	    xtype: 'panel',
> +	    layout: {
> +		type: 'vbox',
> +		align: 'stretch',
> +		multi: true,
> +	    },
> +	    defaults: {
> +		collapsible: true,
> +		animCollapse: false,
> +		margin: '10 10 0 10',
> +	    },
> +	    items: [
>   		{
> -		    // FIXME: this is only a semi-OK place as long as there's only the http-proxy in there
> -		    title: gettext('HTTP proxy'),
> +		    title: gettext('General'),
>   		    xtype: 'pbsNodeOptionView',
>   		},
>   	    ],
> @@ -86,6 +102,11 @@ Ext.define('PBS.SystemConfiguration', {
>   	Ext.Array.forEach(authentication.query(), function(item) {
>   	    item.relayEvents(authentication, ['activate', 'deactivate', 'destroy']);
>   	});
> +
> +	let options = me.getComponent('options');
> +	Ext.Array.forEach(options.query(), function(item) {
> +	    item.relayEvents(options, ['activate', 'deactivate', 'destroy']);
> +	});
>       },
>   });
>   
> diff --git a/www/config/NodeOptionView.js b/www/config/NodeOptionView.js
> index 55271a91..64f3d792 100644
> --- a/www/config/NodeOptionView.js
> +++ b/www/config/NodeOptionView.js
> @@ -34,6 +34,15 @@ Ext.define('PBS.NodeOptionView', {
>   	    deleteEmpty: true,
>   	    onlineHelp: 'node_options_http_proxy',
>   	},
> +	{
> +	    xtype: 'text',
> +	    name: 'email-from',
> +	    defaultValue: gettext('root@$hostname'),
> +	    text: gettext('Email from address'),
> +	    vtype: 'proxmoxMail',
> +	    deleteEmpty: true,
> +	},
> +
>       ],
>   
>       initComponent: function() {





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-12-16 10:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-14 12:44 [pbs-devel] [PATCH proxmox-backup 0/4] close #3162: add options to configure mail_from address Hannes Laimer
2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 1/4] config: add email-from to NodeConfig Hannes Laimer
2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 2/4] api2: make email-from updatable Hannes Laimer
2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 3/4] server: use configured email-from for sending mail Hannes Laimer
2021-12-16  9:59   ` Dominik Csapak
2021-12-14 12:44 ` [pbs-devel] [PATCH proxmox-backup 4/4] ui: add new options tab under configuration Hannes Laimer
2021-12-16 10:04   ` Dominik Csapak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal