Ejemplo n.º 1
0
def get_controllers():
    res = Controllers.get_all_controllers()
    if res is not None:
        return jsonify({"data": res})
    response = jsonify("Controllers.get_all_controllers() returned None")
    response.status_code = 500
    return response
Ejemplo n.º 2
0
def get_controller(id):
    """
    Returns composite light controller information
    :param id: Light controller ID (database record ID)
    :return: jsonified controller information
    """
    controller_record = Controllers.get_controller(id)
    if controller_record is None:
        response = jsonify(
            "Controllers.get_controller({0}) returned None".format(id))
        response.status_code = 500
        return response

    host = controller_record["host"]
    port = int(controller_record["port"])

    status = get_status(host, port)
    if status:
        controller_record.update(status)
    else:
        controller_record["state"] = "OFFLINE"

    scripts = get_scriptlist(host, port)
    controller_record["scripts"] = scripts

    return jsonify({"data": controller_record})
Ejemplo n.º 3
0
def _update_controller(id):
    """
    Save an new controller definition
    :return:
    """
    # NOTE
    # The jQuery $.ajax call sends arguments as the data property
    # in the initiating call. The arguments show up in the
    # request.form property provided by Flask. So,
    # data: { 'state': new_state } --> request.form['state']
    name = request.form['name']
    host = request.form['host']
    port = request.form['port']
    controller_type = request.form['type']
    description = request.form['description']

    changed = Controllers.update_controller(id, name, host, port,
                                            controller_type, description)

    # We are obligated to send a json response
    if changed:
        response = {"controller-id": id, "message": "Updated"}
        return jsonify(response)

    response = jsonify("Unable to update controller record")
    response.status_code = 500
    return response
Ejemplo n.º 4
0
def state_shutdown_controller(id):
    """
    Shutdown a controller
    :return:
    """
    cr = Controllers.get_controller(id)
    response = shutdown_controller(cr["host"], cr["port"])
    return jsonify(response)
Ejemplo n.º 5
0
def state_stop_script(id):
    """
    Stop the running LED script
    :return:
    """
    cr = Controllers.get_controller(id)
    response = stop_script(cr["host"], cr["port"])
    return jsonify(response)
Ejemplo n.º 6
0
def state_run_script(id, script):
    """
    Set the running LED script
    :return:
    """
    cr = Controllers.get_controller(id)
    response = run_script(script, cr["host"], cr["port"])
    return jsonify(response)
Ejemplo n.º 7
0
def _delete_controller(id):
    """
    Save an new controller definition
    :return:
    """
    changed = Controllers.delete_controller(id)

    # We are obligated to send a json response
    if changed:
        response = {"controller-id": id, "message": "Deleted"}
        return jsonify(response)

    response = jsonify("Unable to update controller record")
    response.status_code = 500
    return response
Ejemplo n.º 8
0
def get_controller_status(id):
    """
    Returns composite light controller information
    :param id: Light controller ID (database record ID)
    :return: jsonified controller information
    """
    controller_record = Controllers.get_controller(id)
    if controller_record is None:
        response = jsonify(
            "Controllers.get_controller({0}) returned None".format(id))
        response.status_code = 500
        return response

    host = controller_record["host"]
    port = int(controller_record["port"])

    status = get_status(host, port)

    return jsonify({"data": status})