fix: disk rebuild allow set size (#22387)

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
Jian Qiu
2025-04-13 09:55:36 +08:00
committed by GitHub
parent 6a2ad39f3d
commit d5151f0e32
3 changed files with 16 additions and 1 deletions
+1
View File
@@ -354,6 +354,7 @@ type DiskSnapshotpolicyInput struct {
type DiskRebuildInput struct {
BackupId *string `json:"backup_id,allowempty"`
TemplateId *string `json:"template_id,allowempty"`
Size *string `json:"size,allowempty"`
}
type DiskFsExt4Features struct {
+12
View File
@@ -30,6 +30,7 @@ import (
"yunion.io/x/pkg/tristate"
"yunion.io/x/pkg/util/billing"
"yunion.io/x/pkg/util/compare"
"yunion.io/x/pkg/util/fileutils"
"yunion.io/x/pkg/util/pinyinutils"
"yunion.io/x/pkg/util/rbacscope"
"yunion.io/x/pkg/utils"
@@ -3310,6 +3311,14 @@ func (disk *SDisk) resetDiskinfo(
input.BackupId = &backup.Id
}
}
diskSize := 0
if input.Size != nil {
size, err := fileutils.GetSizeMb(*input.Size, 'M', 1024)
if err != nil {
return errors.Wrapf(err, "GetSizeMb %s", *input.Size)
}
diskSize = size
}
notes, err := db.Update(disk, func() error {
if input.TemplateId != nil {
disk.TemplateId = *input.TemplateId
@@ -3317,6 +3326,9 @@ func (disk *SDisk) resetDiskinfo(
if input.BackupId != nil {
disk.BackupId = *input.BackupId
}
if diskSize > 0 {
disk.DiskSize = diskSize
}
return nil
})
if err != nil {
+3 -1
View File
@@ -108,7 +108,9 @@ func (o *DiskResetTemplateOptions) Params() (jsonutils.JSONObject, error) {
type DiskRebuildOptions struct {
options.ResourceIdOptions
BackupId string `help:"disk backup id" json:"backup_id"`
BackupId string `help:"disk backup id" json:"backup_id"`
TemplateId string `help:"disk template id" json:"template_id"`
Size string `help:"disk size in MB" json:"size"`
}
func (o *DiskRebuildOptions) Params() (jsonutils.JSONObject, error) {