summaryrefslogtreecommitdiff
path: root/redfish-core/lib/bios.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'redfish-core/lib/bios.hpp')
-rw-r--r--redfish-core/lib/bios.hpp105
1 files changed, 46 insertions, 59 deletions
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index 0917cc7f47..de6f9a1f56 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -1,75 +1,62 @@
#pragma once
-#include "node.hpp"
-
+#include <app.hpp>
#include <utils/fw_utils.hpp>
namespace redfish
{
/**
* BiosService class supports handle get method for bios.
*/
-class BiosService : public Node
+inline void requestRoutesBiosService(App& app)
{
- public:
- BiosService(App& app) : Node(app, "/redfish/v1/Systems/system/Bios/")
- {
- entityPrivileges = {{boost::beast::http::verb::get, {{"Login"}}}};
- }
-
- private:
- void doGet(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
- const crow::Request&, const std::vector<std::string>&) override
- {
- 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"}};
+ BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/")
+ .privileges({"Login"})
+ .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);
- }
-};
+ // Get the ActiveSoftwareImage and SoftwareImages
+ fw_util::populateFirmwareInformation(
+ asyncResp, fw_util::biosPurpose, "", true);
+ });
+}
/**
* BiosReset class supports handle POST method for Reset bios.
* The class retrieves and sends data directly to D-Bus.
+ *
+ * Function handles POST method request.
+ * Analyzes POST body message before sends Reset request data to D-Bus.
*/
-class BiosReset : public Node
-{
- public:
- BiosReset(App& app) :
- Node(app, "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios/")
- {
- entityPrivileges = {
- {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
- }
- private:
- /**
- * Function handles POST method request.
- * Analyzes POST body message before sends Reset request data to D-Bus.
- */
- void doPost(const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
- const crow::Request&, const std::vector<std::string>&) override
- {
-
- 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({"ConfigureManager"})
+ .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");
+ });
+}
} // namespace redfish