registries: make registration dynamic
Rather than having to manually hook code for registries, add a small
registration function to the registry header and use this registration
results throughout the registry interactions.
Tested:
Confirmed registries have same behavior.
```
$ curl -s -k https://localhost:18080/redfish/v1/Registries/ | jq '.Members | map(."@odata.id")'
[
"/redfish/v1/Registries/Base",
"/redfish/v1/Registries/HeartbeatEvent",
"/redfish/v1/Registries/OpenBMC",
"/redfish/v1/Registries/ResourceEvent",
"/redfish/v1/Registries/TaskEvent",
"/redfish/v1/Registries/Telemetry"
]
```
```
$ curl -s -k https://localhost:18080/redfish/v1/Registries/TaskEvent/TaskEvent | jq ".Messages | keys"
[
"TaskAborted",
"TaskCancelled",
"TaskCompletedOK",
"TaskCompletedWarning",
"TaskPaused",
"TaskProgressChanged",
"TaskRemoved",
"TaskResumed",
"TaskStarted"
]
```
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iaa355420736a2587d9da4e995208d579443ca9b8
diff --git a/redfish-core/src/task_messages.cpp b/redfish-core/src/task_messages.cpp
index ebc7cf6..1521a4a 100644
--- a/redfish-core/src/task_messages.cpp
+++ b/redfish-core/src/task_messages.cpp
@@ -33,16 +33,16 @@
namespace messages
{
-static nlohmann::json getLog(redfish::registries::task_event::Index name,
+static nlohmann::json getLog(redfish::registries::TaskEvent::Index name,
std::span<const std::string_view> args)
{
size_t index = static_cast<size_t>(name);
- if (index >= redfish::registries::task_event::registry.size())
+ if (index >= redfish::registries::TaskEvent::registry.size())
{
return {};
}
- return getLogFromRegistry(redfish::registries::task_event::header,
- redfish::registries::task_event::registry, index,
+ return getLogFromRegistry(redfish::registries::TaskEvent::header,
+ redfish::registries::TaskEvent::registry, index,
args);
}
@@ -55,7 +55,7 @@
*/
nlohmann::json taskStarted(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskStarted,
+ return getLog(redfish::registries::TaskEvent::Index::taskStarted,
std::to_array({arg1}));
}
@@ -68,7 +68,7 @@
*/
nlohmann::json taskCompletedOK(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskCompletedOK,
+ return getLog(redfish::registries::TaskEvent::Index::taskCompletedOK,
std::to_array({arg1}));
}
@@ -81,7 +81,7 @@
*/
nlohmann::json taskCompletedWarning(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskCompletedWarning,
+ return getLog(redfish::registries::TaskEvent::Index::taskCompletedWarning,
std::to_array({arg1}));
}
@@ -94,7 +94,7 @@
*/
nlohmann::json taskAborted(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskAborted,
+ return getLog(redfish::registries::TaskEvent::Index::taskAborted,
std::to_array({arg1}));
}
@@ -107,7 +107,7 @@
*/
nlohmann::json taskCancelled(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskCancelled,
+ return getLog(redfish::registries::TaskEvent::Index::taskCancelled,
std::to_array({arg1}));
}
@@ -120,7 +120,7 @@
*/
nlohmann::json taskRemoved(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskRemoved,
+ return getLog(redfish::registries::TaskEvent::Index::taskRemoved,
std::to_array({arg1}));
}
@@ -133,7 +133,7 @@
*/
nlohmann::json taskPaused(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskPaused,
+ return getLog(redfish::registries::TaskEvent::Index::taskPaused,
std::to_array({arg1}));
}
@@ -146,7 +146,7 @@
*/
nlohmann::json taskResumed(std::string_view arg1)
{
- return getLog(redfish::registries::task_event::Index::taskResumed,
+ return getLog(redfish::registries::TaskEvent::Index::taskResumed,
std::to_array({arg1}));
}
@@ -160,7 +160,7 @@
nlohmann::json taskProgressChanged(std::string_view arg1, uint64_t arg2)
{
std::string arg2Str = std::to_string(arg2);
- return getLog(redfish::registries::task_event::Index::taskProgressChanged,
+ return getLog(redfish::registries::TaskEvent::Index::taskProgressChanged,
std::to_array<std::string_view>({arg1, arg2Str}));
}