Generate resource event
Generate Resource event registry
Tested: On last patch of series. No behavior changes.
Change-Id: I924919db0e7fbde8ed698de6b59b86f788de9708
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/meson.build b/meson.build
index 3760ac1..4c58262 100644
--- a/meson.build
+++ b/meson.build
@@ -356,6 +356,7 @@
'http/mutual_tls.cpp',
'redfish-core/src/dbus_log_watcher.cpp',
'redfish-core/src/error_messages.cpp',
+ 'redfish-core/src/resource_messages.cpp',
'redfish-core/src/task_messages.cpp',
'redfish-core/src/event_log.cpp',
'redfish-core/src/filesystem_log_watcher.cpp',
diff --git a/redfish-core/include/resource_messages.hpp b/redfish-core/include/resource_messages.hpp
index 7a71151..dd3c280 100644
--- a/redfish-core/include/resource_messages.hpp
+++ b/redfish-core/include/resource_messages.hpp
@@ -1,45 +1,96 @@
#pragma once
+/****************************************************************
+ * READ THIS WARNING FIRST
+ * This is an auto-generated header which contains definitions
+ * for Redfish DMTF defined messages.
+ * DO NOT modify this registry outside of running the
+ * parse_registries.py script. The definitions contained within
+ * this file are owned by DMTF. Any modifications to these files
+ * should be first pushed to the relevant registry in the DMTF
+ * github organization.
+ ***************************************************************/
-#include "registries/resource_event_message_registry.hpp"
+#include "http_response.hpp"
+#include <boost/url/url_view_base.hpp>
#include <nlohmann/json.hpp>
+#include <cstdint>
+#include <source_location>
+#include <string>
+#include <string_view>
+
+// IWYU pragma: no_forward_declare crow::Response
+
namespace redfish
{
+
namespace messages
{
+nlohmann::json resourceCreated();
-inline nlohmann::json
- getLogResourceEvent(redfish::registries::resource_event::Index name,
- std::span<std::string_view> args)
-{
- size_t index = static_cast<size_t>(name);
- if (index >= redfish::registries::resource_event::registry.size())
- {
- return {};
- }
- return getLogFromRegistry(redfish::registries::resource_event::header,
- redfish::registries::resource_event::registry,
- index, args);
-}
+nlohmann::json resourceRemoved();
-inline nlohmann::json resourceChanged()
-{
- return getLogResourceEvent(
- redfish::registries::resource_event::Index::resourceChanged, {});
-}
+nlohmann::json resourceErrorsDetected(std::string_view arg1,
+ std::string_view arg2);
-inline nlohmann::json resourceCreated()
-{
- return getLogResourceEvent(
- redfish::registries::resource_event::Index::resourceCreated, {});
-}
+nlohmann::json resourceErrorsCorrected(std::string_view arg1,
+ std::string_view arg2);
-inline nlohmann::json resourceRemoved()
-{
- return getLogResourceEvent(
- redfish::registries::resource_event::Index::resourceRemoved, {});
-}
+nlohmann::json resourceErrorThresholdExceeded(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json
+ resourceErrorThresholdCleared(std::string_view arg1, std::string_view arg2);
+
+nlohmann::json resourceWarningThresholdExceeded(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json resourceWarningThresholdCleared(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json resourceStatusChangedOK(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json
+ resourceStatusChangedWarning(std::string_view arg1, std::string_view arg2);
+
+nlohmann::json
+ resourceStatusChangedCritical(std::string_view arg1, std::string_view arg2);
+
+nlohmann::json resourceStateChanged(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json resourcePoweredOn(std::string_view arg1);
+
+nlohmann::json resourcePoweringOn(std::string_view arg1);
+
+nlohmann::json resourcePoweredOff(std::string_view arg1);
+
+nlohmann::json resourcePoweringOff(std::string_view arg1);
+
+nlohmann::json resourcePaused(std::string_view arg1);
+
+nlohmann::json uRIForResourceChanged();
+
+nlohmann::json resourceChanged();
+
+nlohmann::json resourceVersionIncompatible(std::string_view arg1);
+
+nlohmann::json resourceSelfTestFailed(std::string_view arg1);
+
+nlohmann::json resourceSelfTestCompleted();
+
+nlohmann::json testMessage();
+
+nlohmann::json aggregationSourceDiscovered(std::string_view arg1,
+ std::string_view arg2);
+
+nlohmann::json licenseExpired(std::string_view arg1, std::string_view arg2);
+
+nlohmann::json licenseChanged(std::string_view arg1, std::string_view arg2);
+
+nlohmann::json licenseAdded(std::string_view arg1, std::string_view arg2);
} // namespace messages
} // namespace redfish
diff --git a/redfish-core/src/resource_messages.cpp b/redfish-core/src/resource_messages.cpp
new file mode 100644
index 0000000..00023a8
--- /dev/null
+++ b/redfish-core/src/resource_messages.cpp
@@ -0,0 +1,426 @@
+/****************************************************************
+ * READ THIS WARNING FIRST
+ * This is an auto-generated header which contains definitions
+ * for Redfish DMTF defined messages.
+ * DO NOT modify this registry outside of running the
+ * parse_registries.py script. The definitions contained within
+ * this file are owned by DMTF. Any modifications to these files
+ * should be first pushed to the relevant registry in the DMTF
+ * github organization.
+ ***************************************************************/
+#include "resource_messages.hpp"
+
+#include "registries.hpp"
+#include "registries/resource_event_message_registry.hpp"
+
+#include <nlohmann/json.hpp>
+
+#include <array>
+#include <cstddef>
+#include <span>
+#include <string_view>
+
+// Clang can't seem to decide whether this header needs to be included or not,
+// and is inconsistent. Include it for now
+// NOLINTNEXTLINE(misc-include-cleaner)
+#include <utility>
+
+namespace redfish
+{
+
+namespace messages
+{
+
+static nlohmann::json getLog(redfish::registries::resource_event::Index name,
+ std::span<const std::string_view> args)
+{
+ size_t index = static_cast<size_t>(name);
+ if (index >= redfish::registries::resource_event::registry.size())
+ {
+ return {};
+ }
+ return getLogFromRegistry(redfish::registries::resource_event::header,
+ redfish::registries::resource_event::registry,
+ index, args);
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceCreated message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceCreated()
+{
+ return getLog(redfish::registries::resource_event::Index::resourceCreated,
+ {});
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceRemoved message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceRemoved()
+{
+ return getLog(redfish::registries::resource_event::Index::resourceRemoved,
+ {});
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceErrorsDetected message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceErrorsDetected(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceErrorsDetected,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceErrorsCorrected message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceErrorsCorrected(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceErrorsCorrected,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceErrorThresholdExceeded message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json
+ resourceErrorThresholdExceeded(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceErrorThresholdExceeded,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceErrorThresholdCleared message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json
+ resourceErrorThresholdCleared(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceErrorThresholdCleared,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceWarningThresholdExceeded message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceWarningThresholdExceeded(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceWarningThresholdExceeded,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceWarningThresholdCleared message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceWarningThresholdCleared(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceWarningThresholdCleared,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceStatusChangedOK message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceStatusChangedOK(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceStatusChangedOK,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceStatusChangedWarning message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json
+ resourceStatusChangedWarning(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceStatusChangedWarning,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceStatusChangedCritical message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json
+ resourceStatusChangedCritical(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::
+ resourceStatusChangedCritical,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceStateChanged message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceStateChanged(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceStateChanged,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourcePoweredOn message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourcePoweredOn(std::string_view arg1)
+{
+ return getLog(redfish::registries::resource_event::Index::resourcePoweredOn,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourcePoweringOn message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourcePoweringOn(std::string_view arg1)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourcePoweringOn,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourcePoweredOff message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourcePoweredOff(std::string_view arg1)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourcePoweredOff,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourcePoweringOff message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourcePoweringOff(std::string_view arg1)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourcePoweringOff,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourcePaused message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourcePaused(std::string_view arg1)
+{
+ return getLog(redfish::registries::resource_event::Index::resourcePaused,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats URIForResourceChanged message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json uRIForResourceChanged()
+{
+ return getLog(
+ redfish::registries::resource_event::Index::uRIForResourceChanged, {});
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceChanged message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceChanged()
+{
+ return getLog(redfish::registries::resource_event::Index::resourceChanged,
+ {});
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceVersionIncompatible message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceVersionIncompatible(std::string_view arg1)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceVersionIncompatible,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceSelfTestFailed message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceSelfTestFailed(std::string_view arg1)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceSelfTestFailed,
+ std::to_array({arg1}));
+}
+
+/**
+ * @internal
+ * @brief Formats ResourceSelfTestCompleted message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json resourceSelfTestCompleted()
+{
+ return getLog(
+ redfish::registries::resource_event::Index::resourceSelfTestCompleted,
+ {});
+}
+
+/**
+ * @internal
+ * @brief Formats TestMessage message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json testMessage()
+{
+ return getLog(redfish::registries::resource_event::Index::testMessage, {});
+}
+
+/**
+ * @internal
+ * @brief Formats AggregationSourceDiscovered message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json aggregationSourceDiscovered(std::string_view arg1,
+ std::string_view arg2)
+{
+ return getLog(
+ redfish::registries::resource_event::Index::aggregationSourceDiscovered,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats LicenseExpired message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json licenseExpired(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::licenseExpired,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats LicenseChanged message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json licenseChanged(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::licenseChanged,
+ std::to_array({arg1, arg2}));
+}
+
+/**
+ * @internal
+ * @brief Formats LicenseAdded message into JSON
+ *
+ * See header file for more information
+ * @endinternal
+ */
+nlohmann::json licenseAdded(std::string_view arg1, std::string_view arg2)
+{
+ return getLog(redfish::registries::resource_event::Index::licenseAdded,
+ std::to_array({arg1, arg2}));
+}
+
+} // namespace messages
+} // namespace redfish
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index 994b007..fda2124 100755
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -488,56 +488,36 @@
) as out:
out.write(WARNING)
out.write(f'\n#include "{base_filename}.hpp"\n')
- if registry_name == "Base":
- out.write(
- """
+ headers = []
-#include "http_response.hpp"
-#include "logging.hpp"
-"""
- )
- out.write(
- """
-#include "registries.hpp"
-"""
- )
+ headers.append('"registries.hpp"')
if registry_name == "Base":
reg_name_lower = "base"
+ headers.append('"http_response.hpp"')
+ headers.append('"logging.hpp"')
+ headers.append("<boost/beast/http/field.hpp>")
+ headers.append("<boost/beast/http/status.hpp>")
+ headers.append("<boost/url/url_view_base.hpp>")
+ headers.append("<source_location>")
else:
reg_name_lower = namespace_name.lower()
- out.write(
- f'#include "registries/{reg_name_lower}_message_registry.hpp"'
- )
- if registry_name == "Base":
- out.write(
- """
+ headers.append(f'"registries/{reg_name_lower}_message_registry.hpp"')
- #include <boost/beast/http/field.hpp>
- #include <boost/beast/http/status.hpp>
- #include <boost/url/url_view_base.hpp>
-"""
- )
+ headers.append("<nlohmann/json.hpp>")
+ headers.append("<array>")
+ headers.append("<cstddef>")
+ headers.append("<span>")
+
+ if registry_name != "ResourceEvent":
+ headers.append("<cstdint>")
+ headers.append("<string>")
+ headers.append("<string_view>")
+
+ for header in headers:
+ out.write(f"#include {header}\n")
+
out.write(
"""
-#include <nlohmann/json.hpp>
-
-#include <array>
-#include <cstddef>
-#include <cstdint>
-"""
- )
- if registry_name == "Base":
- out.write(
- """
-#include <source_location>
-"""
- )
- out.write(
- """
-#include <span>
-#include <string>
-#include <string_view>
-
// Clang can't seem to decide whether this header needs to be included or not,
// and is inconsistent. Include it for now
// NOLINTNEXTLINE(misc-include-cleaner)
@@ -815,6 +795,13 @@
files[0], dmtf_registries[0][1], "Base", "base", "error"
)
create_error_registry(
+ files[12],
+ dmtf_registries[12][1],
+ "ResourceEvent",
+ "resource_event",
+ "resource",
+ )
+ create_error_registry(
files[15], dmtf_registries[15][1], "TaskEvent", "task_event", "task"
)