from fastapi import APIRouter, HTTPException from fastapi.responses import JSONResponse from docker_client import docker_client router = APIRouter() @router.get("/start/{container_name}") def start_container(container_name: str): if not docker_client: raise HTTPException(status_code=503, detail="Docker is not available") try: container = docker_client.containers.get(container_name) container.unpause() return JSONResponse({"status": "started"}) except Exception as e: return JSONResponse({"error": str(e)}, status_code=500) @router.get("/pause/{container_name}") def pause_container(container_name: str): if not docker_client: raise HTTPException(status_code=503, detail="Docker is not available") try: container = docker_client.containers.get(container_name) container.pause() return JSONResponse({"status": "paused"}) except Exception as e: return JSONResponse({"error": str(e)}, status_code=500) @router.get("/stop/{container_name}") def stop_container(container_name: str): if not docker_client: raise HTTPException(status_code=503, detail="Docker is not available") try: container = docker_client.containers.get(container_name) container.stop() container.remove(force=True) return JSONResponse({"status": "stopped and removed"}) except Exception as e: return JSONResponse({"error": str(e)}, status_code=500)