[pve-devel] [PATCH installer 4/4] fetch-answer: use partition label from fetch config instead of hardcoded

Aaron Lauterer a.lauterer at proxmox.com
Thu Nov 7 16:28:25 CET 2024


only small nits inline

Tested-By: Aaron Lauterer <a.lauterer at proxmox.com>
Reviewed-By: Aaron Lauterer <a.lauterer at proxmox.com>

On  2024-10-18  13:59, Christoph Heiss wrote:
> This has been requested by at least one user one user [0] and definitely
> makes sense, esp. for BMCs/IPMIs where one might not be able to control
> the partition label.
> 
> [0] https://forum.proxmox.com/threads/proxmox-ais-question-request.153043/post-695689
> 
> Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
> ---
>   .../src/fetch_plugins/partition.rs            | 13 +++++------
>   proxmox-fetch-answer/src/main.rs              | 23 +++++++++++++------
>   2 files changed, 22 insertions(+), 14 deletions(-)
> 
> diff --git a/proxmox-fetch-answer/src/fetch_plugins/partition.rs b/proxmox-fetch-answer/src/fetch_plugins/partition.rs
> index cbfe2d5..c68dc59 100644
> --- a/proxmox-fetch-answer/src/fetch_plugins/partition.rs
> +++ b/proxmox-fetch-answer/src/fetch_plugins/partition.rs
> @@ -9,17 +9,16 @@ use std::{
>   static ANSWER_FILE: &str = "answer.toml";
>   static ANSWER_MP: &str = "/mnt/answer";
>   // FAT can only handle 11 characters, so shorten Automated Installer Source to AIS

this comment is now dangling. we could move that to the definition of 
the default value for the new parameter

> -static PARTLABEL: &str = "proxmox-ais";
>   static DISK_BY_ID_PATH: &str = "/dev/disk/by-label";
>   
>   pub struct FetchFromPartition;
>   
>   impl FetchFromPartition {
>       /// Returns the contents of the answer file
> -    pub fn get_answer() -> Result<String> {
> +    pub fn get_answer(part_label: &str) -> Result<String> {
>           info!("Checking for answer file on partition.");
>   
> -        let mut mount_path = PathBuf::from(mount_proxmoxinst_part()?);
> +        let mut mount_path = PathBuf::from(mount_proxmoxinst_part(part_label)?);
>           mount_path.push(ANSWER_FILE);
>           let answer = fs::read_to_string(mount_path)
>               .map_err(|err| format_err!("failed to read answer file - {err}"))?;
> @@ -74,14 +73,14 @@ fn scan_partlabels(partlabel: &str, search_path: &str) -> Result<PathBuf> {
>       bail!("Could not find partition for label '{partlabel}'");
>   }
>   
> -/// Will search and mount a partition/FS labeled PARTLABEL (proxmox-ais) in lower or uppercase
> -/// to ANSWER_MP
> -fn mount_proxmoxinst_part() -> Result<String> {
> +/// Will search and mount a partition/FS labeled labeled `part_label` in lower or uppercase to

one `labeled` too much :)

> +/// ANSWER_MP
> +fn mount_proxmoxinst_part(part_label: &str) -> Result<String> {
>       if let Ok(true) = check_if_mounted(ANSWER_MP) {
>           info!("Skipping: '{ANSWER_MP}' is already mounted.");[…]




More information about the pve-devel mailing list