diff options
author | Florian Dold <florian@dold.me> | 2021-10-14 12:21:06 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-10-14 12:21:06 +0200 |
commit | 82acf4decaa2d012bb46d3c0b87b5d6c0741f996 (patch) | |
tree | c5ebdfcea7286165ab761324c45817ec9a8b2e2f /contrib | |
parent | 5dbddafc68643f2b5f03af2fdb10f1cc16d90104 (diff) | |
download | anastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.tar.gz anastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.tar.bz2 anastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.zip |
remote reducer
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/remote-reducer/remote_reducer.py | 47 |
1 files changed, 47 insertions, 0 deletions
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 "<p>Hello, World!</p>" + + +@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 |