summaryrefslogtreecommitdiff
path: root/redfish-core/lib/log_services.hpp
diff options
context:
space:
mode:
authorraviteja-b <raviteja28031990@gmail.com>2020-02-03 21:50:42 +0300
committerRavi Teja <raviteja28031990@gmail.com>2020-05-28 03:31:52 +0300
commit0657843a00da62c3a076dacbf6203867a4fb5eb5 (patch)
tree708f4d8e1d92a55a6a6d6b64084c62cd5f1ebb53 /redfish-core/lib/log_services.hpp
parent4722efebed1c1cc628ce6e9569c74a0a4d2e299e (diff)
downloadbmcweb-0657843a00da62c3a076dacbf6203867a4fb5eb5.tar.xz
Redfish: Download action support for system dump entry
Tested By: POST https://${IP}/redfish/v1/Systems/system/LogServices/SystemDump/Entries/<id>/Actions/Oem/OpenBmc/LogEntry.DownloadLog Change-Id: I06262cf0799920aeb065a065886320b20c04aa7c Signed-off-by: Ravi Teja <raviteja28031990@gmail.com>
Diffstat (limited to 'redfish-core/lib/log_services.hpp')
-rw-r--r--redfish-core/lib/log_services.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 79433b9a0c..8590373267 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -27,6 +27,7 @@
#include <boost/beast/core/span.hpp>
#include <boost/container/flat_map.hpp>
#include <boost/system/linux_error.hpp>
+#include <dump_offload.hpp>
#include <error_messages.hpp>
#include <filesystem>
#include <string_view>
@@ -1849,6 +1850,36 @@ class SystemDumpEntry : public Node
}
};
+class SystemDumpEntryDownload : public Node
+{
+ public:
+ SystemDumpEntryDownload(CrowApp &app) :
+ Node(app,
+ "/redfish/v1/Systems/system/LogServices/System/Entries/<str>/"
+ "Actions/"
+ "LogEntry.DownloadLog/",
+ std::string())
+ {
+ entityPrivileges = {
+ {boost::beast::http::verb::get, {{"Login"}}},
+ {boost::beast::http::verb::head, {{"Login"}}},
+ {boost::beast::http::verb::post, {{"ConfigureManager"}}}};
+ }
+
+ private:
+ void doPost(crow::Response &res, const crow::Request &req,
+ const std::vector<std::string> &params) override
+ {
+ if (params.size() != 1)
+ {
+ messages::internalError(res);
+ return;
+ }
+ const std::string &entryID = params[0];
+ crow::obmc_dump::handleDumpOffloadUrl(req, res, entryID);
+ }
+};
+
class CrashdumpService : public Node
{
public: