Skip to content

Commit 1a7a7e7

Browse files
author
zsbahtiar
committed
refactor: change to DeleteActionRunAndChild
1 parent 71b773a commit 1a7a7e7

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

models/actions/run.go

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -436,33 +436,27 @@ func UpdateRun(ctx context.Context, run *ActionRun, cols ...string) error {
436436

437437
type ActionRunIndex db.ResourceIndex
438438

439-
// DeleteRunByIDs delete action_task_step, action_task_output, action_task, action_run and action_run_job.
440-
func DeleteRunByIDs(ctx context.Context, runIDs, jobIDs []int64) error {
439+
// DeleteActionRunAndChild delete action_task_step, action_task_output, action_task, action_run and action_run_job.
440+
func DeleteActionRunAndChild(ctx context.Context, runIDs, jobIDs, taskIDs []int64) error {
441441
ctx, committer, err := db.TxContext(ctx)
442442
if err != nil {
443443
return err
444444
}
445445
defer committer.Close()
446446

447-
_, err = db.GetEngine(ctx).
448-
Table("action_task").
449-
Join("INNER", "action_task_step", "action_task.id = action_task_step.task_id").
450-
In("action_task.job_id", jobIDs).
447+
_, err = db.GetEngine(ctx).In("task_id", taskIDs).
451448
Delete(ActionTaskStep{})
452449
if err != nil {
453450
return err
454451
}
455452

456-
_, err = db.GetEngine(ctx).
457-
Table("action_task").
458-
Join("INNER", "action_task_output", "action_task.id = action_task_output.task_id").
459-
In("action_task.job_id", jobIDs).
453+
_, err = db.GetEngine(ctx).In("task_id", taskIDs).
460454
Delete(ActionTaskOutput{})
461455
if err != nil {
462456
return err
463457
}
464458

465-
_, err = db.GetEngine(ctx).In("job_id", jobIDs).Delete(ActionTask{})
459+
_, err = db.GetEngine(ctx).In("id", taskIDs).Delete(ActionTask{})
466460
if err != nil {
467461
return err
468462
}

routers/web/repo/actions/actions.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -445,10 +445,10 @@ func DeleteRuns(ctx *context.Context) {
445445
}
446446

447447
var (
448-
eg = new(errgroup.Group)
449-
actionRuns []*actions_model.ActionRun
450-
actionTasks []*actions_model.ActionTask
451-
jobIDs []int64
448+
eg = new(errgroup.Group)
449+
actionRuns []*actions_model.ActionRun
450+
jobIDs, taskIDs []int64
451+
taskLogFileNames []string
452452
)
453453
eg.Go(func() error {
454454
var err error
@@ -465,8 +465,16 @@ func DeleteRuns(ctx *context.Context) {
465465
for _, actionRunJob := range actionRunJobs {
466466
jobIDs = append(jobIDs, actionRunJob.ID)
467467
}
468-
actionTasks, err = actions_model.GetRunTasksByJobIDs(ctx, jobIDs)
469-
return err
468+
actionTasks, err := actions_model.GetRunTasksByJobIDs(ctx, jobIDs)
469+
if err != nil {
470+
return err
471+
}
472+
473+
for _, actionTask := range actionTasks {
474+
taskIDs = append(taskIDs, actionTask.ID)
475+
taskLogFileNames = append(taskLogFileNames, actionTask.LogFilename)
476+
}
477+
return nil
470478
})
471479

472480
err := eg.Wait()
@@ -480,13 +488,13 @@ func DeleteRuns(ctx *context.Context) {
480488
return
481489
}
482490

483-
err = actions_model.DeleteRunByIDs(ctx, req.ActionIDs, jobIDs)
491+
err = actions_model.DeleteActionRunAndChild(ctx, req.ActionIDs, jobIDs, taskIDs)
484492
if err != nil {
485493
ctx.ServerError("failed to delete action_run", err)
486494
return
487495
}
488496

489-
removeActionTaskLogFilenames(actionTasks)
497+
removeActionTaskLogFilenames(taskLogFileNames)
490498

491499
ctx.Status(http.StatusNoContent)
492500
}
@@ -495,15 +503,15 @@ type DeleteRunsRequest struct {
495503
ActionIDs []int64 `json:"actionIds"`
496504
}
497505

498-
func removeActionTaskLogFilenames(actionTasks []*actions_model.ActionTask) {
506+
func removeActionTaskLogFilenames(taskLogFileNames []string) {
499507
dirNameActionLog := "actions_log"
500508
go func() {
501-
for _, actionTask := range actionTasks {
509+
for _, taskLogFileName := range taskLogFileNames {
502510
var fileName string
503511
if filepath.IsAbs(setting.AppDataPath) {
504-
fileName = filepath.Join(setting.AppDataPath, dirNameActionLog, actionTask.LogFilename)
512+
fileName = filepath.Join(setting.AppDataPath, dirNameActionLog, taskLogFileName)
505513
} else {
506-
fileName = filepath.Join(setting.AppWorkPath, setting.AppDataPath, dirNameActionLog, actionTask.LogFilename)
514+
fileName = filepath.Join(setting.AppWorkPath, setting.AppDataPath, dirNameActionLog, taskLogFileName)
507515
}
508516

509517
if err := os.Remove(fileName); err != nil {

0 commit comments

Comments
 (0)