diff options
author | James Feist <james.feist@linux.intel.com> | 2020-05-12 03:29:00 +0300 |
---|---|---|
committer | James Feist <james.feist@linux.intel.com> | 2020-05-14 19:10:13 +0300 |
commit | e5d5006bb15a79c1a714b66eaabe91269986c71d (patch) | |
tree | 1d1db91be7e0bd2d5c76cc18c6b14bd509ec1375 /redfish-core | |
parent | 07386c670c57fc18742aaae266228b9cea7be1d7 (diff) | |
download | bmcweb-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.hpp | 125 | ||||
-rw-r--r-- | redfish-core/lib/log_services.hpp | 4 | ||||
-rw-r--r-- | redfish-core/lib/task.hpp | 5 | ||||
-rw-r--r-- | redfish-core/lib/update_service.hpp | 8 |
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; } |