diff options
author | Daniil Baturin <daniil@baturin.org> | 2019-10-27 17:10:30 +0100 |
---|---|---|
committer | Daniil Baturin <daniil@baturin.org> | 2021-01-24 18:21:46 +0100 |
commit | 2f01afb648c0486d15602cb26f5111fa1044ed64 (patch) | |
tree | a652857feb46696fa7888b584f5a0e6d9aeedb2b /src | |
parent | b3be006223dc204ae7fd2b041b8dc18b26dd3225 (diff) | |
download | vyos-1x-2f01afb648c0486d15602cb26f5111fa1044ed64.tar.gz vyos-1x-2f01afb648c0486d15602cb26f5111fa1044ed64.zip |
T1773, T1774: add a show config operation with JSON and raw options.
Diffstat (limited to 'src')
-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 b9fdea1ac..ab26d7370 100755 --- a/src/services/vyos-http-api-server +++ b/src/services/vyos-http-api-server @@ -219,11 +219,21 @@ def get_value(): elif op == 'exists': res = config.exists(path) elif op == 'showConfig': - config_format = 'raw' + config_format = 'json' if 'configFormat' in command: config_format = command['configFormat'] - res = session.show_config(command['path'], format=config_format) + res = session.show_config(path=command['path']) + if config_format == 'json': + config_tree = vyos.configtree.ConfigTree(res) + res = json.loads(config_tree.to_json()) + elif config_format == 'json_ast': + config_tree = vyos.configtree.ConfigTree(res) + res = json.loads(config_tree.to_json_ast()) + elif config_format == 'raw': + pass + else: + return error(400, "\"{0}\" is not a valid config format") else: return error(400, "\"{0}\" is not a valid operation".format(op)) except VyOSError as e: |