From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 702131FF38C for ; Thu, 16 May 2024 15:40:17 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D3B4C623; Thu, 16 May 2024 15:40:27 +0200 (CEST) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Thu, 16 May 2024 15:39:34 +0200 Message-ID: <20240516133945.1087246-5-c.heiss@proxmox.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240516133945.1087246-1-c.heiss@proxmox.com> References: <20240516133945.1087246-1-c.heiss@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.006 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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: [pve-devel] [PATCH installer 4/6] low-level: stdio: fix: make progress text properly optional X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" .. such that receivers can differentiate between these two cases more clearly. Sometimes, the `progress` sub does not get passed a text (on purpose!), just updating the progress ratio. This would cause log messages to be written out which could indicate missing text and look rather weird. Signed-off-by: Christoph Heiss --- Proxmox/UI/StdIO.pm | 8 +++++--- .../src/bin/proxmox-auto-installer.rs | 6 +++++- proxmox-installer-common/src/setup.rs | 2 +- .../src/views/install_progress.rs | 19 +++++++++++++------ test/ui2-stdio.pl | 2 +- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/Proxmox/UI/StdIO.pm b/Proxmox/UI/StdIO.pm index 2838fcb..ec9eac9 100644 --- a/Proxmox/UI/StdIO.pm +++ b/Proxmox/UI/StdIO.pm @@ -70,9 +70,11 @@ sub display_html { sub progress { my ($self, $ratio, $text) = @_; - $text = '' if !defined($text); - - send_msg('progress', ratio => $ratio, text => $text); + if (defined($text)) { + send_msg('progress', ratio => $ratio, text => $text); + } else { + send_msg('progress', ratio => $ratio); + } } sub process_events { diff --git a/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs b/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs index 9fc328c..96a48bd 100644 --- a/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs +++ b/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs @@ -172,7 +172,11 @@ fn run_installation( } LowLevelMessage::Progress { ratio, text } => { let percentage = ratio * 100.; - info!("progress {percentage:>5.1} % - {text}"); + if let Some(text) = text { + info!("progress {percentage:>5.1} % - {text}"); + } else { + info!("progress {percentage:>5.1} %"); + } } LowLevelMessage::Finished { state, message } => { if state == "err" { diff --git a/proxmox-installer-common/src/setup.rs b/proxmox-installer-common/src/setup.rs index 0c62bc3..d145fc5 100644 --- a/proxmox-installer-common/src/setup.rs +++ b/proxmox-installer-common/src/setup.rs @@ -578,6 +578,6 @@ pub enum LowLevelMessage { }, Progress { ratio: f32, - text: String, + text: Option, }, } diff --git a/proxmox-tui-installer/src/views/install_progress.rs b/proxmox-tui-installer/src/views/install_progress.rs index 11b12f0..629472a 100644 --- a/proxmox-tui-installer/src/views/install_progress.rs +++ b/proxmox-tui-installer/src/views/install_progress.rs @@ -127,11 +127,18 @@ impl InstallProgressView { }), LowLevelMessage::Progress { ratio, text } => { counter.set((ratio * 100.).floor() as usize); - cb_sink.send(Box::new(move |siv| { - siv.call_on_name(Self::PROGRESS_TEXT_VIEW_ID, |v: &mut TextView| { - v.set_content(text); - }); - })) + if let Some(text) = text { + cb_sink.send(Box::new(move |siv| { + siv.call_on_name( + Self::PROGRESS_TEXT_VIEW_ID, + |v: &mut TextView| { + v.set_content(text); + }, + ); + })) + } else { + Ok(()) + } } LowLevelMessage::Finished { state, message } => { counter.set(100); @@ -300,7 +307,7 @@ mod tests { next_msg(), Some(LowLevelMessage::Progress { ratio: (i as f32) / 1000., - text: format!("foo {i}"), + text: Some(format!("foo {i}")), }), ); } diff --git a/test/ui2-stdio.pl b/test/ui2-stdio.pl index 01f323d..eebb5c9 100755 --- a/test/ui2-stdio.pl +++ b/test/ui2-stdio.pl @@ -81,7 +81,7 @@ if ($child_pid) { 'should get 20% done progress message'); is_deeply( - $next_msg->(), { type => 'progress', ratio => 0.2, text => '' }, + $next_msg->(), { type => 'progress', ratio => 0.2, }, 'should get progress continuation message'); is_deeply( -- 2.44.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel