fix: read a Supermicro X10 with only the OOB license over Redfish (0.3.1)

First run against real hardware over Redfish: an X10DRL-i (BMC 3.91) with
SFT-OOB-LIC. Its Redfish tree is recorded under
tests/fixtures/supermicro-x10drl-i-3.91/redfish, scrubbed.

- A resource refused for want of a further license (403 OemLicenseNotPassed)
  no longer fails the getter. Storage then falls back to SimpleStorage. The
  firmware list falls back to the BMC and BIOS versions when UpdateService
  is withheld.
- get_device_warnings reports bmc_license_partial with the licenses and the
  withheld parts (drives, firmware inventory).
- A placeholder system model ("Super Server") is replaced by the board
  (PartNumber, else the chassis model).
This commit is contained in:
Christian Manivong committed 2026-10-17 09:32:09 +02:00
1 parent 6c60f7ac60
commit adf152ee12
78 files changed
+3237 -24

No files matched your search

@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry",
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries/1",
"@odata.type": "#LogEntry.v1_3_0.LogEntry",
"Created": "2026-09-30T17:07:31+01:00",
"EntryCode": "Deassert",
"EntryType": "Event",
"Id": "1",
"Links": {
"Oem": {},
"OriginOfCondition": {
"@odata.id": "/redfish/v1/Chassis/1/Power"
}
},
"Message": "[ PS2 Status ] Power Supply Failure",
"MessageArgs": [
"ArrayOfMessageArgs"
],
"Name": "Log Entry 1",
"Oem": {
"Supermicro": {
"@odata.type": "#SmcLogEntryExtensions.v1_0_0.LogEntry",
"RawEventData": {
"EventData1": "0xF1",
"EventData2": "0xFF",
"EventData3": "0xFF",
"EventDirAndType": "0xEF",
"SensorName": "PS2 Status",
"SensorType": "0x08"
}
}
},
"SensorNumber": 201,
"SensorType": "Power supply"
}
@@ -0,0 +1,32 @@
{
"@odata.context": "/redfish/v1/$metadata#LogEntry.LogEntry",
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries/2",
"@odata.type": "#LogEntry.v1_3_0.LogEntry",
"Created": "2026-10-17T09:21:22+01:00",
"EntryCode": "Assert",
"EntryType": "Event",
"Id": "2",
"Links": {
"Oem": {}
},
"Message": "[ OEM ] Activate Node Product Key",
"MessageArgs": [
"ArrayOfMessageArgs"
],
"Name": "Log Entry 2",
"Oem": {
"Supermicro": {
"@odata.type": "#SmcLogEntryExtensions.v1_0_0.LogEntry",
"RawEventData": {
"EventData1": "0x18",
"EventData2": "0x00",
"EventData3": "0xFF",
"EventDirAndType": "0x6F",
"SensorName": "OEM",
"SensorType": "0xCA"
}
}
},
"OemSensorType": "OOB",
"SensorNumber": 255
}
@@ -0,0 +1,75 @@
{
"@odata.context": "/redfish/v1/$metadata#LogEntryCollection.LogEntryCollection",
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries",
"@odata.type": "#LogEntryCollection.LogEntryCollection",
"Description": "Collection of Health Event Logs",
"Members": [
{
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries/1",
"@odata.type": "#LogEntry.v1_3_0.LogEntry",
"Created": "2026-09-30T17:07:31+01:00",
"EntryCode": "Deassert",
"EntryType": "Event",
"Id": "1",
"Links": {
"Oem": {},
"OriginOfCondition": {
"@odata.id": "/redfish/v1/Chassis/1/Power"
}
},
"Message": "[ PS2 Status ] Power Supply Failure",
"MessageArgs": [
"ArrayOfMessageArgs"
],
"Name": "Log Entry 1",
"Oem": {
"Supermicro": {
"@odata.type": "#SmcLogEntryExtensions.v1_0_0.LogEntry",
"RawEventData": {
"EventData1": "0xF1",
"EventData2": "0xFF",
"EventData3": "0xFF",
"EventDirAndType": "0xEF",
"SensorName": "PS2 Status",
"SensorType": "0x08"
}
}
},
"SensorNumber": 201,
"SensorType": "Power supply"
},
{
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries/2",
"@odata.type": "#LogEntry.v1_3_0.LogEntry",
"Created": "2026-10-17T09:21:22+01:00",
"EntryCode": "Assert",
"EntryType": "Event",
"Id": "2",
"Links": {
"Oem": {}
},
"Message": "[ OEM ] Activate Node Product Key",
"MessageArgs": [
"ArrayOfMessageArgs"
],
"Name": "Log Entry 2",
"Oem": {
"Supermicro": {
"@odata.type": "#SmcLogEntryExtensions.v1_0_0.LogEntry",
"RawEventData": {
"EventData1": "0x18",
"EventData2": "0x00",
"EventData3": "0xFF",
"EventDirAndType": "0x6F",
"SensorName": "OEM",
"SensorType": "0xCA"
}
}
},
"OemSensorType": "OOB",
"SensorNumber": 255
}
],
"Members@odata.count": 2,
"Name": "Health Event Log Service Collection"
}
@@ -0,0 +1,26 @@
{
"@odata.context": "/redfish/v1/$metadata#LogService.LogService",
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1",
"@odata.type": "#LogService.v1_1_0.LogService",
"Actions": {
"#LogService.ClearLog": {
"target": "/redfish/v1/Systems/1/LogServices/Log1/Actions/LogService.ClearLog"
},
"Oem": {}
},
"DateTime": "2026-10-17T09:24:36+01:00",
"DateTimeLocalOffset": "+01:00",
"Entries": {
"@odata.id": "/redfish/v1/Systems/1/LogServices/Log1/Entries"
},
"Id": "Log1",
"MaxNumberOfRecords": 512,
"Name": "Health Event Log Service",
"Oem": {},
"OverWritePolicy": "WrapsWhenFull",
"ServiceEnabled": true,
"Status": {
"Health": "OK",
"State": "Enabled"
}
}