From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0E9027A35B for ; Fri, 7 May 2021 10:03:46 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id F35E327BA8 for ; Fri, 7 May 2021 10:03:15 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 7B42327B9C for ; Fri, 7 May 2021 10:03:15 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 4C10746520 for ; Fri, 7 May 2021 10:03:15 +0200 (CEST) From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= To: pbs-devel@lists.proxmox.com Date: Fri, 7 May 2021 10:03:08 +0200 Message-Id: <20210507080310.2430082-1-f.gruenbichler@proxmox.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.023 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup 1/3] fix #3331: improve progress for last snapshot in group X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 May 2021 08:03:46 -0000 especially for the last group, without this the progress would report: "percentage done: 100.00% (1 of 2 groups, 1 of 1 group snapshots)" instead of the more logical "percentage done: 100.00% (2 of 2 groups)" Signed-off-by: Fabian Grünbichler --- Notes: note: alternatively, we could only do this special case for the very last group, and leave the other groups to display: "percentage done: 50.00% (1 of 4 groups, 1 of 1 group snapshots)" which looks a bit weird, but would mean that the format stays consistent over the whole log, instead of switching between groups+snapshots and just groups. see also next patches, which makes it a bit more informative/readable IMHO src/backup/store_progress.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/backup/store_progress.rs b/src/backup/store_progress.rs index 83696f6d..115c14c2 100644 --- a/src/backup/store_progress.rs +++ b/src/backup/store_progress.rs @@ -33,6 +33,12 @@ impl StoreProgress { impl std::fmt::Display for StoreProgress { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let current_group = if self.done_groups < self.total_groups { + self.done_groups + 1 + } else { + self.done_groups + }; + if self.group_snapshots == 0 { write!( f, @@ -49,6 +55,14 @@ impl std::fmt::Display for StoreProgress { self.done_snapshots, self.group_snapshots, ) + } else if self.done_snapshots == self.group_snapshots { + write!( + f, + "{:.2}% ({} of {} groups)", + self.percentage() * 100.0, + current_group, + self.total_groups, + ) } else { write!( f, -- 2.20.1