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#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/1",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P1-DIMMA1",
"Id": "1",
"Manufacturer": "Samsung",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 0,
"MemoryController": 0,
"Slot": 0,
"Socket": 0
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P1-DIMMA1",
"OperatingSpeedMhz": 1866,
"PartNumber": "M393A2G40DB0-CPB",
"RankCount": 1,
"SerialNumber": "SN00000002",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/2",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P1-DIMMB1",
"Id": "2",
"Manufacturer": "Samsung",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 1,
"MemoryController": 0,
"Slot": 0,
"Socket": 0
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P1-DIMMB1",
"OperatingSpeedMhz": 1866,
"PartNumber": "M393A2G40DB0-CPB",
"RankCount": 2,
"SerialNumber": "SN00000003",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/3",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P1-DIMMC1",
"Id": "3",
"Manufacturer": "Micron",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 2,
"MemoryController": 0,
"Slot": 0,
"Socket": 0
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P1-DIMMC1",
"OperatingSpeedMhz": 1866,
"PartNumber": "36ASF2G72PZ-2G1A2",
"RankCount": 3,
"SerialNumber": "SN00000004",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/4",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P1-DIMMD1",
"Id": "4",
"Manufacturer": "Micron",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 3,
"MemoryController": 0,
"Slot": 0,
"Socket": 0
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P1-DIMMD1",
"OperatingSpeedMhz": 1866,
"PartNumber": "36ASF2G72PZ-2G1A2",
"RankCount": 4,
"SerialNumber": "SN00000005",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/5",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P2-DIMME1",
"Id": "5",
"Manufacturer": "Micron",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 0,
"MemoryController": 1,
"Slot": 0,
"Socket": 1
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P2-DIMME1",
"OperatingSpeedMhz": 1866,
"PartNumber": "36ASF2G72PZ-2G1A2",
"RankCount": 5,
"SerialNumber": "SN00000006",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/6",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P2-DIMMF1",
"Id": "6",
"Manufacturer": "Micron",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 1,
"MemoryController": 1,
"Slot": 0,
"Socket": 1
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P2-DIMMF1",
"OperatingSpeedMhz": 1866,
"PartNumber": "36ASF2G72PZ-2G1A2",
"RankCount": 6,
"SerialNumber": "SN00000007",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/7",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P2-DIMMG1",
"Id": "7",
"Manufacturer": "Samsung",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 2,
"MemoryController": 1,
"Slot": 0,
"Socket": 1
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P2-DIMMG1",
"OperatingSpeedMhz": 1866,
"PartNumber": "M393A2G40DB0-CPB",
"RankCount": 7,
"SerialNumber": "SN00000008",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,35 @@
{
"@odata.context": "/redfish/v1/$metadata#Memory.Memory",
"@odata.id": "/redfish/v1/Systems/1/Memory/8",
"@odata.type": "#Memory.v1_1_0.Memory",
"AllowedSpeedsMHz": [
2133
],
"BusWidthBits": 72,
"CapacityMiB": 16384,
"DataWidthBits": 64,
"Description": "Memory",
"DeviceLocator": "P2-DIMMH1",
"Id": "8",
"Manufacturer": "Samsung",
"MemoryDeviceType": "DDR4",
"MemoryLocation": {
"Channel": 3,
"MemoryController": 1,
"Slot": 0,
"Socket": 1
},
"MemoryMedia": [
"DRAM"
],
"MemoryType": "DRAM",
"Name": "P2-DIMMH1",
"OperatingSpeedMhz": 1866,
"PartNumber": "M393A2G40DB0-CPB",
"RankCount": 8,
"SerialNumber": "SN00000009",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}
@@ -0,0 +1,34 @@
{
"@odata.context": "/redfish/v1/$metadata#MemoryCollection.MemoryCollection",
"@odata.id": "/redfish/v1/Systems/1/Memory",
"@odata.type": "#MemoryCollection.MemoryCollection",
"Description": "Memory Collection",
"Members": [
{
"@odata.id": "/redfish/v1/Systems/1/Memory/1"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/2"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/3"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/4"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/5"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/6"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/7"
},
{
"@odata.id": "/redfish/v1/Systems/1/Memory/8"
}
],
"Members@odata.count": 8,
"Name": "Memory Collection"
}