fix(collector): surface RAID/HBA controller cards from Storage.StorageControllers[]

The RAID controller (XFusion XC170-M-8i / Broadcom SAS3808) never appeared
in inventory at all: it isn't listed in any Chassis/Systems PCIeDevices
collection on this BMC, and its dedicated Board resource link 404s (id
contains parentheses, same class of bug as the OCP NIC fixed earlier). Its
full identity -- model, firmware, BDF, vendor/device IDs -- was sitting
unread in the Storage resource's embedded StorageControllers[] array the
whole time.

Added parseStorageControllerPCIeDevice + collectStorageControllers to read
that array and surface the controller as a PCIeDevice entry, merged into
the existing pcie_devices list.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-08-18 14:30:56 +03:00
co-authored by Claude Sonnet 5
parent 1e4ec513e1
commit 6599ab49c2
4 changed files with 176 additions and 0 deletions
+1
View File
@@ -81,6 +81,7 @@ func ReplayRedfishFromRawPayloads(rawPayloads map[string]any, emit ProgressFn) (
psus := r.collectPSUs(chassisPaths)
licenses := r.collectLicenses()
pcieDevices := r.collectPCIeDevices(systemPaths, chassisPaths)
pcieDevices = append(pcieDevices, r.collectStorageControllers(primarySystem)...)
boardInfo := parseBoardInfoWithFallback(systemDoc, chassisDoc, fruDoc)
applyBoardInfoFallbackFromDocs(&boardInfo, boardFallbackDocs)