mirror of
https://github.com/goharbor/harbor.git
synced 2025-02-02 04:51:22 +01:00
fix quota migration still execute on launch even data sync success
This commit is to fix the issue for the following scenario: 1, user success migrate harbor to v1.9.0 from a previous version 2, add a project, push images into the project. 3, delete images and then to delete the project. 4, re-launch harbor. After that, it still execute the quota migration as the condition doesn't consider the deleted projects usage. And in this case, the harbor core crashes with a duplicate sql err, and unable to launch. [Workaroud] Clean table of project_blob with: TRUNCATE TABLE project_blob, and re-launch harbor, wait for quota sync success. Signed-off-by: wang yan <wangyan@vmware.com>
This commit is contained in:
parent
49f12d0b16
commit
8c155e0c50
@ -85,17 +85,22 @@ func updateInitPassword(userID int, password string) error {
|
||||
|
||||
// Quota migration
|
||||
func quotaSync() error {
|
||||
usages, err := dao.ListQuotaUsages()
|
||||
if err != nil {
|
||||
log.Errorf("list quota usage error, %v", err)
|
||||
return err
|
||||
}
|
||||
projects, err := dao.GetProjects(nil)
|
||||
if err != nil {
|
||||
log.Errorf("list project error, %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
var pids []string
|
||||
for _, project := range projects {
|
||||
pids = append(pids, strconv.FormatInt(project.ProjectID, 10))
|
||||
}
|
||||
usages, err := dao.ListQuotaUsages(&models.QuotaUsageQuery{Reference: "project", ReferenceIDs: pids})
|
||||
if err != nil {
|
||||
log.Errorf("list quota usage error, %v", err)
|
||||
return err
|
||||
}
|
||||
|
||||
// The condition handles these two cases:
|
||||
// 1, len(project) > 1 && len(usages) == 1. existing projects without usage, as we do always has 'library' usage in DB.
|
||||
// 2, migration fails at the phase of inserting usage into DB, and parts of them are inserted successfully.
|
||||
|
Loading…
Reference in New Issue
Block a user