diff options
Diffstat (limited to 'redfish-core/lib/managers.hpp')
-rw-r--r-- | redfish-core/lib/managers.hpp | 182 |
1 files changed, 96 insertions, 86 deletions
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp index 7a861b4a3d..86fe567f3a 100644 --- a/redfish-core/lib/managers.hpp +++ b/redfish-core/lib/managers.hpp @@ -17,101 +17,111 @@ #include "node.hpp" -namespace redfish { +namespace redfish +{ -class Manager : public Node { - public: - Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/openbmc/") { - Node::json["@odata.id"] = "/redfish/v1/Managers/openbmc"; - Node::json["@odata.type"] = "#Manager.v1_3_0.Manager"; - Node::json["@odata.context"] = "/redfish/v1/$metadata#Manager.Manager"; - Node::json["Id"] = "openbmc"; - Node::json["Name"] = "OpenBmc Manager"; - Node::json["Description"] = "Baseboard Management Controller"; - Node::json["PowerState"] = "On"; - Node::json["UUID"] = - app.template getMiddleware<crow::persistent_data::Middleware>() - .systemUuid; - Node::json["Model"] = "OpenBmc"; // TODO(ed), get model - Node::json["FirmwareVersion"] = "1234456789"; // TODO(ed), get fwversion - Node::json["EthernetInterfaces"] = nlohmann::json( - {{"@odata.id", - "/redfish/v1/Managers/openbmc/EthernetInterfaces"}}); // TODO(Pawel), - // remove this - // when - // subroutes - // will work - // correctly +class Manager : public Node +{ + public: + Manager(CrowApp& app) : Node(app, "/redfish/v1/Managers/openbmc/") + { + Node::json["@odata.id"] = "/redfish/v1/Managers/openbmc"; + Node::json["@odata.type"] = "#Manager.v1_3_0.Manager"; + Node::json["@odata.context"] = "/redfish/v1/$metadata#Manager.Manager"; + Node::json["Id"] = "openbmc"; + Node::json["Name"] = "OpenBmc Manager"; + Node::json["Description"] = "Baseboard Management Controller"; + Node::json["PowerState"] = "On"; + Node::json["UUID"] = + app.template getMiddleware<crow::persistent_data::Middleware>() + .systemUuid; + Node::json["Model"] = "OpenBmc"; // TODO(ed), get model + Node::json["FirmwareVersion"] = "1234456789"; // TODO(ed), get fwversion + Node::json["EthernetInterfaces"] = nlohmann::json( + {{"@odata.id", "/redfish/v1/Managers/openbmc/" + "EthernetInterfaces"}}); // TODO(Pawel), + // remove this + // when + // subroutes + // will work + // correctly - entityPrivileges = { - {boost::beast::http::verb::get, {{"Login"}}}, - {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, - {boost::beast::http::verb::put, {{"ConfigureManager"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, - {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; - } + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } - private: - void doGet(crow::Response& res, const crow::Request& req, - const std::vector<std::string>& params) override { - Node::json["DateTime"] = getDateTime(); - // Copy over the static data to include the entries added by SubRoute - res.jsonValue = Node::json; - res.end(); - } + private: + void doGet(crow::Response& res, const crow::Request& req, + const std::vector<std::string>& params) override + { + Node::json["DateTime"] = getDateTime(); + // Copy over the static data to include the entries added by SubRoute + res.jsonValue = Node::json; + res.end(); + } - std::string getDateTime() const { - std::array<char, 128> dateTime; - std::string redfishDateTime("0000-00-00T00:00:00Z00:00"); - std::time_t time = std::time(nullptr); + std::string getDateTime() const + { + std::array<char, 128> dateTime; + std::string redfishDateTime("0000-00-00T00:00:00Z00:00"); + std::time_t time = std::time(nullptr); - if (std::strftime(dateTime.begin(), dateTime.size(), "%FT%T%z", - std::localtime(&time))) { - // insert the colon required by the ISO 8601 standard - redfishDateTime = std::string(dateTime.data()); - redfishDateTime.insert(redfishDateTime.end() - 2, ':'); - } + if (std::strftime(dateTime.begin(), dateTime.size(), "%FT%T%z", + std::localtime(&time))) + { + // insert the colon required by the ISO 8601 standard + redfishDateTime = std::string(dateTime.data()); + redfishDateTime.insert(redfishDateTime.end() - 2, ':'); + } - return redfishDateTime; - } + return redfishDateTime; + } }; -class ManagerCollection : public Node { - public: - ManagerCollection(CrowApp& app) : Node(app, "/redfish/v1/Managers/") { - Node::json["@odata.id"] = "/redfish/v1/Managers"; - Node::json["@odata.type"] = "#ManagerCollection.ManagerCollection"; - Node::json["@odata.context"] = - "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; - Node::json["Name"] = "Manager Collection"; - Node::json["Members@odata.count"] = 1; - Node::json["Members"] = {{{"@odata.id", "/redfish/v1/Managers/openbmc"}}}; +class ManagerCollection : public Node +{ + public: + ManagerCollection(CrowApp& app) : Node(app, "/redfish/v1/Managers/") + { + Node::json["@odata.id"] = "/redfish/v1/Managers"; + Node::json["@odata.type"] = "#ManagerCollection.ManagerCollection"; + Node::json["@odata.context"] = + "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; + Node::json["Name"] = "Manager Collection"; + Node::json["Members@odata.count"] = 1; + Node::json["Members"] = { + {{"@odata.id", "/redfish/v1/Managers/openbmc"}}}; - entityPrivileges = { - {boost::beast::http::verb::get, {{"Login"}}}, - {boost::beast::http::verb::head, {{"Login"}}}, - {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, - {boost::beast::http::verb::put, {{"ConfigureManager"}}}, - {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, - {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; - } + entityPrivileges = { + {boost::beast::http::verb::get, {{"Login"}}}, + {boost::beast::http::verb::head, {{"Login"}}}, + {boost::beast::http::verb::patch, {{"ConfigureManager"}}}, + {boost::beast::http::verb::put, {{"ConfigureManager"}}}, + {boost::beast::http::verb::delete_, {{"ConfigureManager"}}}, + {boost::beast::http::verb::post, {{"ConfigureManager"}}}}; + } - private: - void doGet(crow::Response& res, const crow::Request& req, - const std::vector<std::string>& params) override { - // Collections don't include the static data added by SubRoute because it - // has a duplicate entry for members - res.jsonValue["@odata.id"] = "/redfish/v1/Managers"; - res.jsonValue["@odata.type"] = "#ManagerCollection.ManagerCollection"; - res.jsonValue["@odata.context"] = - "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; - res.jsonValue["Name"] = "Manager Collection"; - res.jsonValue["Members@odata.count"] = 1; - res.jsonValue["Members"] = { - {{"@odata.id", "/redfish/v1/Managers/openbmc"}}}; - res.end(); - } + private: + void doGet(crow::Response& res, const crow::Request& req, + const std::vector<std::string>& params) override + { + // Collections don't include the static data added by SubRoute because + // it has a duplicate entry for members + res.jsonValue["@odata.id"] = "/redfish/v1/Managers"; + res.jsonValue["@odata.type"] = "#ManagerCollection.ManagerCollection"; + res.jsonValue["@odata.context"] = + "/redfish/v1/$metadata#ManagerCollection.ManagerCollection"; + res.jsonValue["Name"] = "Manager Collection"; + res.jsonValue["Members@odata.count"] = 1; + res.jsonValue["Members"] = { + {{"@odata.id", "/redfish/v1/Managers/openbmc"}}}; + res.end(); + } }; -} // namespace redfish +} // namespace redfish |