Manager: add ManagerDiagnosticData handler
This change adds a link in the Manager for all BMCs to an empty
ManagerDiagnosticData resource and a minimum ManagerDiagnosticData
handler.
This service is backed by phosphor-health-monitor (PHM), which is
enabled by default through the "obmc-apps" package group. If PHM is
disabled, the resource will be empty.
$ curl http://${bmc}:10080/redfish/v1/Managers/bmc/ManagerDiagnosticData
{
"@odata.id": "/redfish/v1/Managers/bmc/ManagerDiagnosticData",
"@odata.type": "#ManagerDiagnosticData.v1_0_0.ManagerDiagnosticData",
"Id": "ManagerDiagnosticData",
"Name": "Manager Diagnostic Data"
}
Also ran the Redfish Service Validator to make sure no new errors are
introduced with the introduction of ManagerDiagnosticData.
Signed-off-by: Sui Chen <suichen@google.com>
Change-Id: Iba242bc3b6ebec851dbd26e149d5c92c19a7992e
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 039fced..52a3c85 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -15,17 +15,17 @@
*/
#pragma once
+#include "app.hpp"
+#include "dbus_utility.hpp"
#include "health.hpp"
+#include "query.hpp"
#include "redfish_util.hpp"
+#include "registries/privilege_registry.hpp"
+#include "utils/sw_utils.hpp"
+#include "utils/systemd_utils.hpp"
-#include <app.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/date_time.hpp>
-#include <dbus_utility.hpp>
-#include <query.hpp>
-#include <registries/privilege_registry.hpp>
-#include <utils/sw_utils.hpp>
-#include <utils/systemd_utils.hpp>
#include <cstdint>
#include <memory>
@@ -1954,7 +1954,7 @@
return;
}
asyncResp->res.jsonValue["@odata.id"] = "/redfish/v1/Managers/bmc";
- asyncResp->res.jsonValue["@odata.type"] = "#Manager.v1_11_0.Manager";
+ asyncResp->res.jsonValue["@odata.type"] = "#Manager.v1_14_0.Manager";
asyncResp->res.jsonValue["Id"] = "bmc";
asyncResp->res.jsonValue["Name"] = "OpenBmc Manager";
asyncResp->res.jsonValue["Description"] =
@@ -2054,6 +2054,12 @@
managerGetLastResetTime(asyncResp);
+ // ManagerDiagnosticData is added for all BMCs.
+ nlohmann::json& managerDiagnosticData =
+ asyncResp->res.jsonValue["ManagerDiagnosticData"];
+ managerDiagnosticData["@odata.id"] =
+ "/redfish/v1/Managers/bmc/ManagerDiagnosticData";
+
auto pids = std::make_shared<GetPIDValues>(asyncResp);
pids->run();