Skip to content

fix(redfish): tolerate null collection Members on BlueField BMC#166

Open
shevchenko-evgeny wants to merge 2 commits into
NVIDIA:mainfrom
shevchenko-evgeny:fix_members_null_bf
Open

fix(redfish): tolerate null collection Members on BlueField BMC#166
shevchenko-evgeny wants to merge 2 commits into
NVIDIA:mainfrom
shevchenko-evgeny:fix_members_null_bf

Conversation

@shevchenko-evgeny

Copy link
Copy Markdown

This is a per-collection opt-in: collections not routed through CollectionWithPatch (e.g. processors, memory) are unaffected until explicitly migrated.

This is another option for addressing the problem discussed more generally in PR #120.

I’m still not sure whether it is better than the solution proposed there. That approach only covers collections explicitly gated through CollectionWithPatch, while it appears that any empty collection may exhibit the same issue on that BMC. As a result, we could still see unexpected behavior in certain states.

At the same time, routing every possible collection through CollectionWithPatch does not seem practical and would be quite verbose.

This is a per-collection opt-in: collections not routed through
CollectionWithPatch (e.g. processors, memory) are unaffected until
explicitly migrated.

Signed-off-by: Evgeny Shevchenko <eshevchenko@mirantis.com>
@copy-pr-bot

copy-pr-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Comment thread tests/tests/test-computer-system.rs
v
}

/// Storage collection.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change looks not relevant to the PR description.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While fixing this I realized the Members: null problem isn't specific to BootOptions - every empty collection on the BlueField BMC serializes Members as null instead of []. So far I've found at least these:

/redfish/v1/Cables
/redfish/v1/AccountService/MultiFactorAuth/ClientCertificate/Certificates
/redfish/v1/Systems/Bluefield/Oem/Nvidia/Truststore/Certificates
/redfish/v1/Systems/Bluefield/Storage
/redfish/v1/Systems/Bluefield/BootOptions

First three (Cables, both Certificates) - not an big issue today: their collection types aren't compiled into the tree, so they're only ever held as references and never deserialized. The null is harmless until something actually fetches them.
Latest two I fixed explicitly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've never seen something like this from BF3 DPU. Maybe you are using some old BMC FW version?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It’s definitely not the latest version, but until NICO upgrades the BMC firmware, it should be sufficient to pass the pre-injection phase.

For context, this is part of the PowerEdge XE9780 onboarding umbrella issue.

@poroh poroh Jul 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. Fair enough. Could you please move storage collection to storage.rs module then. Everything else LGTM.

Signed-off-by: Evgeny Shevchenko <eshevchenko@mirantis.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants