From 9b56b489fa8399d934ad62a23b8e3e77c847832a Mon Sep 17 00:00:00 2001 From: bharnden Date: Sun, 25 Nov 2018 12:14:50 -0800 Subject: [PATCH] core rest - added node command api, changed default rest address to the local machine to avoid external connections --- webapp/app.py | 6 +++++- webapp/node_routes.py | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/webapp/app.py b/webapp/app.py index e0514e11..f654e206 100644 --- a/webapp/app.py +++ b/webapp/app.py @@ -1,4 +1,5 @@ import os +import sys from flask import Flask from flask import jsonify @@ -84,4 +85,7 @@ def handle_error(e): if __name__ == "__main__": - websocket_routes.socketio.run(app, host="0.0.0.0", debug=True) + host = "127.0.0.1" + if len(sys.argv) == 2: + host = sys.argv[1] + websocket_routes.socketio.run(app, host=host, debug=True) diff --git a/webapp/node_routes.py b/webapp/node_routes.py index 6ee50823..a6b80edd 100644 --- a/webapp/node_routes.py +++ b/webapp/node_routes.py @@ -149,3 +149,14 @@ def get_node_links(session_id, node_id): links.append(link) return jsonify(links=links) + + +@api.route("/sessions//nodes//command", methods=["PUT"]) +def node_command(session_id, node_id): + command = request.get_json() or {} + session = core_utils.get_session(coreemu, session_id) + node = core_utils.get_node(session, node_id) + logger.info("command: %s", command) + _, output = node.cmd_output(command) + logger.info("output: %s", output) + return jsonify(output)