Post by thomas on Jun 10, 2024 13:08:48 GMT
Hello, I am trying to compare firmware versions between what is returned by redfish and firmware packaged in an iso. I am not sure if my current approach is correct but I am extracting target guids from the OEM (hpe) schema that is returned from the /redfish/v1/UpdateService/FirmwareInventory/{#} endpoint.
```
{
"@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory",
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/5",
"@odata.type": "#SoftwareInventory.v1_2_0.SoftwareInventory",
"Id": "5",
"Description": "PowerManagementController",
"Name": "Power Management Controller Firmware",
"Oem": {
"Hpe": {
"@odata.context": "/redfish/v1/$metadata#HpeiLOSoftwareInventory.HpeiLOSoftwareInventory",
"@odata.type": "#HpeiLOSoftwareInventory.v2_1_0.HpeiLOSoftwareInventory",
"DeviceClass": "9e48a28a-586c-4519-8405-a04f84e27f0f",
"DeviceContext": "System Board",
"Targets": [
"00000000-0000-0000-0000-00000000021d", <<<< extra guid???
"00000000-0000-0000-0000-000000504d05"
]
}
},
"Updateable": true,
"Version": "1.1.0"
}
```
I couldn't find any documentation as to why the Targets property is an array. Why would a different firmware guid be in multiple other firmware responses? My first guess is the 021d guid represents a dependency as it does show up associated with SystemProgrammableLogicDevice firmware?
For context, below is the firmware information packaged within the iso I would like to match on.
```
{
"DeviceName": "Gen10 Plus Power Management Controller Firmware",
"FirmwareImages": [
{
"DelayAfterInstallSec": 0,
"DirectFlashOk": true,
"FileName": "PICGen10_v1.1.4_hdr.signed.hex",
"InstallDurationSec": 60,
"Order": 1,
"PLDMImage": false,
"ResetRequired": false,
"SysPowerON": false,
"Type": "Firmware",
"UefiFlashable": true
}
],
"Target": "00000000-0000-0000-0000-000000504d05",
"Version": "1.1.4"
}
```
Thanks
```
{
"@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory",
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/5",
"@odata.type": "#SoftwareInventory.v1_2_0.SoftwareInventory",
"Id": "5",
"Description": "PowerManagementController",
"Name": "Power Management Controller Firmware",
"Oem": {
"Hpe": {
"@odata.context": "/redfish/v1/$metadata#HpeiLOSoftwareInventory.HpeiLOSoftwareInventory",
"@odata.type": "#HpeiLOSoftwareInventory.v2_1_0.HpeiLOSoftwareInventory",
"DeviceClass": "9e48a28a-586c-4519-8405-a04f84e27f0f",
"DeviceContext": "System Board",
"Targets": [
"00000000-0000-0000-0000-00000000021d", <<<< extra guid???
"00000000-0000-0000-0000-000000504d05"
]
}
},
"Updateable": true,
"Version": "1.1.0"
}
```
I couldn't find any documentation as to why the Targets property is an array. Why would a different firmware guid be in multiple other firmware responses? My first guess is the 021d guid represents a dependency as it does show up associated with SystemProgrammableLogicDevice firmware?
For context, below is the firmware information packaged within the iso I would like to match on.
```
{
"DeviceName": "Gen10 Plus Power Management Controller Firmware",
"FirmwareImages": [
{
"DelayAfterInstallSec": 0,
"DirectFlashOk": true,
"FileName": "PICGen10_v1.1.4_hdr.signed.hex",
"InstallDurationSec": 60,
"Order": 1,
"PLDMImage": false,
"ResetRequired": false,
"SysPowerON": false,
"Type": "Firmware",
"UefiFlashable": true
}
],
"Target": "00000000-0000-0000-0000-000000504d05",
"Version": "1.1.4"
}
```
Thanks