Only check for non-finished migrating task (#19601)
* Only check for non-finished migrating task - Only check if a non-finished migrating task exists for a mirror before fetching the mirror details from the database. - Resolves #19600 - Regression: #19588 * Clarify function
This commit is contained in:
parent
9c04da37d0
commit
3114cd30b8
@ -181,12 +181,12 @@ func GetMigratingTask(repoID int64) (*Task, error) {
|
|||||||
return &task, nil
|
return &task, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasMigratingTask returns if migrating task exist for repo.
|
// HasFinishedMigratingTask returns if a finished migration task exists for the repo.
|
||||||
func HasMigratingTask(repoID int64) (bool, error) {
|
func HasFinishedMigratingTask(repoID int64) (bool, error) {
|
||||||
return db.GetEngine(db.DefaultContext).Exist(&Task{
|
return db.GetEngine(db.DefaultContext).
|
||||||
RepoID: repoID,
|
Where("repo_id=? AND type=? AND status=?", repoID, structs.TaskTypeMigrateRepo, structs.TaskStatusFinished).
|
||||||
Type: structs.TaskTypeMigrateRepo,
|
Table("task").
|
||||||
})
|
Exist()
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMigratingTaskByID returns the migrating task by repo's id
|
// GetMigratingTaskByID returns the migrating task by repo's id
|
||||||
|
@ -371,14 +371,14 @@ func repoAssignment(ctx *Context, repo *repo_model.Repository) {
|
|||||||
|
|
||||||
if repo.IsMirror {
|
if repo.IsMirror {
|
||||||
|
|
||||||
// Check if there's a migrating task.
|
// Check if the mirror has finsihed migrationg, only then we can
|
||||||
// If it does exist, don't fetch the Mirror from the database as it doesn't exist yet.
|
// lookup the mirror informtation the database.
|
||||||
hasTask, err := models.HasMigratingTask(repo.ID)
|
finishedMigrating, err := models.HasFinishedMigratingTask(repo.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetMirrorByRepoID", err)
|
ctx.ServerError("HasFinishedMigratingTask", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !hasTask {
|
if finishedMigrating {
|
||||||
ctx.Repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID)
|
ctx.Repo.Mirror, err = repo_model.GetMirrorByRepoID(repo.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetMirrorByRepoID", err)
|
ctx.ServerError("GetMirrorByRepoID", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user