diff options
author | John Estabrook <jestabro@vyos.io> | 2022-08-25 13:36:43 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2022-08-25 14:32:14 -0500 |
commit | b4646149b4993578707833df96e972f76a298ef7 (patch) | |
tree | 0746771e98420c6a87225e5bb10834936ef9cbb5 /src/services/api/graphql/session | |
parent | e8dc2c731697c7c76c75fa7844edde52dc0ff76b (diff) | |
download | vyos-1x-b4646149b4993578707833df96e972f76a298ef7.tar.gz vyos-1x-b4646149b4993578707833df96e972f76a298ef7.zip |
graphql: T4640: add schema defs and resolver support for op-mode errors
Diffstat (limited to 'src/services/api/graphql/session')
-rw-r--r-- | src/services/api/graphql/session/errors/op_mode_errors.py | 13 | ||||
-rw-r--r-- | src/services/api/graphql/session/session.py | 13 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/services/api/graphql/session/errors/op_mode_errors.py b/src/services/api/graphql/session/errors/op_mode_errors.py new file mode 100644 index 000000000..7ba75455d --- /dev/null +++ b/src/services/api/graphql/session/errors/op_mode_errors.py @@ -0,0 +1,13 @@ + + +op_mode_err_msg = { + "UnconfiguredSubsystem": "subsystem is not configured or not running", + "DataUnavailable": "data currently unavailable", + "PermissionDenied": "client does not have permission" +} + +op_mode_err_code = { + "UnconfiguredSubsystem": 2000, + "DataUnavailable": 2001, + "PermissionDenied": 1003 +} diff --git a/src/services/api/graphql/session/session.py b/src/services/api/graphql/session/session.py index 23bc7154c..93e1c328e 100644 --- a/src/services/api/graphql/session/session.py +++ b/src/services/api/graphql/session/session.py @@ -22,6 +22,7 @@ from vyos.config import Config from vyos.configtree import ConfigTree from vyos.defaults import directories from vyos.template import render +from vyos.opmode import Error as OpModeError from api.graphql.utils.util import load_op_mode_as_module, split_compound_op_mode_name @@ -177,10 +178,10 @@ class Session: mod = load_op_mode_as_module(f'{scriptname}') func = getattr(mod, func_name) - if len(list(data)) > 0: + try: res = func(True, **data) - else: - res = func(True) + except OpModeError as e: + raise e return res @@ -199,9 +200,9 @@ class Session: mod = load_op_mode_as_module(f'{scriptname}') func = getattr(mod, func_name) - if len(list(data)) > 0: + try: res = func(**data) - else: - res = func() + except OpModeError as e: + raise e return res |