summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@linux.intel.com>2019-03-27 22:58:21 +0300
committerEd Tanous <ed.tanous@intel.com>2019-05-08 22:08:00 +0300
commit351d3063e86c5a6047c995ba72552bd82df86489 (patch)
treebe1011e3a0209875900a314e1c173be66618670f
parent70304cb594859b3862eeecc0a16c8e6e9a126530 (diff)
downloadbmcweb-351d3063e86c5a6047c995ba72552bd82df86489.tar.xz
Parse Message Registry header info from the file
This extends the Message Registry parsing to include header details that are part of the redfish resource. Tested: Verified that the MessageRegistry info all returns correctly in the redfish response. Change-Id: I6179c07f4067cd4520fce3e774d18530fede0a95 Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
-rw-r--r--redfish-core/include/registries.hpp12
-rw-r--r--redfish-core/include/registries/base_message_registry.hpp12
-rw-r--r--redfish-core/lib/message_registries.hpp29
-rw-r--r--scripts/parse_registries.py17
4 files changed, 56 insertions, 14 deletions
diff --git a/redfish-core/include/registries.hpp b/redfish-core/include/registries.hpp
index 7ee5232cd5..6b30be9363 100644
--- a/redfish-core/include/registries.hpp
+++ b/redfish-core/include/registries.hpp
@@ -16,6 +16,18 @@
#pragma once
namespace redfish::message_registries
{
+struct Header
+{
+ const char* copyright;
+ const char* type;
+ const char* id;
+ const char* name;
+ const char* language;
+ const char* description;
+ const char* registryPrefix;
+ const char* registryVersion;
+ const char* owningEntity;
+};
struct Message
{
diff --git a/redfish-core/include/registries/base_message_registry.hpp b/redfish-core/include/registries/base_message_registry.hpp
index 1d54fdd868..472f51edce 100644
--- a/redfish-core/include/registries/base_message_registry.hpp
+++ b/redfish-core/include/registries/base_message_registry.hpp
@@ -22,7 +22,17 @@
namespace redfish::message_registries::base
{
-
+const Header header = {
+ .copyright = "Copyright 2014-2018 DMTF. All rights reserved.",
+ .type = "#MessageRegistry.v1_0_0.MessageRegistry",
+ .id = "Base.1.4.0",
+ .name = "Base Message Registry",
+ .language = "en",
+ .description = "This registry defines the base messages for Redfish",
+ .registryPrefix = "Base",
+ .registryVersion = "1.4.0",
+ .owningEntity = "DMTF",
+};
const std::array registry = {
MessageEntry{
"AccessDenied",
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index f01caf901b..e44e97d2b8 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -100,8 +100,10 @@ class BaseMessageRegistryFile : public Node
asyncResp->res.jsonValue["Name"] = "Base Message Registry File";
asyncResp->res.jsonValue["Description"] =
"DMTF Base Message Registry File Location";
- asyncResp->res.jsonValue["Id"] = "Base";
- asyncResp->res.jsonValue["Registry"] = "Base.1.4";
+ asyncResp->res.jsonValue["Id"] =
+ message_registries::base::header.registryPrefix;
+ asyncResp->res.jsonValue["Registry"] =
+ message_registries::base::header.id;
nlohmann::json &messageRegistryLanguageArray =
asyncResp->res.jsonValue["Languages"];
messageRegistryLanguageArray = nlohmann::json::array();
@@ -144,17 +146,22 @@ class BaseMessageRegistry : public Node
std::shared_ptr<AsyncResp> asyncResp = std::make_shared<AsyncResp>(res);
asyncResp->res.jsonValue["@Redfish.Copyright"] =
- "Copyright 2014-2018 DMTF. All rights reserved.";
+ message_registries::base::header.copyright;
asyncResp->res.jsonValue["@odata.type"] =
- "#MessageRegistry.v1_0_0.MessageRegistry";
- asyncResp->res.jsonValue["Id"] = "Base.1.4.0";
- asyncResp->res.jsonValue["Name"] = "Base Message Registry";
- asyncResp->res.jsonValue["Language"] = "en";
+ message_registries::base::header.type;
+ asyncResp->res.jsonValue["Id"] = message_registries::base::header.id;
+ asyncResp->res.jsonValue["Name"] =
+ message_registries::base::header.name;
+ asyncResp->res.jsonValue["Language"] =
+ message_registries::base::header.language;
asyncResp->res.jsonValue["Description"] =
- "This registry defines the base messages for Redfish";
- asyncResp->res.jsonValue["RegistryPrefix"] = "Base";
- asyncResp->res.jsonValue["RegistryVersion"] = "1.4.0";
- asyncResp->res.jsonValue["OwningEntity"] = "DMTF";
+ message_registries::base::header.description;
+ asyncResp->res.jsonValue["RegistryPrefix"] =
+ message_registries::base::header.registryPrefix;
+ asyncResp->res.jsonValue["RegistryVersion"] =
+ message_registries::base::header.registryVersion;
+ asyncResp->res.jsonValue["OwningEntity"] =
+ message_registries::base::header.owningEntity;
nlohmann::json &messageArray = asyncResp->res.jsonValue["Messages"];
messageArray = nlohmann::json::array();
diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index d9d6cf3111..3eff3127ce 100644
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -37,8 +37,6 @@ REGISTRY_HEADER = '''/*
namespace redfish::message_registries::{}
{{
-
-const std::array registry = {{
'''
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
@@ -65,6 +63,21 @@ for file, json, namespace in files:
with open(file, 'w') as registry:
registry.write(REGISTRY_HEADER.format(namespace))
+ # Parse the Registry header info
+ registry.write("const Header header = {")
+ registry.write(".copyright = \"{}\",".format(json["@Redfish.Copyright"]))
+ registry.write(".type = \"{}\",".format(json["@odata.type"]))
+ registry.write(".id = \"{}\",".format(json["Id"]))
+ registry.write(".name = \"{}\",".format(json["Name"]))
+ registry.write(".language = \"{}\",".format(json["Language"]))
+ registry.write(".description = \"{}\",".format(json["Description"]))
+ registry.write(".registryPrefix = \"{}\",".format(json["RegistryPrefix"]))
+ registry.write(".registryVersion = \"{}\",".format(json["RegistryVersion"]))
+ registry.write(".owningEntity = \"{}\",".format(json["OwningEntity"]))
+ registry.write("};")
+
+ # Parse each Message entry
+ registry.write("const std::array registry = {")
for messageId, message in sorted(json["Messages"].items()):
registry.write("MessageEntry{")
registry.write("\"{}\",".format(messageId))