From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 2D5901FF173 for ; Mon, 25 Nov 2024 12:29:40 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D16EC11222; Mon, 25 Nov 2024 12:29:39 +0100 (CET) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Mon, 25 Nov 2024 12:27:16 +0100 Message-ID: <20241125112900.988346-3-c.heiss@proxmox.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20241125112900.988346-1-c.heiss@proxmox.com> References: <20241125112900.988346-1-c.heiss@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.027 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. 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 v2 2/6] auto: log non-json low-level messages into separate file 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" Same as the TUI does, as introduced in [0]. [0] 22de6e5 ("tui: install_progress: write low-level non-JSON messages to separate file") Signed-off-by: Christoph Heiss --- Changes v1 -> v2: * no changes .../src/bin/proxmox-auto-installer.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs b/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs index 151694f..2143838 100644 --- a/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs +++ b/proxmox-auto-installer/src/bin/proxmox-auto-installer.rs @@ -1,7 +1,8 @@ use anyhow::{bail, format_err, Result}; use log::{error, info, LevelFilter}; use std::{ - env, fs, + env, + fs::{self, File}, io::{BufRead, BufReader, Write}, path::PathBuf, process::ExitCode, @@ -169,15 +170,29 @@ fn run_installation( .map_err(|err| format_err!("failed to serialize install config: {err}"))?; writeln!(writer).map_err(|err| format_err!("failed to write install config: {err}"))?; + let mut lowlevel_log = File::create("/tmp/install-low-level.log") + .map_err(|err| format_err!("failed to open low-level installer logfile: {err}"))?; + for line in reader.lines() { let line = match line { Ok(line) => line, Err(_) => break, }; + + // The low-level installer also spews the output of any command it runs on its + // stdout. Use a very simple heuricstic to determine whether it is actually JSON + // or not. + if !line.starts_with('{') || !line.ends_with('}') { + let _ = writeln!(lowlevel_log, "{}", line); + continue; + } + let msg = match serde_json::from_str::(&line) { Ok(msg) => msg, - Err(_) => { + Err(err) => { // Not a fatal error, so don't abort the installation by returning + eprintln!("low-level installer: error while parsing message: '{err}'"); + eprintln!(" original message was: '{line}'"); continue; } }; -- 2.47.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel