From 124f280fefb02375f630ad16d7e35fd400946682 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Tue, 5 Jan 2021 20:29:59 +0800 Subject: [PATCH] fix(region): sync cachedimage info --- pkg/compute/models/cloudimages.go | 15 +++++++++++++++ pkg/compute/models/cloudregions.go | 10 +++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/cloudimages.go b/pkg/compute/models/cloudimages.go index fdafef9439..f36571844e 100644 --- a/pkg/compute/models/cloudimages.go +++ b/pkg/compute/models/cloudimages.go @@ -90,3 +90,18 @@ func (self *SCloudimage) syncRemove(ctx context.Context, userCred mcclient.Token return self.Delete(ctx, userCred) } + +func (self *SCloudimage) syncWithImage(ctx context.Context, userCred mcclient.TokenCredential, image SCachedimage) error { + _cachedImage, err := db.FetchByExternalId(CachedimageManager, image.GetGlobalId()) + if err != nil { + return errors.Wrapf(err, "db.FetchByExternalId(%s)", image.GetGlobalId()) + } + cachedImage := _cachedImage.(*SCachedimage) + _, err = db.Update(cachedImage, func() error { + cachedImage.Info = image.Info + cachedImage.Size = image.Size + cachedImage.UEFI = image.UEFI + return nil + }) + return err +} diff --git a/pkg/compute/models/cloudregions.go b/pkg/compute/models/cloudregions.go index ac8a6ecabd..7d5f176d18 100644 --- a/pkg/compute/models/cloudregions.go +++ b/pkg/compute/models/cloudregions.go @@ -1038,7 +1038,6 @@ func (self *SCloudregion) SyncCloudImages(ctx context.Context, userCred mcclient } result := compare.SyncResult{} - result.UpdateCnt = len(commondb) for i := 0; i < len(removed); i++ { err := removed[i].syncRemove(ctx, userCred) @@ -1049,6 +1048,15 @@ func (self *SCloudregion) SyncCloudImages(ctx context.Context, userCred mcclient result.Delete() } + for i := 0; i < len(commonext); i++ { + err := commondb[i].syncWithImage(ctx, userCred, commonext[i]) + if err != nil { + result.UpdateError(errors.Wrapf(err, "updateCachedImage")) + continue + } + result.Update() + } + for i := 0; i < len(added); i++ { err = self.newCloudimage(ctx, userCred, added[i]) if err != nil {