diff options
author | John Estabrook <jestabro@vyos.io> | 2020-04-22 09:50:54 -0500 |
---|---|---|
committer | John Estabrook <jestabro@vyos.io> | 2020-04-22 10:44:53 -0500 |
commit | d2477601a6c4f5f11773493cacfdc54e5f9a01ae (patch) | |
tree | c3e80b639edbe9bd19c9cb979d9ebcff40833e66 /src | |
parent | 675f400bacb03ae93be928e7270f89205d1036b9 (diff) | |
download | vyos-1x-d2477601a6c4f5f11773493cacfdc54e5f9a01ae.tar.gz vyos-1x-d2477601a6c4f5f11773493cacfdc54e5f9a01ae.zip |
http api: T2096: form of show/generate should be consistent with other cmds
Diffstat (limited to 'src')
-rwxr-xr-x | src/services/vyos-http-api-server | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/src/services/vyos-http-api-server b/src/services/vyos-http-api-server index a3624052e..c36cbd640 100755 --- a/src/services/vyos-http-api-server +++ b/src/services/vyos-http-api-server @@ -318,11 +318,20 @@ def generate_op(): command = json.loads(command) try: - cmd = command['cmd'] - res = session.generate(cmd) + op = command['op'] + path = command['path'] except KeyError: - return error(400, "Missing required field \"cmd\"") - except VyOSError as e: + return error(400, "Missing required field. \"op\" and \"path\" fields are required") + + if not isinstance(path, list): + return error(400, "Malformed command: \"path\" field must be a list of strings") + + try: + if op == 'generate': + res = session.generate(path) + else: + return error(400, "\"{0}\" is not a valid operation".format(op)) + except ConfigSessionError as e: return error(400, str(e)) except Exception as e: print(traceback.format_exc(), file=sys.stderr) @@ -339,11 +348,20 @@ def show_op(): command = json.loads(command) try: - cmd = command['cmd'] - res = session.show(cmd) + op = command['op'] + path = command['path'] except KeyError: - return error(400, "Missing required field \"cmd\"") - except VyOSError as e: + return error(400, "Missing required field. \"op\" and \"path\" fields are required") + + if not isinstance(path, list): + return error(400, "Malformed command: \"path\" field must be a list of strings") + + try: + if op == 'show': + res = session.show(path) + else: + return error(400, "\"{0}\" is not a valid operation".format(op)) + except ConfigSessionError as e: return error(400, str(e)) except Exception as e: print(traceback.format_exc(), file=sys.stderr) |