summaryrefslogtreecommitdiff
path: root/redfish-core
diff options
context:
space:
mode:
authorJames Feist <james.feist@linux.intel.com>2020-05-12 03:29:00 +0300
committerJames Feist <james.feist@linux.intel.com>2020-05-14 19:10:13 +0300
commite5d5006bb15a79c1a714b66eaabe91269986c71d (patch)
tree1d1db91be7e0bd2d5c76cc18c6b14bd509ec1375 /redfish-core
parent07386c670c57fc18742aaae266228b9cea7be1d7 (diff)
downloadbmcweb-e5d5006bb15a79c1a714b66eaabe91269986c71d.tar.xz
Task: Use TaskEvent messages
Task registry messages make more sense to use for task events then standard registry entries when applicable. Use them. Tested: "Messages": [ { "@odata.type": "#Message.v1_0_0.Message", "Message": "The task with id 0 has started.", "MessageArgs": [ "0" ], "MessageId": "TaskEvent.1.0.1.TaskStarted", "Resolution": "None.", "Severity": "OK" } ], Validator passed Change-Id: I707492544e18def2833e8a2e2216ce803c42c775 Signed-off-by: James Feist <james.feist@linux.intel.com>
Diffstat (limited to 'redfish-core')
-rw-r--r--redfish-core/include/task_messages.hpp125
-rw-r--r--redfish-core/lib/log_services.hpp4
-rw-r--r--redfish-core/lib/task.hpp5
-rw-r--r--redfish-core/lib/update_service.hpp8
4 files changed, 137 insertions, 5 deletions
diff --git a/redfish-core/include/task_messages.hpp b/redfish-core/include/task_messages.hpp
new file mode 100644
index 0000000000..050cc63c56
--- /dev/null
+++ b/redfish-core/include/task_messages.hpp
@@ -0,0 +1,125 @@
+/*
+// Copyright (c) 2020 Intel Corporation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+*/
+
+namespace redfish
+{
+
+namespace messages
+{
+
+nlohmann::json taskAborted(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskAborted"},
+ {"Message", "The task with id " + arg1 + " has been aborted."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "Critical"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskCancelled(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskCancelled"},
+ {"Message", "The task with id " + arg1 + " has been cancelled."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "Warning"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskCompletedOK(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskCompletedOK"},
+ {"Message", "The task with id " + arg1 + " has Completed."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "OK"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskCompletedWarning(const std::string& arg1)
+{
+ return nlohmann::json{{"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskCompletedWarning"},
+ {"Message", "The task with id " + arg1 +
+ " has completed with warnings."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "Warning"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskPaused(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskPaused"},
+ {"Message", "The task with id " + arg1 + " has been paused."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "Warning"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskProgressChanged(const std::string& arg1, const size_t arg2)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskProgressChanged"},
+ {"Message", "The task with id " + arg1 + " has changed to progress " +
+ std::to_string(arg2) + " percent complete."},
+ {"MessageArgs", {arg1, arg2}},
+ {"Severity", "OK"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskRemoved(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskRemoved"},
+ {"Message", "The task with id " + arg1 + " has been removed."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "Warning"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskResumed(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskResumed"},
+ {"Message", "The task with id " + arg1 + " has been resumed."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "OK"},
+ {"Resolution", "None."}};
+}
+
+nlohmann::json taskStarted(const std::string& arg1)
+{
+ return nlohmann::json{
+ {"@odata.type", "#Message.v1_0_0.Message"},
+ {"MessageId", "TaskEvent.1.0.1.TaskStarted"},
+ {"Message", "The task with id " + arg1 + " has started."},
+ {"MessageArgs", {arg1}},
+ {"Severity", "OK"},
+ {"Resolution", "None."}};
+}
+
+} // namespace messages
+
+} // namespace redfish
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 667fb4045d..79433b9a0c 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -2274,7 +2274,9 @@ class OnDemandCrashdump : public Node
const std::shared_ptr<task::TaskData> &taskData) {
if (!err)
{
- taskData->messages.emplace_back(messages::success());
+ taskData->messages.emplace_back(
+ messages::taskCompletedOK(
+ std::to_string(taskData->index)));
taskData->state = "Completed";
}
return task::completed;
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 2f86a6aa75..cbae67b109 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -20,6 +20,7 @@
#include <boost/asio.hpp>
#include <boost/container/flat_map.hpp>
#include <chrono>
+#include <task_messages.hpp>
#include <variant>
namespace redfish
@@ -206,9 +207,11 @@ struct TaskData : std::enable_shared_from_this<TaskData>
self->finishTask();
self->state = "Cancelled";
self->status = "Warning";
- self->messages.emplace_back(messages::internalError());
+ self->messages.emplace_back(
+ messages::taskAborted(std::to_string(self->index)));
self->callback(ec, msg, self);
});
+ messages.emplace_back(messages::taskStarted(std::to_string(index)));
}
std::function<bool(boost::system::error_code, sdbusplus::message::message &,
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index e9793ebe70..60d6673fd6 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -151,14 +151,16 @@ static void softwareInterfaceAdded(std::shared_ptr<AsyncResp> asyncResp,
return task::completed;
}
+ std::string index =
+ std::to_string(taskData->index);
+
if (boost::ends_with(*state, "Invalid") ||
boost::ends_with(*state, "Failed"))
{
taskData->state = "Exception";
taskData->status = "Warning";
taskData->messages.emplace_back(
- messages::invalidObject(
- "/redfish/v1/UpdateService/"));
+ messages::taskAborted(index));
return task::completed;
}
@@ -171,7 +173,7 @@ static void softwareInterfaceAdded(std::shared_ptr<AsyncResp> asyncResp,
if (boost::ends_with(*state, "Active"))
{
taskData->messages.emplace_back(
- messages::success());
+ messages::taskCompletedOK(index));
taskData->state = "Completed";
return task::completed;
}