From 7e606b64d3ac957aee4edcb8cd138854476da708 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Wed, 13 Mar 2019 10:31:44 +0800 Subject: [PATCH] fix: cherry-pick hotfix/qj-recover-image-properties-at-startup --- pkg/image/models/images.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkg/image/models/images.go b/pkg/image/models/images.go index 29ef13424a..5d3f81b352 100644 --- a/pkg/image/models/images.go +++ b/pkg/image/models/images.go @@ -1028,6 +1028,24 @@ func (self *SImage) DoCheckStatus(ctx context.Context, userCred mcclient.TokenCr } } } + img, err := qemuimg.NewQemuImage(self.getLocalLocation()) + if err == nil { + format := string(img.Format) + virtualSizeMB := int32(img.SizeBytes / 1024 / 1024) + if (len(format) > 0 && self.DiskFormat != format) || (virtualSizeMB > 0 && self.MinDiskMB != virtualSizeMB) { + self.GetModelManager().TableSpec().Update(self, func() error { + if len(format) > 0 { + self.DiskFormat = format + } + if virtualSizeMB > 0 { + self.MinDiskMB = virtualSizeMB + } + return nil + }) + } + } else { + log.Warningf("fail to check image size of %s(%s)", self.Id, self.Name) + } } else { if self.Status != IMAGE_STATUS_QUEUED { self.SetStatus(userCred, IMAGE_STATUS_QUEUED, "check inactive")