Source code for teuthology_api.routes.kill

import logging

from fastapi import APIRouter, Depends, Request, HTTPException
from requests.exceptions import HTTPError

from teuthology_api.services.kill import run
from teuthology_api.services.helpers import get_token
from teuthology_api.schemas.kill import KillArgs

log = logging.getLogger(__name__)

router = APIRouter(
    prefix="/kill",
    tags=["kill"],
)


[docs] @router.post("/", status_code=200) async def create_run( request: Request, args: KillArgs, logs: bool = False, token: str = Depends(get_token), ): """ POST route for killing a run or a job. Note: I needed to put `request` before `args` or else it will SyntaxError: non-dafault argument follows default argument error. """ try: args = args.model_dump(by_alias=True, exclude_unset=True) return await run(args, logs, token, request) except HTTPException as http_exp: log.error(http_exp) raise except HTTPError as http_err: log.error(http_err) raise HTTPException( status_code=http_err.response.status_code, detail=str(http_err) ) from http_err except Exception as err: log.error(err) raise HTTPException(status_code=500, detail=str(err)) from err