From 82acf4decaa2d012bb46d3c0b87b5d6c0741f996 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 14 Oct 2021 12:21:06 +0200 Subject: remote reducer --- contrib/remote-reducer/remote_reducer.py | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 contrib/remote-reducer/remote_reducer.py (limited to 'contrib') diff --git a/contrib/remote-reducer/remote_reducer.py b/contrib/remote-reducer/remote_reducer.py new file mode 100644 index 0000000..e21047b --- /dev/null +++ b/contrib/remote-reducer/remote_reducer.py @@ -0,0 +1,47 @@ +import flask +from flask import Flask, request +import subprocess +import json + +app = Flask(__name__) + + +@app.route("/") +def hello_world(): + return "

Hello, World!

" + + +@app.route("/start-recovery") +def start_recovery(): + res = subprocess.run(["anastasis-reducer", "-r"], capture_output=True) + resp = flask.Response(res.stdout) + resp.headers['Access-Control-Allow-Origin'] = '*' + return resp + + +@app.route("/start-backup") +def start_backup(): + res = subprocess.run(["anastasis-reducer", "-b"], capture_output=True) + resp = flask.Response(res.stdout) + resp.headers['Access-Control-Allow-Origin'] = '*' + return resp + + +@app.route("/action", methods=["POST", "OPTIONS"]) +def reduce_action(): + if request.method == "OPTIONS": + resp = flask.Response() + resp.headers['Access-Control-Allow-Origin'] = '*' + resp.headers['Access-Control-Allow-Headers'] = '*' + resp.headers['Access-Control-Allow-Method'] = '*' + return resp + + b = request.get_json() + res = subprocess.run( + ["anastasis-reducer", "-a", json.dumps(b["arguments"]), b["action"]], + capture_output=True, + input=json.dumps(b["state"]).encode("utf-8"), + ) + resp = flask.Response(res.stdout) + resp.headers['Access-Control-Allow-Origin'] = '*' + return resp -- cgit v1.2.3