summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2019-10-27 17:10:30 +0100
committerDaniil Baturin <daniil@baturin.org>2021-01-24 18:21:46 +0100
commit2f01afb648c0486d15602cb26f5111fa1044ed64 (patch)
treea652857feb46696fa7888b584f5a0e6d9aeedb2b
parentb3be006223dc204ae7fd2b041b8dc18b26dd3225 (diff)
downloadvyos-1x-2f01afb648c0486d15602cb26f5111fa1044ed64.tar.gz
vyos-1x-2f01afb648c0486d15602cb26f5111fa1044ed64.zip
T1773, T1774: add a show config operation with JSON and raw options.
-rwxr-xr-xsrc/services/vyos-http-api-server14
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: