From: Gabriel Goller <g.goller@proxmox.com>
To: Wolfgang Bumiller <w.bumiller@proxmox.com>
Cc: pbs-devel@lists.proxmox.com
Subject: Re: [pbs-devel] [PATCH v4 proxmox-backup 2/3] node: status: added bootmode
Date: Mon, 27 Nov 2023 15:02:18 +0100 [thread overview]
Message-ID: <6e10f6cf-2d76-44f4-80f7-355bf56d3dbe@proxmox.com> (raw)
In-Reply-To: <v2gi5qza4mp5umdhlxvxczmqgjvfxj3iuigu7fmq65fmpgmpq5@qkwuiyiv7rex>
On 11/27/23 14:53, Wolfgang Bumiller wrote:
> On Mon, Nov 27, 2023 at 02:28:14PM +0100, Gabriel Goller wrote:
>> Thanks for the review!
>>
>> On 11/27/23 14:10, Wolfgang Bumiller wrote:
>>> On Mon, Nov 27, 2023 at 11:52:37AM +0100, Gabriel Goller wrote:
>>>> +
>>>> +#[api]
>>>> +#[derive(Serialize, Deserialize, Default)]
>>> And Clone + Copy
>> Agree
>>>> +#[serde(rename_all = "kebab-case")]
>>>> +/// The possible BootModes
>>>> +pub enum BootMode {
>>>> + /// The BootMode is EFI/UEFI
>>>> + Efi,
>>>> + /// The BootMode is Legacy BIOS
>>>> + #[default]
>>> ^ do we *need* Default on this type? And why is Bios the default?
>> Removed it. Was enabled on the `NodeStatus` struct and cascaded down, but
>> afaik we can remove it
>> on the `NodeStatus` struct as well and get rid of it.
> IMO this is one of those options where we can't have a default, so if a
> struct containing it needs to be Default, this value should be an
> Option<> in there instead.
Agree.
But what do you think about the SecureBoot enum in the proxmox_sys crate?
Currently I have this:
#[derive(Clone, Copy)]
pub enum SecureBoot {
/// SecureBoot is enabled
Enabled,
/// SecureBoot is disabled
Disabled,
}
impl SecureBoot {
pub fn query() -> SecureBoot {
lazy_static::lazy_static!(
static ref SECURE_BOOT: Mutex<Option<SecureBoot>> =
Mutex::new(None);
);
let mut last = SECURE_BOOT.lock().unwrap();
let value = last.or_else(|| {
// Check if SecureBoot is enabled
// Attention: this file is not seekable!
// Spec:
https://uefi.org/specs/UEFI/2.10/03_Boot_Manager.html?highlight=8be4d#globally-defined-variables
let efivar = std::fs::File::open(
"/sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c",
);
if let Ok(mut file) = efivar {
let mut buf = [0; 5];
let Ok(_) = file.read_exact(&mut buf) else {
return Some(SecureBoot::Disabled);
};
if buf[4] == 1 {
Some(SecureBoot::Enabled)
} else {
Some(SecureBoot::Disabled)
}
} else {
Some(SecureBoot::Disabled)
}
});
*last = value;
value.unwrap()
}
}
Although we could make the function return a bool (then we'd have a
free-standing function again), which would be simpler... (+ we convert
it in pbs to a bool anyway)
One advantage of my approach is that we are more flexible, could add
another option, rename them, etc...
next prev parent reply other threads:[~2023-11-27 14:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-27 10:52 [pbs-devel] [PATCH v4 proxmox{, -backup} 0/3] Add boot_mode, improve kernel version Gabriel Goller
2023-11-27 10:52 ` [pbs-devel] [PATCH v4 proxmox 1/3] sys: add function to get boot_mode Gabriel Goller
2023-11-27 13:08 ` Wolfgang Bumiller
2023-11-27 13:23 ` Gabriel Goller
2023-11-27 10:52 ` [pbs-devel] [PATCH v4 proxmox-backup 2/3] node: status: added bootmode Gabriel Goller
2023-11-27 13:10 ` Wolfgang Bumiller
2023-11-27 13:28 ` Gabriel Goller
2023-11-27 13:53 ` Wolfgang Bumiller
2023-11-27 14:02 ` Gabriel Goller [this message]
2023-11-29 8:58 ` Wolfgang Bumiller
2023-11-29 9:08 ` Gabriel Goller
2023-11-27 10:52 ` [pbs-devel] [PATCH v4 proxmox-backup 3/3] node: status: declutter kernel-version Gabriel Goller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6e10f6cf-2d76-44f4-80f7-355bf56d3dbe@proxmox.com \
--to=g.goller@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=w.bumiller@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal