diff --git a/pkg/cloudprovider/images.go b/pkg/cloudprovider/images.go index 22b76f334c..ce139a2962 100644 --- a/pkg/cloudprovider/images.go +++ b/pkg/cloudprovider/images.go @@ -25,13 +25,13 @@ type SImage struct { DiskFormat string Id string IsPublic bool - MinDisk int - MinRam int + MinDiskMB int `json:"min_disk"` + MinRamMB int `json:"min_ram"` Name string Owner string Properties map[string]string Protected bool - Size int64 + SizeBytes int64 `json:"size"` Status string // UpdatedAt time.Time } @@ -43,8 +43,8 @@ func CloudImage2Image(image ICloudImage) SImage { DiskFormat: image.GetImageFormat(), Id: image.GetId(), IsPublic: image.GetImageType() != CachedImageTypeCustomized, - MinDisk: image.GetMinOsDiskSizeGb(), - MinRam: 0, + MinDiskMB: image.GetMinOsDiskSizeGb() * 1024, + MinRamMB: 0, Name: image.GetName(), Properties: map[string]string{ "os_type": image.GetOsType(), @@ -53,7 +53,7 @@ func CloudImage2Image(image ICloudImage) SImage { "os_arch": image.GetOsArch(), }, Protected: true, - Size: image.GetSize(), + SizeBytes: image.GetSize(), Status: image.GetImageStatus(), } } diff --git a/pkg/compute/models/disks.go b/pkg/compute/models/disks.go index 98376eaefc..c5511fe401 100644 --- a/pkg/compute/models/disks.go +++ b/pkg/compute/models/disks.go @@ -1274,7 +1274,7 @@ func fillDiskConfigByImage(ctx context.Context, userCred mcclient.TokenCredentia // diskConfig.ImageDiskFormat = image.DiskFormat CachedimageManager.ImageAddRefCount(image.Id) if diskConfig.SizeMb == 0 { - diskConfig.SizeMb = image.MinDisk * 1024 // MB + diskConfig.SizeMb = image.MinDiskMB // MB } } return nil diff --git a/pkg/image/models/images.go b/pkg/image/models/images.go index 80f695d656..55347dad78 100644 --- a/pkg/image/models/images.go +++ b/pkg/image/models/images.go @@ -114,8 +114,8 @@ type SImage struct { Checksum string `width:"32" charset:"ascii" nullable:"true" get:"user" list:"user"` FastHash string `width:"32" charset:"ascii" nullable:"true" get:"user"` Owner string `width:"255" charset:"ascii" nullable:"true" get:"user"` - MinDisk int32 `nullable:"false" default:"0" get:"user" create:"optional" update:"user"` - MinRam int32 `nullable:"false" default:"0" get:"user" create:"optional" update:"user"` + MinDiskMB int32 `name:"min_disk" nullable:"false" default:"0" get:"user" create:"optional" update:"user"` + MinRamMB int32 `name:"min_ram" nullable:"false" default:"0" get:"user" create:"optional" update:"user"` Protected *bool `nullable:"true" list:"user" get:"user" create:"optional" update:"user"` } @@ -392,15 +392,14 @@ func (self *SImage) SaveImageFromStream(reader io.Reader) error { sp, err := self.saveImageFromStream(localPath, reader) - virtualSize := int64(0) + virtualSizeBytes := int64(0) format := "" img, err := qemuimg.NewQemuImage(localPath) if err != nil { return err - } else { - format = string(img.Format) - virtualSize = img.SizeBytes } + format = string(img.Format) + virtualSizeBytes = img.SizeBytes fastChksum, err := fileutils2.FastCheckSum(localPath) if err != nil { @@ -415,8 +414,8 @@ func (self *SImage) SaveImageFromStream(reader io.Reader) error { if len(format) > 0 { self.DiskFormat = format } - if virtualSize > 0 { - self.VirtualSize = virtualSize + if virtualSizeBytes > 0 { + self.MinDiskMB = int32(virtualSizeBytes / 1024 / 1024) } return nil }) diff --git a/pkg/util/openstack/image.go b/pkg/util/openstack/image.go index ade44b6e59..d5dd500862 100644 --- a/pkg/util/openstack/image.go +++ b/pkg/util/openstack/image.go @@ -161,7 +161,7 @@ func (image *SImage) GetOsArch() string { } func (image *SImage) GetMinOsDiskSizeGb() int { - return 50 + return image.MinDisk } func (image *SImage) GetImageFormat() string {