@@ -281,9 +281,15 @@ async def get_resource_usage(response: Response, req: Request):
281281 container_info = {
282282 "container_id" : db_container .docker_id [:12 ],
283283 "team_id" : db_container .team_id ,
284- "team_name" : (await db_container .team ).name ,
284+ "team_name" : (
285+ (await db_container .team ).name if db_container .team else "Unknown"
286+ ),
285287 "problem_id" : db_container .problem_id ,
286- "problem_name" : (await db_container .problem ).name ,
288+ "problem_name" : (
289+ (await db_container .problem ).name
290+ if db_container .problem
291+ else "Unknown"
292+ ),
287293 "ports" : ports ,
288294 "cpu_percent" : round (cpu_usage , 2 ),
289295 "memory" : {
@@ -314,10 +320,14 @@ async def get_resource_usage(response: Response, req: Request):
314320 "team_id" : db_container .team_id ,
315321 "team_name" : (
316322 (await db_container .team ).name
323+ if db_container .team
324+ else "Unknown"
317325 ),
318326 "problem_id" : db_container .problem_id ,
319327 "problem_name" : (
320328 (await db_container .problem ).name
329+ if db_container .problem
330+ else "Unknown"
321331 ),
322332 "ports" : ports ,
323333 "status" : "error" ,
@@ -348,9 +358,9 @@ async def list_docker_containers(response: Response, req: Request):
348358 container_info = {
349359 "docker_id" : container .docker_id ,
350360 "team_id" : container .team_id ,
351- "team_name" : container .team .name ,
361+ "team_name" : container .team .name if container . team else "Unknown" ,
352362 "problem_id" : container .problem_id ,
353- "problem_name" : container .problem .name ,
363+ "problem_name" : container .problem .name if container . problem else "Unknown" ,
354364 "ports" : ports ,
355365 }
356366 container_list .append (container_info )
@@ -434,7 +444,7 @@ async def stop_docker_container(docker_id: str, response: Response, req: Request
434444 try :
435445 await Container .filter (docker_id = docker_id ).delete ()
436446 ctf = await container .problem
437- if ctf .static_files :
447+ if ctf and ctf .static_files :
438448 static_path = f"{ config .staticfs_data_dir } /{ container .team_id } /{ docker_id } "
439449 if os .path .exists (static_path ):
440450 shutil .rmtree (static_path )
@@ -453,7 +463,7 @@ async def stop_docker_container(docker_id: str, response: Response, req: Request
453463@router .get ("/ban/list" )
454464async def get_ban_list (request : Request , response : Response ) -> JSONResponse :
455465 """Get banned tags list."""
456- return JSONResponse ( {"banned" : config .blacklist })
466+ return {"banned" : config .blacklist }
457467
458468
459469@router .post ("/ban/{team_id}" , status_code = status .HTTP_204_NO_CONTENT )
0 commit comments