move to free function: Bios
This change will allow for unit testing of the free function.
There are no changes to logic in bios logic response.
Tested: no change to
curl --user root:0penBmc -k https://${bmc}/redfish/v1/Systems/system/Bios
Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: I1de7d2f250e381863a071b9e45e7bf8e8538af87
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index 3cf6077..f4e2dc0 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -8,29 +8,29 @@
/**
* BiosService class supports handle get method for bios.
*/
+inline void
+ handleBiosServiceGet(const crow::Request&,
+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+ asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1/Systems/system/Bios";
+ asyncResp->res.jsonValue["@odata.type"] = "#Bios.v1_1_0.Bios";
+ asyncResp->res.jsonValue["Name"] = "BIOS Configuration";
+ asyncResp->res.jsonValue["Description"] = "BIOS Configuration Service";
+ asyncResp->res.jsonValue["Id"] = "BIOS";
+ asyncResp->res.jsonValue["Actions"]["#Bios.ResetBios"] = {
+ {"target", "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios"}};
+
+ // Get the ActiveSoftwareImage and SoftwareImages
+ fw_util::populateFirmwareInformation(asyncResp, fw_util::biosPurpose, "",
+ true);
+}
inline void requestRoutesBiosService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/")
.privileges(redfish::privileges::getBios)
- .methods(boost::beast::http::verb::get)(
- [](const crow::Request&,
- const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
- asyncResp->res.jsonValue["@odata.id"] =
- "/redfish/v1/Systems/system/Bios";
- asyncResp->res.jsonValue["@odata.type"] = "#Bios.v1_1_0.Bios";
- asyncResp->res.jsonValue["Name"] = "BIOS Configuration";
- asyncResp->res.jsonValue["Description"] =
- "BIOS Configuration Service";
- asyncResp->res.jsonValue["Id"] = "BIOS";
- asyncResp->res.jsonValue["Actions"]["#Bios.ResetBios"] = {
- {"target",
- "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios"}};
-
- // Get the ActiveSoftwareImage and SoftwareImages
- fw_util::populateFirmwareInformation(
- asyncResp, fw_util::biosPurpose, "", true);
- });
+ .methods(boost::beast::http::verb::get)(handleBiosServiceGet);
}
+
/**
* BiosReset class supports handle POST method for Reset bios.
* The class retrieves and sends data directly to D-Bus.
@@ -38,26 +38,28 @@
* Function handles POST method request.
* Analyzes POST body message before sends Reset request data to D-Bus.
*/
+inline void
+ handleBiosResetPost(const crow::Request&,
+ const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
+{
+ crow::connections::systemBus->async_method_call(
+ [asyncResp](const boost::system::error_code ec) {
+ if (ec)
+ {
+ BMCWEB_LOG_ERROR << "Failed to reset bios: " << ec;
+ messages::internalError(asyncResp->res);
+ return;
+ }
+ },
+ "org.open_power.Software.Host.Updater", "/xyz/openbmc_project/software",
+ "xyz.openbmc_project.Common.FactoryReset", "Reset");
+}
inline void requestRoutesBiosReset(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios/")
- .privileges(redfish::privileges::postBios)
- .methods(boost::beast::http::verb::post)(
- [](const crow::Request&,
- const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
- crow::connections::systemBus->async_method_call(
- [asyncResp](const boost::system::error_code ec) {
- if (ec)
- {
- BMCWEB_LOG_ERROR << "Failed to reset bios: " << ec;
- messages::internalError(asyncResp->res);
- return;
- }
- },
- "org.open_power.Software.Host.Updater",
- "/xyz/openbmc_project/software",
- "xyz.openbmc_project.Common.FactoryReset", "Reset");
- });
+ .privileges({{"redfish::privileges::postBios"}})
+ .methods(boost::beast::http::verb::post)(handleBiosResetPost);
}
+
} // namespace redfish