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
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})
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
def state_shutdown_controller(id): """ Shutdown a controller :return: """ cr = Controllers.get_controller(id) response = shutdown_controller(cr["host"], cr["port"]) return jsonify(response)
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)
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)
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
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})