Commit 77b22e3e authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

fix trailing slashes

parent 1daa5203
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -164,20 +164,20 @@ STATIC_AVAILABLE_TRANSFORMATIONS_JSON = json.dumps(
###############################
#      WEB SERVER ROUTES      #
###############################
server = Sanic(name="circe")
server = Sanic(name="circe", strict_slashes=True)
server.config.REQUEST_TIMEOUT = 60 * 30
server.config.RESPONSE_TIMEOUT = 60 * 30
server.config.KEEP_ALIVE = False


@server.route("/")
@server.get("/")
async def index(request: sanic.request):
    if CONFIG["CIRCE_ENABLE_WEB_UI"]:
        return sanic.response.redirect("/ui/")
    return sanic.response.html(STATIC_HOMEPAGE_HTML)


@server.route("/transformations/", methods=["GET"])
@server.get("/transformations/")
async def transformations(request: sanic.request):
    return sanic.response.HTTPResponse(
        STATIC_AVAILABLE_TRANSFORMATIONS_JSON,
@@ -187,7 +187,20 @@ async def transformations(request: sanic.request):
    )


@server.route("/job/", methods=["POST"])
@server.get("/job/<job_id:str>")
async def job_get(request: sanic.request, job_id: str):
    _check_request_auth(request, job_id)
    if os.path.isfile("{}/queue/{}.tar.gz".format(CONFIG["CIRCE_WORKING_DIR"], job_id)):
        return sanic.response.HTTPResponse("Accepted", status=202)
    result_file_path = "{}/done/{}.tar.gz".format(CONFIG["CIRCE_WORKING_DIR"], job_id)
    if os.path.isfile(result_file_path):
        return await sanic.response.file(result_file_path)
        # file_stream is slow ? bad chunk size ?
        # return await sanic.response.file_stream(result_file_path, chunked=False)
    return sanic.response.HTTPResponse("Not Found", status=404)


@server.post("/job/")
async def job_post(request: sanic.request):
    _check_request_auth(request)
    uuid = uuid4()
@@ -207,19 +220,6 @@ async def job_post(request: sanic.request):
    return sanic.response.text(uuid.hex)


@server.route("/job/<job_id>", methods=["GET"])
async def job_get(request: sanic.request, job_id: str):
    _check_request_auth(request, job_id)
    if os.path.isfile("{}/queue/{}.tar.gz".format(CONFIG["CIRCE_WORKING_DIR"], job_id)):
        return sanic.response.HTTPResponse("Accepted", status=202)
    result_file_path = "{}/done/{}.tar.gz".format(CONFIG["CIRCE_WORKING_DIR"], job_id)
    if os.path.isfile(result_file_path):
        return await sanic.response.file(result_file_path)
        # file_stream is slow ? bad chunk size ?
        # return await sanic.response.file_stream(result_file_path, chunked=False)
    return sanic.response.HTTPResponse("Not Found", status=404)


if CONFIG["CIRCE_ENABLE_WEB_UI"]:
    cookie_signer = Signer(CONFIG["CIRCE_WEB_UI_CRYPT_KEY"])

@@ -232,7 +232,7 @@ if CONFIG["CIRCE_ENABLE_WEB_UI"]:
        except (BadSignature, TypeError):
            raise Forbidden("Bad session")

    @server.route("/ui/", methods=["GET"])
    @server.get("/ui/")
    async def index(request: sanic.request):
        with open(
            os.path.dirname(os.path.abspath(__file__)) + "/static/index.html", "r"
@@ -275,7 +275,7 @@ if CONFIG["CIRCE_ENABLE_WEB_UI"]:
        await _write_file(os.path.join(dir_to_create, dest_name), uploaded.body)
        return sanic.response.HTTPResponse(request.files.get("file").name, status=200)

    @server.route("/webui/setjob/", methods=["POST"])
    @server.post("/webui/setjob/")
    async def set_job(request: sanic.request):
        session_id = _check_request_session(request)
        session_dir = "{}web_ui_sessions/{}".format(
@@ -312,7 +312,7 @@ if CONFIG["CIRCE_ENABLE_WEB_UI"]:
            return sanic.response.HTTPResponse("ok", status=200)
        return sanic.response.HTTPResponse("Bad Request", status=400)

    @server.route("/webui/fetchjob/", methods=["GET"])
    @server.get("/webui/fetchjob/")
    async def fetch_job(request: sanic.request):
        session_id = _check_request_session(request)
        job_id = session_id
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:

setuptools.setup(
    name="circe-CERTIC",
    version="0.0.23",
    version="0.0.24",
    author="Mickaël Desfrênes",
    author_email="mickael.desfrenes@unicaen.fr",
    description="Circe server",