[pve-devel] [PATCH installer v5 32/36] fetch-answer: move get_answer_file to utils
Aaron Lauterer
a.lauterer at proxmox.com
Tue Apr 16 17:33:21 CEST 2024
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 <a.lauterer at proxmox.com>
---
.../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<String> {
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<String> {
- 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<bool> {
}
Ok(false)
}
+
+/// Searches for answer file and returns contents if found
+pub fn get_answer_file(path: &PathBuf) -> Result<String> {
+ 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
More information about the pve-devel
mailing list