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",