public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: Proxmox Backup Server development discussion
	<pbs-devel@lists.proxmox.com>,
	Gabriel Goller <g.goller@proxmox.com>
Subject: Re: [pbs-devel] [PATCH proxmox-backup] close #3777: api: Add source information to backup logs
Date: Thu, 7 Sep 2023 18:53:31 +0200	[thread overview]
Message-ID: <cbc413d3-6a3c-4cd8-b687-35573d2bcd3d@proxmox.com> (raw)
In-Reply-To: <20230821074010.17442-1-g.goller@proxmox.com>

On 21/08/2023 09:40, Gabriel Goller wrote:
> This will show the ip-address of the client creating
> the backup in the logs. For example it will output:
> "starting new backup on datastore 'test1' from ::ffff:192.168.1.192:
> "host/test/2023-08-21T07:28:10Z"".
> 
> Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
> ---
>  src/api2/backup/mod.rs | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
> 
> diff --git a/src/api2/backup/mod.rs b/src/api2/backup/mod.rs
> index 652d5baa..0c996e62 100644
> --- a/src/api2/backup/mod.rs
> +++ b/src/api2/backup/mod.rs
> @@ -214,10 +214,21 @@ fn upgrade_to_backup_protocol(
>                  env.debug = debug;
>                  env.last_backup = last_backup;
>  
> -                env.log(format!(
> -                    "starting new {} on datastore '{}': {:?}",
> -                    worker_type, store, path
> -                ));
> +                match rpcenv.get_client_ip() {


could do:

if let Some(ip) = rpcenv.get_client_ip().map(|addr| addr.ip()) {

This all feels a bit bloated for what it does, and even if it seems like nitpicking,
such things can add up and make maintainability harder in the long run.

You could get the actual IP via a .map and work on that, i.e., I'd to something like
either:

let msg = if let Some(ip) = rpcenv.get_client_ip().map(|addr| addr.ip()) {
    format!("starting new {worker_type} on datastore '{store}' from {ip}: {path:?}")
} else {
    format!("starting new {worker_type} on datastore '{store}': {path:?}")
};
env.log(msg);


or:

let origin = match rpcenv.get_client_ip().map(|addr| addr.ip()) {
    Some(ip) => format!(" from {ip}"),
    None => "".into(),
};
env.log(format!("starting new {worker_type} on datastore '{store}'{origin}: {path:?}")); 


Where the latter reads slightly nicer IMO but has two allocation, maybe you got a better
idea.

Oh, and for quite a few users the IPv4 mapped as IPv6 notation looks odd, so dropping the
::ffff: prefix might be worth it, but no hard feelings, we can always change that if there
are complaints.. 

> +                    Some(address) => {
> +                        env.log(format!(
> +                            "starting new {} on datastore '{}' from {}: {:?}",
> +                            worker_type, store, address.ip(), path
> +                        ));
> +                    },
> +                    None => {
> +                        env.log(format!(
> +                            "starting new {} on datastore '{}': {:?}",
> +                            worker_type, store, path
> +                        ));
> +
extra empty line here.. 
> +                    }
> +                }
>  
>                  let service =
>                      H2Service::new(env.clone(), worker.clone(), &BACKUP_API_ROUTER, debug);





  reply	other threads:[~2023-09-07 16:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-21  7:40 Gabriel Goller
2023-09-07 16:53 ` Thomas Lamprecht [this message]
2023-09-08 14:01   ` Gabriel Goller
2023-09-13  7:08     ` Thomas Lamprecht
2023-09-13  8:12       ` Gabriel Goller

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=cbc413d3-6a3c-4cd8-b687-35573d2bcd3d@proxmox.com \
    --to=t.lamprecht@proxmox.com \
    --cc=g.goller@proxmox.com \
    --cc=pbs-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 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