Update error_messages to Base 1.8.1
The Base message registry has updated to 1.8.1. This updates our
error_messages files to match.
This changes from the deprecated 'Severity' to the new
'MessageSeverity' property.
It also adds a script to compare our error_messages.cpp messages
against the Base message registry and flag any differences.
Tested:
Ran the Redfish Validator and confirmed that this change does
not introduce any new failures.
Change-Id: I2e5101a5b4d0c0963569493451f99521e42b0f4d
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
diff --git a/scripts/check_base_registry.py b/scripts/check_base_registry.py
new file mode 100644
index 0000000..667f167
--- /dev/null
+++ b/scripts/check_base_registry.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python3
+
+import argparse
+import json
+import re
+
+
+parser = argparse.ArgumentParser()
+parser.add_argument('-b', '--base', default=None, required=True)
+parser.add_argument('-f', '--file', default=None, required=True)
+args = parser.parse_args()
+
+with open(args.file) as error_file:
+ error_data = error_file.readlines()
+
+ with open(args.base) as base_file:
+ base_json = json.load(base_file)
+ for message_name, message_data in base_json['Messages'].items():
+ message_id = base_json['RegistryPrefix'] + '.' + \
+ base_json['RegistryVersion'] + '.' + message_name
+ message_found = False
+ index = 0
+ for i, error in enumerate(error_data):
+ if message_id in error:
+ message_found = True
+ index = i
+ break
+ if not message_found:
+ print("{} not found".format(message_id))
+ continue
+
+ error_info = error_data[index:index + 15]
+ error_str = " ".join(error_info)
+ error_str = re.sub(
+ 'std::to_string\(arg(\d+)\)',
+ 'arg\\1',
+ error_str)
+ error_str = re.sub('"\n\s*"', '', error_str, re.MULTILINE)
+ error_str = re.sub(
+ '"\s*\+\s*arg(\d+)\s*\+\n?\s*"',
+ '%\\1',
+ error_str,
+ re.MULTILINE)
+ if message_data['Message'] not in error_str:
+ print(
+ "{}: error in Message: {}".format(
+ message_id,
+ message_data['Message']))
+ print(error_str)
+
+ if message_data['MessageSeverity'] not in error_str:
+ print("{}: error in MessageSeverity: {}".format(
+ message_id, message_data['MessageSeverity']))
+ print(error_str)
+
+ if message_data['Resolution'] not in error_str:
+ print(
+ "{}: error in Resolution: {}".format(
+ message_id,
+ message_data['Resolution']))
+ print(error_str)