From 7955b5884a03ec2a0b0314d3700d5f47ff58b53f Mon Sep 17 00:00:00 2001 From: dongli Date: Sat, 7 Jun 2025 13:11:22 -0700 Subject: [PATCH] Fix some bugs --- apps/devops/app/routes/deployment/apis.py | 2 +- apps/devops/app/routes/deployment/service.py | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/devops/app/routes/deployment/apis.py b/apps/devops/app/routes/deployment/apis.py index a247742..853439c 100644 --- a/apps/devops/app/routes/deployment/apis.py +++ b/apps/devops/app/routes/deployment/apis.py @@ -22,7 +22,7 @@ async def init_deployment( async def update_deployment( request: Deployment, service: DeploymentService = Depends(get_deployment_service) -) -> bool: +) -> Deployment: return await service.update_deployment_status(request) @router.get("/checkDeploymentStatus") diff --git a/apps/devops/app/routes/deployment/service.py b/apps/devops/app/routes/deployment/service.py index 609e743..a4ea867 100644 --- a/apps/devops/app/routes/deployment/service.py +++ b/apps/devops/app/routes/deployment/service.py @@ -60,7 +60,7 @@ class DeploymentService: ) await self._start_deployment(deployment) - res = await dao.create_deployment(deployment) + res = await Deployment.insert(deployment) return res @@ -89,7 +89,7 @@ class DeploymentService: async def update_deployment_status( self, deployment: Deployment - ) -> bool: + ) -> Deployment: latest_record = await Deployment.find_one( Deployment.deployment_id == deployment.deployment_id, sort=[("created_at", -1)] @@ -100,19 +100,22 @@ class DeploymentService: # TODO add more sanity check logic here - if deployment.deployment_stage == latest_record.deployment_status: + # if updating the same stage, just update the status and timestamp + # else, create a new record with the same deployment_id + res = None + if deployment.deployment_stage == latest_record.deployment_stage: # update existing record latest_record.deployment_status = deployment.deployment_status latest_record.updated_at = deployment.updated_at or datetime.now() - await latest_record.save() + res = await latest_record.save() else: # create new record deployment.deployment_id = latest_record.deployment_id - deployment.created_at = latest_record.created_at + deployment.created_at = datetime.now() deployment.updated_at = datetime.now() - await deployment.insert() + res = await deployment.insert() - return True + return res async def _get_code_depot_by_product_id( self,