mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-08-31 01:35:56 +08:00
fix: disk rebuild allow set size (#22387)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user