aboutsummaryrefslogtreecommitdiff
path: root/gn3/api/async_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/api/async_commands.py')
-rw-r--r--gn3/api/async_commands.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/gn3/api/async_commands.py b/gn3/api/async_commands.py
new file mode 100644
index 0000000..f8400c8
--- /dev/null
+++ b/gn3/api/async_commands.py
@@ -0,0 +1,21 @@
+"""Endpoints and functions concerning commands run in external processes."""
+import json
+
+import redis
+from flask import jsonify, Blueprint
+
+async_commands = Blueprint("async_commands", __name__)
+
+@async_commands.route("/state/<command_id>")
+def command_state(command_id):
+ with redis.Redis() as rconn:
+ state = rconn.hgetall(name=command_id)
+ if not state:
+ return jsonify(
+ status=404,
+ error="The command id provided does not exist.")
+ state = {
+ key.decode("utf-8"): val.decode("utf8")
+ for key,val in state.items()
+ }
+ return jsonify(state)