diff options
author | Gunnar Mills <gmills@us.ibm.com> | 2017-08-08 14:19:36 -0500 |
---|---|---|
committer | Gunnar Mills <gmills@us.ibm.com> | 2017-08-21 14:26:32 +0000 |
commit | d5faea318a83b5e6505715b75855b2fa296b7c99 (patch) | |
tree | c90b3abbe3994020cd06c2991ab35c323cc64a50 /src/pdmgen.py | |
parent | 9679d43ea9a0d2ed89c8eb88851eee838a3e767c (diff) | |
download | phosphor-dbus-monitor-d5faea318a83b5e6505715b75855b2fa296b7c99.tar.gz phosphor-dbus-monitor-d5faea318a83b5e6505715b75855b2fa296b7c99.zip |
Add support for elog callback
Added support for "callback: elog" in PDM.
templates/elog.mako.cpp is used to generate the Elog call.
templates/errors.mako.hpp is used to generate the errors.hpp
used by generated.hpp to include any error.hpp files like
"xyz/openbmc_project/Common/error.hpp"
Change-Id: Id0ae3aca4282095f58a8939b70e398bec706d7f5
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'src/pdmgen.py')
-rwxr-xr-x | src/pdmgen.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/pdmgen.py b/src/pdmgen.py index ac2b8e0..dc2c704 100755 --- a/src/pdmgen.py +++ b/src/pdmgen.py @@ -660,6 +660,28 @@ class Journal(Callback, Renderer): indent=indent) +class Elog(Callback, Renderer): + '''Handle the elog callback config file directive.''' + + def __init__(self, *a, **kw): + self.error = kw.pop('error') + super(Elog, self).__init__(**kw) + + def construct(self, loader, indent): + + with open('errors.hpp', 'a') as fd: + fd.write( + self.render( + loader, + 'errors.mako.hpp', + c=self)) + return self.render( + loader, + 'elog.mako.cpp', + c=self, + indent=indent) + + class Method(ConfigEntry, Renderer): '''Handle the method callback config file directive.''' @@ -827,6 +849,7 @@ class Everything(Renderer): }, 'callback': { 'journal': Journal, + 'elog': Elog, 'group': GroupOfCallbacks, 'method': Method, }, @@ -930,6 +953,9 @@ class Everything(Renderer): def generate_cpp(self, loader): '''Render the template with the provided data.''' + # errors.hpp is used by generated.hpp to included any error.hpp files + open('errors.hpp', 'w+') + with open(args.output, 'w') as fd: fd.write( self.render( |