77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
from datetime import datetime
|
|
from typing import List
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from loguru import logger
|
|
|
|
from app.common.models import CodeDepotDoc
|
|
from app.common.models.deployment.deployment import Deployment, InitDeploymentRequest, CheckDeploymentStatusRequest, \
|
|
CheckApplicationLogsRequest, CheckApplicationLogsResponse
|
|
from app.routes.deployment.service import DeploymentService, get_deployment_service
|
|
|
|
router = APIRouter(prefix="/deployment")
|
|
|
|
@router.post("/initDeployment")
|
|
## insert a new Deployment object to db
|
|
async def init_deployment(
|
|
request: InitDeploymentRequest,
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> Deployment:
|
|
return await service.init_deployment(request)
|
|
|
|
@router.get('/getLatestDeployment')
|
|
async def get_latest_deployment(
|
|
product_id: str,
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> Deployment:
|
|
"""
|
|
Get the latest deployment for a given product ID.
|
|
"""
|
|
# return await service.get_latest_deployment(product_id)
|
|
return None
|
|
|
|
|
|
@router.post("/updateDeploymentStatus")
|
|
async def update_deployment(
|
|
request: Deployment,
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> Deployment:
|
|
return await service.update_deployment_status(request)
|
|
|
|
@router.get("/checkDeploymentStatus")
|
|
async def check_deployment_status(
|
|
deployment_id: str,
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> List[Deployment]:
|
|
return await service.check_deployment_status(deployment_id)
|
|
|
|
@router.post("/createDummyCodeDepot")
|
|
async def create_dummy_code_depot(
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> CodeDepotDoc:
|
|
"""
|
|
Create a dummy code depot for testing purposes.
|
|
"""
|
|
try:
|
|
depot_name = await service.create_dummy_code_depot()
|
|
return depot_name
|
|
except Exception as e:
|
|
logger.error(f"Failed to create dummy code depot: {e}")
|
|
raise e
|
|
|
|
@router.post("/checkApplicationLogs")
|
|
async def check_application_logs(
|
|
request: CheckApplicationLogsRequest,
|
|
service: DeploymentService = Depends(get_deployment_service)
|
|
) -> CheckApplicationLogsResponse:
|
|
"""
|
|
Check application logs for a given deployment.
|
|
"""
|
|
try:
|
|
res = await service.check_application_logs(request)
|
|
return res
|
|
except Exception as e:
|
|
logger.error(f"Failed to check application logs: {e}")
|
|
raise e
|
|
|