summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDeepak Kodihalli <dkodihal@in.ibm.com>2017-03-08 00:04:33 -0600
committerPatrick Williams <patrick@stwcx.xyz>2017-03-09 21:59:19 +0000
commit7924b17e81031bceef11ce08db1b5a684ac1d520 (patch)
treee157a0111c38f04001640870063ff20968876db5 /tools
parent27c87d922b94567b05ba4c60ba67615c1568b599 (diff)
downloadphosphor-logging-7924b17e81031bceef11ce08db1b5a684ac1d520.tar.gz
phosphor-logging-7924b17e81031bceef11ce08db1b5a684ac1d520.zip
elog-gen.py: handle absence of metadata
An error may just want to inherit metadata from another error, without adding metadata of it's own. In such a case, the metadata file won't have the "meta" keyword, although it will have the "inherits" keyword. Accept metadata files that don't have the "meta" keyword. Change-Id: I4e30e035f19d6af8e0e1f654465d109fe5284a1b Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/elog-gen.py17
-rw-r--r--tools/phosphor-logging/templates/elog-gen-template.mako.hpp19
-rw-r--r--tools/phosphor-logging/templates/elog-lookup-template.mako.cpp8
3 files changed, 30 insertions, 14 deletions
diff --git a/tools/elog-gen.py b/tools/elog-gen.py
index 0452489..469248f 100755
--- a/tools/elog-gen.py
+++ b/tools/elog-gen.py
@@ -214,14 +214,15 @@ def get_elog_data(i_elog_yaml,
error_lvl[fullname] = "INFO"
tmp_meta = []
# grab all the meta data fields and info
- for j in i['meta']:
- str_short = j['str'].split('=')[0]
- tmp_meta.append(str_short)
- meta_data[str_short] = {}
- meta_data[str_short]['str'] = j['str']
- meta_data[str_short]['str_short'] = str_short
- meta_data[str_short]['type'] = get_cpp_type(j['type'])
- meta[fullname] = tmp_meta
+ if('meta' in i):
+ for j in i['meta']:
+ str_short = j['str'].split('=')[0]
+ tmp_meta.append(str_short)
+ meta_data[str_short] = {}
+ meta_data[str_short]['str'] = j['str']
+ meta_data[str_short]['str_short'] = str_short
+ meta_data[str_short]['type'] = get_cpp_type(j['type'])
+ meta[fullname] = tmp_meta
# Debug
# for i in errors:
diff --git a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
index 181d4bd..e321e6b 100644
--- a/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
+++ b/tools/phosphor-logging/templates/elog-gen-template.mako.hpp
@@ -32,7 +32,13 @@ namespace Error
{
namespace _${classname}
{
- % for b in meta[name]:
+<%
+ meta_list = []
+ if(name in meta):
+ meta_list = meta[name]
+%>\
+
+ % for b in meta_list:
struct ${b}
{
static constexpr auto str = "${meta_data[b]['str']}";
@@ -45,7 +51,9 @@ struct ${b}
} // namespace _${classname}
<%
- meta_string = ', '.join(meta[name])
+ meta_string = ""
+ if(meta_list):
+ meta_string = ', '.join(meta_list)
parent_meta = []
parent = parents[name]
@@ -58,7 +66,10 @@ struct ${b}
parent_meta += [parent_namespace + "::Error::" + parent_name + "::" +
p for p in meta[parent]]
parent_meta_short = ', '.join(meta[parent])
- meta_string = meta_string + ", " + parent_meta_short
+ if(meta_string):
+ meta_string = meta_string + ", " + parent_meta_short
+ else:
+ meta_string = parent_meta_short
parent = parents[parent]
%>
struct ${classname}
@@ -66,7 +77,7 @@ struct ${classname}
static constexpr auto err_code = "${name}";
static constexpr auto err_msg = "${error_msg[name]}";
static constexpr auto L = level::${error_lvl[name]};
- % for b in meta[name]:
+ % for b in meta_list:
using ${b} = _${classname}::${b};
% endfor
% for b in parent_meta:
diff --git a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
index 822d91d..4f1ce15 100644
--- a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
+++ b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
@@ -14,14 +14,18 @@ namespace logging
std::map<std::string,std::vector<std::string>> g_errMetaMap = {
% for a in errors:
- <% meta_string = '\",\"'.join(meta[a]) %> \
+<%
+ meta_list = []
+ if(a in meta):
+ meta_list = meta[a]
+%>\
+ <% meta_string = '\",\"'.join(meta_list) %> \
{"${a}",{"${meta_string}"}},
% endfor
};
std::map<std::string,level> g_errLevelMap = {
% for a in errors:
- <% meta_string = '\",\"'.join(meta[a]) %> \
{"${a}",level::${error_lvl[a]}},
% endfor
};
OpenPOWER on IntegriCloud