From aede5c9912509558f4b3c7d03cb73b513d1fbd99 Mon Sep 17 00:00:00 2001 From: "Haihui.Wang" Date: Fri, 8 May 2026 16:46:47 +0800 Subject: [PATCH] fix: clear deploy instances when stopping deploy --- .gitignore | 1 + builder/store/database/deploy_task.go | 4 ++-- builder/store/database/deploy_task_test.go | 1 + component/space.go | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 4654e4f9f..af8f4089c 100644 --- a/.gitignore +++ b/.gitignore @@ -49,4 +49,5 @@ docs/swagger.json docs/swagger.yaml docs/docs.go pgdata15/ +.prd/ diff --git a/builder/store/database/deploy_task.go b/builder/store/database/deploy_task.go index e543a7f62..2de9023af 100644 --- a/builder/store/database/deploy_task.go +++ b/builder/store/database/deploy_task.go @@ -425,14 +425,14 @@ func (s *deployTaskStoreImpl) GetDeployBySvcName(ctx context.Context, svcName st func (s *deployTaskStoreImpl) StopDeploy(ctx context.Context, repoType types.RepositoryType, repoID, userID int64, deployID int64) error { // only stop the deploy of specific repo was triggered by current login user - res, err := s.db.BunDB.Exec("Update deploys set status=?,updated_at=current_timestamp where id = ? and repo_id = ? and user_id = ?", common.Stopped, deployID, repoID, userID) + res, err := s.db.BunDB.Exec("Update deploys set status=?,updated_at=current_timestamp,instances='[]'::jsonb where id = ? and repo_id = ? and user_id = ?", common.Stopped, deployID, repoID, userID) err = assertAffectedOneRow(res, err) err = errorx.HandleDBError(err, nil) return err } func (s *deployTaskStoreImpl) StopDeployByID(ctx context.Context, userID int64, deployID int64) error { // only stop the deploy of specific repo was triggered by current login user - res, err := s.db.BunDB.Exec("Update deploys set status=?,updated_at=current_timestamp where id = ? and user_id = ?", common.Stopped, deployID, userID) + res, err := s.db.BunDB.Exec("Update deploys set status=?,updated_at=current_timestamp,instances='[]'::jsonb where id = ? and user_id = ?", common.Stopped, deployID, userID) err = assertAffectedOneRow(res, err) err = errorx.HandleDBError(err, nil) return err diff --git a/builder/store/database/deploy_task_test.go b/builder/store/database/deploy_task_test.go index 8ca97778a..0b32adc59 100644 --- a/builder/store/database/deploy_task_test.go +++ b/builder/store/database/deploy_task_test.go @@ -52,6 +52,7 @@ func TestDeployTaskStore_CRUD(t *testing.T) { dp, err = store.GetDeployByID(ctx, dp.ID) require.Nil(t, err) require.Equal(t, dp.Status, common.Stopped) + require.Empty(t, dp.Instances) err = store.CreateDeploy(ctx, &database.Deploy{ DeployName: "dp2", SvcName: "s2", diff --git a/component/space.go b/component/space.go index fb6f6df1f..c3e7bcea0 100644 --- a/component/space.go +++ b/component/space.go @@ -1168,7 +1168,7 @@ func (c *spaceComponentImpl) stopSpaceDeploy(ctx context.Context, namespace, nam err = c.deployTaskStore.StopDeploy(ctx, types.SpaceRepo, deploy.RepoID, deploy.UserID, deploy.ID) if err != nil { - return fmt.Errorf("fail to update space deploy status to stopped for deploy ID '%d', %w", deploy.ID, err) + return fmt.Errorf("failed to update space deploy status to stopped for deploy ID '%d', %w", deploy.ID, err) } return nil }