summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-10-14 12:21:06 +0200
committerFlorian Dold <florian@dold.me>2021-10-14 12:21:06 +0200
commit82acf4decaa2d012bb46d3c0b87b5d6c0741f996 (patch)
treec5ebdfcea7286165ab761324c45817ec9a8b2e2f /contrib
parent5dbddafc68643f2b5f03af2fdb10f1cc16d90104 (diff)
downloadanastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.tar.gz
anastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.tar.bz2
anastasis-82acf4decaa2d012bb46d3c0b87b5d6c0741f996.zip
remote reducer
Diffstat (limited to 'contrib')
-rw-r--r--contrib/remote-reducer/remote_reducer.py47
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