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 42F85973F1 for ; Tue, 16 Apr 2024 17:38:18 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 27CCF30092 for ; Tue, 16 Apr 2024 17:37:48 +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)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 16 Apr 2024 17:37:46 +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 D840145B62 for ; Tue, 16 Apr 2024 17:33:33 +0200 (CEST) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Tue, 16 Apr 2024 17:33:21 +0200 Message-Id: <20240416153325.1154224-33-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240416153325.1154224-1-a.lauterer@proxmox.com> References: <20240416153325.1154224-1-a.lauterer@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.048 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 v5 32/36] fetch-answer: move get_answer_file to utils 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: , X-List-Received-Date: Tue, 16 Apr 2024 15:38:18 -0000 and switch to accepting the full path to the answer file. This makes it possible to use it in more situations than just the partition case. Signed-off-by: Aaron Lauterer --- .../src/fetch_plugins/partition.rs | 23 +++++-------------- .../src/fetch_plugins/utils/mod.rs | 13 ++++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/proxmox-fetch-answer/src/fetch_plugins/partition.rs b/proxmox-fetch-answer/src/fetch_plugins/partition.rs index dbe5dda..2557c59 100644 --- a/proxmox-fetch-answer/src/fetch_plugins/partition.rs +++ b/proxmox-fetch-answer/src/fetch_plugins/partition.rs @@ -1,8 +1,8 @@ -use anyhow::{Error, Result}; +use anyhow::Result; use log::info; -use std::{fs::read_to_string, path::Path}; +use std::path::PathBuf; -use crate::fetch_plugins::utils::mount_proxmoxinst_part; +use crate::fetch_plugins::utils::{get_answer_file, mount_proxmoxinst_part}; static ANSWER_FILE: &str = "answer.toml"; @@ -12,21 +12,10 @@ impl FetchFromPartition { /// Returns the contents of the answer file pub fn get_answer() -> Result { info!("Checking for answer file on partition."); - let mount_path = mount_proxmoxinst_part()?; - let answer = Self::get_answer_file(&mount_path)?; + let mut mount_path = PathBuf::from(mount_proxmoxinst_part()?); + mount_path.push(ANSWER_FILE); + let answer = get_answer_file(&mount_path)?; info!("Found answer file on partition."); Ok(answer) } - - /// Searches for answer file and returns contents if found - fn get_answer_file(mount_path: &str) -> Result { - let answer_path = Path::new(mount_path).join(ANSWER_FILE); - match answer_path.try_exists() { - Ok(true) => Ok(read_to_string(answer_path)?), - _ => Err(Error::msg(format!( - "could not find answer file expected at: {}", - answer_path.display() - ))), - } - } } diff --git a/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs b/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs index e5ea4b8..29cb37d 100644 --- a/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs +++ b/proxmox-fetch-answer/src/fetch_plugins/utils/mod.rs @@ -1,7 +1,7 @@ use anyhow::{Error, Result}; use log::{info, warn}; use std::{ - fs::{self, create_dir_all}, + fs::{self, create_dir_all, read_to_string}, path::{Path, PathBuf}, process::Command, }; @@ -83,3 +83,14 @@ fn check_if_mounted(target_path: &str) -> Result { } Ok(false) } + +/// Searches for answer file and returns contents if found +pub fn get_answer_file(path: &PathBuf) -> Result { + match path.try_exists() { + Ok(true) => Ok(read_to_string(path)?), + _ => Err(Error::msg(format!( + "could not find answer file expected at: {}", + path.display() + ))), + } +} -- 2.39.2