1*a51fc2d2SSui Chen #pragma once 2*a51fc2d2SSui Chen 3*a51fc2d2SSui Chen #include <app.hpp> 4*a51fc2d2SSui Chen #include <async_resp.hpp> 5*a51fc2d2SSui Chen #include <http_request.hpp> 6*a51fc2d2SSui Chen #include <nlohmann/json.hpp> 7*a51fc2d2SSui Chen #include <privileges.hpp> 8*a51fc2d2SSui Chen #include <routing.hpp> 9*a51fc2d2SSui Chen 10*a51fc2d2SSui Chen #include <string> 11*a51fc2d2SSui Chen 12*a51fc2d2SSui Chen namespace redfish 13*a51fc2d2SSui Chen { 14*a51fc2d2SSui Chen 15*a51fc2d2SSui Chen /** 16*a51fc2d2SSui Chen * handleManagerDiagnosticData supports ManagerDiagnosticData. 17*a51fc2d2SSui Chen * It retrieves BMC health information from various DBus resources and returns 18*a51fc2d2SSui Chen * the information through the response. 19*a51fc2d2SSui Chen */ 20*a51fc2d2SSui Chen inline void handleManagerDiagnosticDataGet( 21*a51fc2d2SSui Chen crow::App& app, const crow::Request& req, 22*a51fc2d2SSui Chen const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) 23*a51fc2d2SSui Chen { 24*a51fc2d2SSui Chen if (!redfish::setUpRedfishRoute(app, req, asyncResp)) 25*a51fc2d2SSui Chen { 26*a51fc2d2SSui Chen return; 27*a51fc2d2SSui Chen } 28*a51fc2d2SSui Chen asyncResp->res.jsonValue["@odata.type"] = 29*a51fc2d2SSui Chen "#ManagerDiagnosticData.v1_0_0.ManagerDiagnosticData"; 30*a51fc2d2SSui Chen asyncResp->res.jsonValue["@odata.id"] = 31*a51fc2d2SSui Chen "/redfish/v1/Managers/bmc/ManagerDiagnosticData"; 32*a51fc2d2SSui Chen asyncResp->res.jsonValue["Id"] = "ManagerDiagnosticData"; 33*a51fc2d2SSui Chen asyncResp->res.jsonValue["Name"] = "Manager Diagnostic Data"; 34*a51fc2d2SSui Chen } 35*a51fc2d2SSui Chen 36*a51fc2d2SSui Chen inline void requestRoutesManagerDiagnosticData(App& app) 37*a51fc2d2SSui Chen { 38*a51fc2d2SSui Chen BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/ManagerDiagnosticData") 39*a51fc2d2SSui Chen .privileges(redfish::privileges::getManagerDiagnosticData) 40*a51fc2d2SSui Chen .methods(boost::beast::http::verb::get)( 41*a51fc2d2SSui Chen std::bind_front(handleManagerDiagnosticDataGet, std::ref(app))); 42*a51fc2d2SSui Chen } 43*a51fc2d2SSui Chen 44*a51fc2d2SSui Chen } // namespace redfish 45