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