parse_registries.py (70304cb594859b3862eeecc0a16c8e6e9a126530) parse_registries.py (351d3063e86c5a6047c995ba72552bd82df86489)
1#!/usr/bin/python3
2import requests
3import zipfile
4from io import BytesIO
5import os
6from collections import defaultdict
7from collections import OrderedDict
8from distutils.version import StrictVersion

--- 23 unchanged lines hidden (view full) ---

32 * This is an auto-generated header which contains definitions
33 * for Redfish DMTF defined messages.
34 ***************************************************************/
35#pragma once
36#include <registries.hpp>
37
38namespace redfish::message_registries::{}
39{{
1#!/usr/bin/python3
2import requests
3import zipfile
4from io import BytesIO
5import os
6from collections import defaultdict
7from collections import OrderedDict
8from distutils.version import StrictVersion

--- 23 unchanged lines hidden (view full) ---

32 * This is an auto-generated header which contains definitions
33 * for Redfish DMTF defined messages.
34 ***************************************************************/
35#pragma once
36#include <registries.hpp>
37
38namespace redfish::message_registries::{}
39{{
40
41const std::array registry = {{
42'''
43
44SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
45
46include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include"))
47
48proxies = {
49 'https': os.environ.get("https_proxy", None)

--- 10 unchanged lines hidden (view full) ---

60for file, json, namespace in files:
61 try:
62 os.remove(file)
63 except:
64 print("{} not found".format(file))
65
66 with open(file, 'w') as registry:
67 registry.write(REGISTRY_HEADER.format(namespace))
40'''
41
42SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
43
44include_path = os.path.realpath(os.path.join(SCRIPT_DIR, "..", "redfish-core", "include"))
45
46proxies = {
47 'https': os.environ.get("https_proxy", None)

--- 10 unchanged lines hidden (view full) ---

58for file, json, namespace in files:
59 try:
60 os.remove(file)
61 except:
62 print("{} not found".format(file))
63
64 with open(file, 'w') as registry:
65 registry.write(REGISTRY_HEADER.format(namespace))
66 # Parse the Registry header info
67 registry.write("const Header header = {")
68 registry.write(".copyright = \"{}\",".format(json["@Redfish.Copyright"]))
69 registry.write(".type = \"{}\",".format(json["@odata.type"]))
70 registry.write(".id = \"{}\",".format(json["Id"]))
71 registry.write(".name = \"{}\",".format(json["Name"]))
72 registry.write(".language = \"{}\",".format(json["Language"]))
73 registry.write(".description = \"{}\",".format(json["Description"]))
74 registry.write(".registryPrefix = \"{}\",".format(json["RegistryPrefix"]))
75 registry.write(".registryVersion = \"{}\",".format(json["RegistryVersion"]))
76 registry.write(".owningEntity = \"{}\",".format(json["OwningEntity"]))
77 registry.write("};")
78
79 # Parse each Message entry
80 registry.write("const std::array registry = {")
68 for messageId, message in sorted(json["Messages"].items()):
69 registry.write("MessageEntry{")
70 registry.write("\"{}\",".format(messageId))
71 registry.write("{")
72 registry.write(".description = \"{}\",".format(message["Description"]))
73 registry.write(".message = \"{}\",".format(message["Message"]))
74 registry.write(".severity = \"{}\",".format(message["Severity"]))
75 registry.write(".numberOfArgs = {},".format(message["NumberOfArgs"]))
76 registry.write(".paramTypes = {")
77 paramTypes = message.get("ParamTypes")
78 if paramTypes:
79 for paramType in paramTypes:
80 registry.write("\"{}\",".format(paramType))
81 registry.write("},")
82 registry.write(".resolution = \"{}\",".format(message["Resolution"]))
83 registry.write("}},")
84 registry.write("};}\n")
85 subprocess.check_call(["clang-format", "-i", file])
81 for messageId, message in sorted(json["Messages"].items()):
82 registry.write("MessageEntry{")
83 registry.write("\"{}\",".format(messageId))
84 registry.write("{")
85 registry.write(".description = \"{}\",".format(message["Description"]))
86 registry.write(".message = \"{}\",".format(message["Message"]))
87 registry.write(".severity = \"{}\",".format(message["Severity"]))
88 registry.write(".numberOfArgs = {},".format(message["NumberOfArgs"]))
89 registry.write(".paramTypes = {")
90 paramTypes = message.get("ParamTypes")
91 if paramTypes:
92 for paramType in paramTypes:
93 registry.write("\"{}\",".format(paramType))
94 registry.write("},")
95 registry.write(".resolution = \"{}\",".format(message["Resolution"]))
96 registry.write("}},")
97 registry.write("};}\n")
98 subprocess.check_call(["clang-format", "-i", file])