agent
This commit is contained in:
40
agent/app/api/services.py
Normal file
40
agent/app/api/services.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter
|
||||
|
||||
from app.core.command_runner import CommandRunner
|
||||
from app.core.service_manager import ServiceManager
|
||||
from app.models.schemas import ServiceRequest
|
||||
from app.storage.repository import Repository
|
||||
|
||||
|
||||
router = APIRouter(prefix="/services", tags=["services"])
|
||||
|
||||
|
||||
def _manager() -> ServiceManager:
|
||||
return ServiceManager(CommandRunner(Repository()))
|
||||
|
||||
|
||||
@router.post("/start")
|
||||
def start_service(request: ServiceRequest) -> dict[str, str]:
|
||||
_manager().start_service(request.service_name)
|
||||
return {"serviceName": request.service_name, "status": "started"}
|
||||
|
||||
|
||||
@router.post("/stop")
|
||||
def stop_service(request: ServiceRequest) -> dict[str, str]:
|
||||
_manager().stop_service(request.service_name)
|
||||
return {"serviceName": request.service_name, "status": "stopped"}
|
||||
|
||||
|
||||
@router.post("/restart")
|
||||
def restart_service(request: ServiceRequest) -> dict[str, str]:
|
||||
_manager().restart_service(request.service_name)
|
||||
return {"serviceName": request.service_name, "status": "restarted"}
|
||||
|
||||
|
||||
@router.get("/{service_name}/status")
|
||||
def service_status(service_name: str) -> dict[str, object]:
|
||||
request = ServiceRequest(serviceName=service_name)
|
||||
return _manager().get_service_status(request.service_name)
|
||||
|
||||
Reference in New Issue
Block a user