in app.py [0:0]
def run():
app = Flask(__name__, static_url_path="", static_folder="frontend/public")
app.json_encoder = PClusterJSONEncoder
CORS(app) # comment this on deployment
api = Api(app)
@app.before_request
def authenticate_static():
# Ensure we redirect to login on loading of index.html
return authenticate("guest") if "index.html" in request.path else None
@app.errorhandler(401)
def custom_401(_error):
return Response(
"You are not authorized to perform this action.", 401, {"WWW-Authenticate": 'Basic realm="Login Required"'}
)
@app.route("/", defaults={"path": ""})
@authenticated()
def serve(path):
return send_from_directory(app.static_folder, "index.html")
@app.route("/manager/ec2_action", methods=["POST"])
@authenticated()
def ec2_action_():
return ec2_action()
@app.route("/manager/get_cluster_configuration")
@authenticated()
def get_cluster_config_():
return get_cluster_config()
@app.route("/manager/get_custom_image_configuration")
@authenticated()
def get_custom_image_config_():
return get_custom_image_config()
@app.route("/manager/get_aws_configuration")
@authenticated()
def get_aws_config_():
return get_aws_config()
@app.route("/manager/get_dcv_session")
@authenticated()
def get_dcv_session_():
return get_dcv_session()
@app.route("/manager/get_identity")
@authenticated("guest")
def get_identity_():
return get_identity()
@app.route("/manager/list_users")
@authenticated("admin")
def list_users_():
return list_users()
@app.route("/manager/set_user_role", methods=["PUT"])
@authenticated("admin")
def set_user_role_():
return set_user_role()
@app.route("/login")
def login_():
return login()
@app.route("/logout")
def logout_():
return logout()
api.add_resource(PclusterApiHandler, "/api")
return app