diff options
| author | Patrick Williams <patrick@stwcx.xyz> | 2016-11-11 16:48:29 -0600 |
|---|---|---|
| committer | Patrick Williams <patrick@stwcx.xyz> | 2016-11-17 15:36:21 -0600 |
| commit | 7d7fda56c3e34fd64f82042bddb20d72ad71b996 (patch) | |
| tree | af2cf51cd39427f5c9fa1ea323656f26cea74a64 /tools | |
| parent | f4a6f41f9a7fd1e8d21206f813d87ba784144503 (diff) | |
| download | sdbusplus-7d7fda56c3e34fd64f82042bddb20d72ad71b996.tar.gz sdbusplus-7d7fda56c3e34fd64f82042bddb20d72ad71b996.zip | |
sdbus++: parse error info yaml
Change-Id: I73361b6f9b48b32a206d1e6d3e52ff46195b3cbc
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/example/net/poettering/Calculator.errors.yaml | 3 | ||||
| -rwxr-xr-x | tools/sdbus++ | 6 | ||||
| -rw-r--r-- | tools/sdbusplus/__init__.py | 1 | ||||
| -rw-r--r-- | tools/sdbusplus/error.py | 27 |
4 files changed, 35 insertions, 2 deletions
diff --git a/tools/example/net/poettering/Calculator.errors.yaml b/tools/example/net/poettering/Calculator.errors.yaml new file mode 100644 index 0000000..730e2a3 --- /dev/null +++ b/tools/example/net/poettering/Calculator.errors.yaml @@ -0,0 +1,3 @@ +- name: DivisionByZero + description: > + An attempt to divide by zero was attempted. diff --git a/tools/sdbus++ b/tools/sdbus++ index 2e4e330..db96b1f 100755 --- a/tools/sdbus++ +++ b/tools/sdbus++ @@ -9,10 +9,12 @@ import os def main(): module_path = os.path.dirname(sdbusplus.__file__) - valid_types = {'interface': sdbusplus.Interface} + valid_types = {'interface': sdbusplus.Interface, + 'error': sdbusplus.Error} valid_processes = {'markdown': "markdown", 'server-header': "server_header", - 'server-cpp': "server_cpp"} + 'server-cpp': "server_cpp", + 'exception-header': "exception_header"} parser = argparse.ArgumentParser(description='Process sdbus++ YAML files.') diff --git a/tools/sdbusplus/__init__.py b/tools/sdbusplus/__init__.py index 2ab249b..4703f22 100644 --- a/tools/sdbusplus/__init__.py +++ b/tools/sdbusplus/__init__.py @@ -1 +1,2 @@ from sdbusplus.interface import Interface +from sdbusplus.error import Error diff --git a/tools/sdbusplus/error.py b/tools/sdbusplus/error.py new file mode 100644 index 0000000..ff3926c --- /dev/null +++ b/tools/sdbusplus/error.py @@ -0,0 +1,27 @@ +import os +import yaml +from .namedelement import NamedElement +from .renderer import Renderer + + +class Error(NamedElement, Renderer): + @staticmethod + def load(name, rootdir='.'): + filename = os.path.join(rootdir, + name.replace('.', '/') + ".errors.yaml") + + with open(filename) as f: + data = f.read() + y = yaml.safe_load(data) + y = {'name': name, + 'errors': y} + return Error(**y) + + def __init__(self, **kwargs): + self.errors = \ + [NamedElement(**n) for n in kwargs.pop('errors', [])] + + super(Error, self).__init__(**kwargs) + + def exception_header(self, loader): + return "" |

