aboutsummaryrefslogtreecommitdiff
path: root/gn3/api/async_commands.py
blob: c0cf4bbe97441b11ebb49d727acd08d86870ebf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"""Endpoints and functions concerning commands run in external processes."""
import redis
from flask import jsonify, Blueprint

async_commands = Blueprint("async_commands", __name__)

@async_commands.route("/state/<command_id>")
def command_state(command_id):
    """Respond with the current state of command identified by `command_id`."""
    with redis.Redis(decode_responses=True) as rconn:
        state = rconn.hgetall(name=command_id)
        if not state:
            return jsonify(
                status=404,
                error="The command id provided does not exist.")
        return jsonify(dict(state.items()))