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


On 9/7/23 18:53, Thomas Lamprecht wrote:
> 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.
Second one looks better I think.
> 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..
Noticed that too, but IMO staying 'correct' is more important than 
making the output pretty.
But we can always change it later...
>> +                    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);
>>
Submitted a new patch.




  reply	other threads:[~2023-09-08 14:01 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
2023-09-08 14:01   ` Gabriel Goller [this message]
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=9adb5b07-fa2c-7543-1c28-7dcb9b664b4f@proxmox.com \
    --to=g.goller@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    --cc=t.lamprecht@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