From af100016be2595c82e3d5b6ccec785dac5421d7c Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Wed, 13 Mar 2019 10:12:12 +0800 Subject: [PATCH] fix: try to recover image properties(mindisk, format) 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 02dc65e613..35d90f8008 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) { + db.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")