Skip to content

Commit e217c63

Browse files
QinYuuuuDev Agentpulltheflower
committed
Fix ce ee sync status bug (#740)
* Fix ce ee sync status bug * Fix mocks --------- Co-authored-by: Dev Agent <dev-agent@example.com> Co-authored-by: zhzhang <pulltheflower@163.com>
1 parent 63af6dd commit e217c63

18 files changed

Lines changed: 476 additions & 122 deletions

File tree

_mocks/opencsg.com/csghub-server/builder/store/database/mock_MirrorTaskStore.go

Lines changed: 116 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_mocks/opencsg.com/csghub-server/component/mock_RepoComponent.go

Lines changed: 13 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

builder/store/database/mirror_task.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ type MirrorTaskStore interface {
1919
CancelOtherTasksAndCreate(ctx context.Context, task MirrorTask) (MirrorTask, error)
2020
Create(ctx context.Context, task MirrorTask) (MirrorTask, error)
2121
Update(ctx context.Context, task MirrorTask) (MirrorTask, error)
22+
UpdateStatusAndRepoSyncStatus(ctx context.Context, task MirrorTask, syncStatus types.RepositorySyncStatus) (MirrorTask, error)
2223
FindByMirrorID(ctx context.Context, mirrorID int64) (*MirrorTask, error)
2324
Delete(ctx context.Context, ID int64) error
2425
GetHighestPriorityByTaskStatus(ctx context.Context, status []types.MirrorTaskStatus) (MirrorTask, error)
2526
SetMirrorCurrentTaskID(ctx context.Context, task MirrorTask) error
2627
FindByID(ctx context.Context, ID int64) (*MirrorTask, error)
2728
ListByStatusWithPriority(ctx context.Context, status []types.MirrorTaskStatus, per, page int) ([]MirrorTask, error)
29+
ResetRunningTasks(ctx context.Context, fromStatus types.MirrorTaskStatus, toStatus types.MirrorTaskStatus) (int, error)
2830
}
2931

3032
func NewMirrorTaskStore() MirrorTaskStore {
@@ -295,3 +297,44 @@ func (m *mirrorTaskStoreImpl) CancelOtherTasksAndCreate(ctx context.Context, tas
295297
})
296298
return task, errorx.HandleDBError(err, nil)
297299
}
300+
301+
func (m *mirrorTaskStoreImpl) ResetRunningTasks(ctx context.Context, fromStatus types.MirrorTaskStatus, toStatus types.MirrorTaskStatus) (int, error) {
302+
var task MirrorTask
303+
result, err := m.db.Operator.Core.NewUpdate().
304+
Model(&task).
305+
Set("status = ?", toStatus).
306+
Where("status = ?", fromStatus).
307+
Exec(ctx)
308+
if err != nil {
309+
return 0, errorx.HandleDBError(err, nil)
310+
}
311+
rowsAffected, err := result.RowsAffected()
312+
if err != nil {
313+
return 0, errorx.HandleDBError(err, nil)
314+
}
315+
return int(rowsAffected), nil
316+
}
317+
318+
func (m *mirrorTaskStoreImpl) UpdateStatusAndRepoSyncStatus(ctx context.Context, task MirrorTask, syncStatus types.RepositorySyncStatus) (MirrorTask, error) {
319+
err := m.db.Operator.Core.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
320+
_, err := tx.NewUpdate().
321+
Model(&task).
322+
WherePK().
323+
Exec(ctx)
324+
if err != nil {
325+
return err
326+
}
327+
328+
_, err = tx.NewUpdate().
329+
Model(&Repository{}).
330+
Set("sync_status = ?", syncStatus).
331+
Where("id = ?", task.Mirror.RepositoryID).
332+
Exec(ctx)
333+
if err != nil {
334+
return err
335+
}
336+
337+
return nil
338+
})
339+
return task, errorx.HandleDBError(err, nil)
340+
}

0 commit comments

Comments
 (0)