Skip to content

fix(collector): support legacy Redfish firmware - #4354

Open
orangeCatDeveloper wants to merge 1 commit into
apache:masterfrom
orangeCatDeveloper:fix/3210-redfish-legacy-schema
Open

fix(collector): support legacy Redfish firmware#4354
orangeCatDeveloper wants to merge 1 commit into
apache:masterfrom
orangeCatDeveloper:fix/3210-redfish-legacy-schema

Conversation

@orangeCatDeveloper

@orangeCatDeveloper orangeCatDeveloper commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Part of #3210

Fan and PowerSupply collection fails on older Dell iDRAC firmware with StatusCode 404, and cached Redfish sessions are not released.

Newer Redfish schemas expose fans and power supplies as standalone collections, while older iDRAC firmware embeds them in Thermal and Power; the collector only probes the newer paths. Session cleanup also resolves the server-provided Location against the session service path, producing an invalid DELETE target.

Probe modern and legacy layouts per chassis, resolve embedded # JSON Pointer members from their containing document, reuse fetched documents, and map legacy fan Reading to RPM. Session requests now resolve relative and same-origin absolute resource URIs, reject cross-origin or downgraded targets before attaching X-Auth-Token, and accept every Redfish DELETE success status.

Boundary: the session-creation 405 still needs HTTP Basic Auth fallback, and no verified pre-2020.4 Battery resource is available.

Validation uses a temporary Docker HTTP service seeded with the user-reported legacy iDRAC payload; hardware validation is still pending.

Before
ERROR ... ThermalSubsystem/Fans ... StatusCode 404
fan rows = 0
session release: FAILED - Redfish session close error:null

After
FAN_ROWS=[[/redfish/v1/Chassis/Modern/ThermalSubsystem/Fans/1, Modern Fan, Enabled, OK,  , 7200], [/redfish/v1/Chassis/Legacy/Thermal#/Fans/0, Legacy Fan, Enabled, OK,  , 3480]]
POWER_ROWS=[[/redfish/v1/Chassis/Modern/PowerSubsystem/PowerSupplies/1, Modern Power Supply, Enabled, OK], [/redfish/v1/Chassis/Legacy/Power#/PowerSupplies/0, Legacy Power Supply, Enabled, OK]]
sessionActive=false
DELETE /redfish/v1/SessionService/Sessions/1 HTTP/1.1 202

@orangeCatDeveloper
orangeCatDeveloper force-pushed the fix/3210-redfish-legacy-schema branch 3 times, most recently from 5d9e964 to fa0a043 Compare September 1, 2026 05:51
@orangeCatDeveloper orangeCatDeveloper changed the title [fix] collect redfish metrics on pre-2020.4 BMC firmware fix(collector): support legacy Redfish firmware Sep 1, 2026
@orangeCatDeveloper
orangeCatDeveloper force-pushed the fix/3210-redfish-legacy-schema branch from fa0a043 to f05fab6 Compare September 1, 2026 06:02
@orangeCatDeveloper
orangeCatDeveloper marked this pull request as ready for review September 1, 2026 06:29
Older BMC firmware embeds fan and power-supply data in legacy documents, while current collection paths only support newer standalone resources. Preserve compatibility without allowing server-provided resource URIs to send session tokens outside the monitored endpoint.
@orangeCatDeveloper
orangeCatDeveloper force-pushed the fix/3210-redfish-legacy-schema branch from f05fab6 to f6eb885 Compare September 6, 2026 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant