diff options
author | Daniil Baturin <daniil@baturin.org> | 2019-08-14 13:25:10 -0400 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2019-08-14 13:25:10 -0400 |
commit | 589952faadcf7700702b24390c1d654706f3a857 (patch) | |
tree | b3d486d0b0bc9e08d706d16d852bcae60b504dc0 /src/services | |
parent | 4e781d4dec184308ac844a4c2ff7dcfc7832cc77 (diff) | |
parent | 8d1e768a6f3285ed717f588f356db9340871b043 (diff) | |
download | vyos-1x-589952faadcf7700702b24390c1d654706f3a857.tar.gz vyos-1x-589952faadcf7700702b24390c1d654706f3a857.zip |
Merge branch 'current' into equuleus
Diffstat (limited to 'src/services')
-rwxr-xr-x | src/services/vyos-http-api-server | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/services/vyos-http-api-server b/src/services/vyos-http-api-server index e11eb6d52..afab9be70 100755 --- a/src/services/vyos-http-api-server +++ b/src/services/vyos-http-api-server @@ -179,6 +179,7 @@ def configure(): @app.route('/retrieve', method='POST') def get_value(): config = app.config['vyos_config'] + session = app.config['vyos_session'] api_keys = app.config['vyos_keys'] @@ -190,8 +191,11 @@ def get_value(): command = bottle.request.forms.get("data") command = json.loads(command) - op = command['op'] - path = " ".join(command['path']) + try: + op = command['op'] + path = " ".join(command['path']) + except KeyError: + return error(400, "Missing required field. \"op\" and \"path\" fields are required") try: if op == 'returnValue': @@ -200,6 +204,12 @@ def get_value(): res = config.return_values(path) elif op == 'exists': res = config.exists(path) + elif op == 'showConfig': + config_format = 'raw' + if 'configFormat' in command: + config_format = command['configFormat'] + + res = session.show_config(command['path'], format=config_format) else: return error(400, "\"{0}\" is not a valid operation".format(op)) except VyOSError as e: |