Firmware: Add ActiveSoftwareImage for the running image
ActiveSoftwareImage was added to Bios in v1_1_0 and Manager in v1_6_0.
What Redfish calls active is the functional or running image in
OpenBMC.
Reused getActiveFwVersion which means less D-Bus calls when
calling from Manager.
From https://redfish.dmtf.org/schemas/v1/Manager.v1_9_0.json
"ActiveSoftwareImage": {
...
"description": "The link to the software inventory resource that
represents the active firmware image for this manager.",
"longDescription": "This property shall contain a link to a resource
of type SoftwareInventory that represents the active firmware image for
this manager.",
"readonly": false,
"versionAdded": "v1_6_0"
PATCH support will come later.
Tested: Validator passes
Manager:
...
"FirmwareVersion": "2.9.0-dev-515-g92efac612-dirty",
...
"Links": {
"ActiveSoftwareImage": {
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/82d3ec86"
},
"ManagerForChassis": [
{
"@odata.id": "/redfish/v1/Chassis/chassis"
}
],
...
System:
"BiosVersion": "IBM-witherspoon-OP9-v2.3-rc2-3.28",
Bios:
"ActiveSoftwareImage": {
"@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/9f75c5ad"
}
},
Change-Id: Ia3583b4cb513bf36942a9dcbc4588615275bb2ad
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index 9e0a294..0a0effa 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -2,6 +2,7 @@
#include "node.hpp"
+#include <utils/fw_utils.hpp>
namespace redfish
{
/**
@@ -30,6 +31,9 @@
asyncResp->res.jsonValue["Actions"]["#Bios.ResetBios"] = {
{"target",
"/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios"}};
+
+ // Get the ActiveSoftwareImage
+ fw_util::getActiveFwVersion(asyncResp, fw_util::biosPurpose, "", true);
}
};
/**
@@ -70,4 +74,4 @@
"xyz.openbmc_project.Common.FactoryReset", "Reset");
}
};
-} // namespace redfish
\ No newline at end of file
+} // namespace redfish
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index bb7165e..7832e81 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -1754,7 +1754,7 @@
health->populate();
fw_util::getActiveFwVersion(asyncResp, fw_util::bmcPurpose,
- "FirmwareVersion");
+ "FirmwareVersion", true);
getLastResetTime(asyncResp);
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 50e2b93..2baeaa7 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -534,7 +534,7 @@
// Grab the bios version
fw_util::getActiveFwVersion(
aResp, fw_util::biosPurpose,
- "BiosVersion");
+ "BiosVersion", false);
},
connection.first, path,
"org.freedesktop.DBus.Properties", "GetAll",