Fix: VeraRubin host BMC displays boot order in a different format#112
Fix: VeraRubin host BMC displays boot order in a different format#112hakhondzadeh wants to merge 4 commits into
Conversation
Vera Rubin host BMC firmware reports BootOrder strings like "Boot0019: Ubuntu" while BootOption resources live at bare Ids. Strip the display-name suffix before GET and preserve firmware format when reordering boot options.
Add boot_order_prepend_first helper with unit tests for the PATCH path, simplify vera_rubin boot-order reordering, and fix stale GB200 error text.
|
Could we handle the Vera Rubin boot order quirk directly in |
|
Also, I don't see a fix for this issue other than changing the model in the error message? Checked the VR BMC and it does exist: |
|
There is no functional NIC fix in this PR; just fixed the string and changed GB200 to VR so to avoid confusion later. Implementing real System EthernetInterface support for Vera Rubin is separate work |
Helper functions was intentionally added to model/boot.rs because it’s not really Vera Rubin–specific. Newer firmware on other GPU platforms could easily do the same thing. When that happens, a shared helper avoids copying the same parsing into every nvidia_*.rs file. |
| .members; | ||
| let target = boot_options | ||
| .iter() | ||
| .find(|option| option.display_name.starts_with(&boot_option_name)) |
There was a problem hiding this comment.
I think you might need exact match. Live data looked like this:
...: UEFI HTTPv4 (MAC:XXXXXXXXXXXX)
...: UEFI HTTPv4 (MAC:XXXXXXXXXXXX) 2
There was a problem hiding this comment.
Oh true, do you know what the 2 option is? I'm assuming we just need to pick one without the 2.
Correct me if I'm wrong, but the host won't move past the set-boot-order state because it first calls |
I think the changes here avoid the get_system_ethernet_interface call #110 EDIT:
Still fine to do it for sure, but it seems no reason to lump it into this PR. Though, we're going to need a version bump either way. |
Lesson learned to update my local libredfish checkout before starting to review new changes 🤦♂️ Thanks for the explanation! |
This PR fixes the boot URL. NIC interfaces can be done in a separate PR. thanks for pointing it out |
Redfish path redfish/v1/Systems/System_0 for a Vera Rubin host bmc, show boot orders in this format:
"BootOrder": [ "Boot0019: Ubuntu", "Boot0008: UEFI HTTPv4 (MAC:AC3AE2634C82)",While previously, we saw them in this format:
This PR fixes this issue by removing the suffix of the boot order. Also, when patching a boot order, the name is added to keep the formatting consistent.
Unit tests were also added.