fix(site-explorer): discover host NICs through adapter ports - #4439
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (4)
Summary by CodeRabbit
WalkthroughThe Redfish simulator now exposes configurable system identifiers and network-adapter port MAC addresses. Site exploration discovers eligible host ports, merges unique MAC-only interfaces, and preserves existing system interfaces. The workspace updates ChangesAdapter-port discovery
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant SiteExplorer
participant RedfishSim
participant NetworkAdapter
participant ComputerSystem
SiteExplorer->>RedfishSim: Fetch system classification
RedfishSim-->>SiteExplorer: Return host or DPU metadata
SiteExplorer->>RedfishSim: Fetch chassis and adapter link
RedfishSim-->>SiteExplorer: Return chassis data
SiteExplorer->>NetworkAdapter: Enumerate ports
NetworkAdapter-->>SiteExplorer: Return port identifiers
SiteExplorer->>NetworkAdapter: Fetch port MAC addresses
NetworkAdapter-->>SiteExplorer: Return MAC-only interfaces
SiteExplorer->>ComputerSystem: Merge unique interfaces
Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai full_review, thanks! |
|
🐇 ✅ Action performedFull review finished. |
|
🌿 Preview your docs: https://nvidia-preview-pull-request-4439.docs.buildwithfern.com/infra-controller |
Lenovo XCC can leave Systems/.../EthernetInterfaces empty while still publishing the installed NIC under Chassis/.../NetworkAdapters/.../Ports. In that case Site Explorer never saw the NIC MAC, so the zero-DPU host had no predicted interface for DHCP/PXE to recognize. Update libredfish to v0.46.2 and use adapter-port MACs when an ordinary host has no MAC-bearing System EthernetInterface. Port.Id remains unset because it is not a firmware boot-interface selector, leaving port-only discoveries on the existing MAC-based boot path. Port discovery is host-only and best-effort, so normal inventory incurs no additional requests and a broken optional collection does not block BMC exploration. ExpectedMachine interfaces retain their existing expected-inventory and missing-Redfish fallback behavior. Tests added! This supports NVIDIA#4436 Signed-off-by: Chet Nichols III <chetn@nvidia.com>
Lenovo XCC can leave
Systems/.../EthernetInterfaceswithout a usable MAC while still publishing the installed host NIC underChassis/.../NetworkAdapters/.../Ports. Site Explorer therefore misses the NIC MAC and cannot create the zero-DPU predicted interface that DHCP/PXE uses to recognize the host.This updates libredfish to v0.46.2 and uses adapter-port MACs as a best-effort fallback when an ordinary host has no MAC-bearing System EthernetInterface. Port identifiers remain unset because
Port.Idis not a firmware boot-interface selector, leaving port-only discoveries on the existing MAC-based boot path.Normal System inventory remains preferred, and DPU, switch, and power-shelf exploration does not use this fallback.
Related issues
This supports #4436.
Type of Change
Breaking Changes
Testing
Additional Notes
The end-to-end report test verifies that a MAC found only through an adapter Port is retained as a MAC-only interface. Additional table-driven coverage verifies the fallback gate, System-interface precedence, and invalid simulator port identifiers.
Validated with the full Site Explorer unit-test suite, workspace clippy, custom carbide lints, nightly formatting, dependency policy checks, license checks, and dependency bans.
Closes #4436