summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2019-10-27 17:10:30 +0100
committerDaniil Baturin <daniil@baturin.org>2019-10-27 17:10:30 +0100
commitad9bbd9edff6a057ba0c4d2a8984e2184345ca71 (patch)
treef625c62412aed6458ff3d2971b893319ada8d435
parenta5d800400aaf9d1df61feb79c3626d37d0a3015d (diff)
downloadvyos-1x-ad9bbd9edff6a057ba0c4d2a8984e2184345ca71.tar.gz
vyos-1x-ad9bbd9edff6a057ba0c4d2a8984e2184345ca71.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 04c44c2be..571ec1258 100755
--- a/src/services/vyos-http-api-server
+++ b/src/services/vyos-http-api-server
@@ -207,11 +207,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: