aboutsummaryrefslogtreecommitdiff
path: root/gn3/api/async_commands.py
blob: da146b867a44896118daea28617127c81d85bf59 (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(
                error="The command id provided does not exist.",
                status="error"), 404
        return jsonify(dict(state.items()))