fix(dell): match DPU HTTP boot option by name prefix, not exact equality#93
Open
kirson-git wants to merge 1 commit into
Open
fix(dell): match DPU HTTP boot option by name prefix, not exact equality#93kirson-git wants to merge 1 commit into
kirson-git wants to merge 1 commit into
Conversation
set_boot_order_dpu_first / is_boot_order_setup / machine_setup_status all
compared the expected boot option name "HTTP Device 1: {DeviceDescription}"
for *exact* equality against the boot option display_name. On Dell iDRAC the
real name has a suffix, e.g.:
"HTTP Device 1: NIC in Slot 40 Port 1 Partition 1 - Nvidia Network Adapter - C4:70:BD:2C:3C:0A - IPv4"
so exact ==/!= never matches: set fails with MissingBootOption, and the
verify path (is_boot_order_setup) reports the order unconfigured. Downstream
(NICo) this wedges host provisioning at SetBootOrder/CheckBootOrder.
Match by prefix (starts_with) in all three places. Verified on a live
BlueField-3 + Dell PowerEdge XE9680 (iDRAC): the set fix advanced the state
SetBootOrder -> CheckBootOrder, and the verify fix clears CheckBootOrder.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
c68209a to
b3ce6ac
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Dell::set_boot_order_dpu_first(src/dell.rs) builds the expected boot option name as"HTTP Device 1: {DeviceDescription}"and compares it for exact equality against eachboot option's
display_name:On Dell iDRAC the real boot option name has an adapter/MAC/protocol suffix appended, e.g.:
So the exact
==never matches, the loop falls through toErr(RedfishError::MissingBootOption(..)), and the boot order is never set. Downstream(NICo / infra-controller) this wedges the host-provisioning state machine at
SetBootOrderindefinitely.
Fix
Match by prefix — the constructed expected name is already a prefix of the real
display_name:The reorder action itself (
PATCH Boot.BootOrder=[id]) is unchanged.Testing / verification
Reproduced and verified on a live BlueField-3 + Dell PowerEdge XE9680 (iDRAC):
set_boot_order_dpu_firstreturnedMissingBootOption("HTTP Device 1: NIC in Slot 40 Port 1 Partition 1")even though that boot option existed (Boot0000, with the suffix above) and was settable — confirmed by a manualPATCH .../Settings {"Boot":{"BootOrder":["Boot0000"]}}returning HTTP 200.SetBootOrder.🤖 Generated with Claude Code