summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-phosphor/interfaces/bmcweb/0008-Add-support-to-ResetBios-action.patch
blob: 7e4e2e8d878c6d3504d8f158b4a3f55359d7f42b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
From a78eecb032eefeb84da3ec042700a40f55ae8f10 Mon Sep 17 00:00:00 2001
From: Kuiying Wang <kuiying.wang@intel.com>
Date: Wed, 23 Dec 2020 22:47:56 +0800
Subject: [PATCH] Add support to ResetBios action

Tested:

Bios reset flag can be modified throw redfish
POST https://IP_ADDR/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios

Change-Id: I5e5fbdd70d4a3ce3b976cc2eb0a7d9a2a3adb124
Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>

---
 redfish-core/lib/bios.hpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index cf76fe0..7b6fc3d 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -643,7 +643,7 @@ class BiosReset : public Node
         Node(app, "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios/")
     {
         entityPrivileges = {
-            {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
+            {boost::beast::http::verb::post, {{"ConfigureComponents"}}}};
     }
 
   private:
@@ -655,19 +655,23 @@ class BiosReset : public Node
                 const std::vector<std::string>&) override
     {
         auto asyncResp = std::make_shared<AsyncResp>(res);
-
+        std::string resetFlag =
+            "xyz.openbmc_project.BIOSConfig.Manager.ResetFlag.FactoryDefaults";
         crow::connections::systemBus->async_method_call(
             [asyncResp](const boost::system::error_code ec) {
                 if (ec)
                 {
-                    BMCWEB_LOG_ERROR << "Failed to reset bios: " << ec;
+                    BMCWEB_LOG_ERROR << "doPost bios reset got error " << ec;
                     messages::internalError(asyncResp->res);
                     return;
                 }
+                BMCWEB_LOG_DEBUG << "bios reset action is done";
             },
-            "org.open_power.Software.Host.Updater",
-            "/xyz/openbmc_project/software",
-            "xyz.openbmc_project.Common.FactoryReset", "Reset");
+            "xyz.openbmc_project.BIOSConfigManager",
+            "/xyz/openbmc_project/bios_config/manager",
+            "org.freedesktop.DBus.Properties", "Set",
+            "xyz.openbmc_project.BIOSConfig.Manager", "ResetBIOSSettings",
+            std::variant<std::string>(resetFlag));
     }
 };
 } // namespace redfish
-- 
2.17.1