fix(region): avoid change to the same config sku not effective (#23202)

This commit is contained in:
屈轩
2025-09-01 11:42:55 +08:00
committed by GitHub
parent f101b4592b
commit edea56383e
6 changed files with 17 additions and 13 deletions

View File

@@ -37,8 +37,6 @@ func init() {
models.RegisterGuestDriver(&driver)
}
func (self *SBaiduGuestDriver) DoScheduleSKUFilter() bool { return false }
func (self *SBaiduGuestDriver) GetHypervisor() string {
return api.HYPERVISOR_BAIDU
}

View File

@@ -34,8 +34,6 @@ func init() {
models.RegisterGuestDriver(&driver)
}
func (self *SCucloudGuestDriver) DoScheduleSKUFilter() bool { return false }
func (self *SCucloudGuestDriver) GetHypervisor() string {
return api.HYPERVISOR_CUCLOUD
}

View File

@@ -34,8 +34,6 @@ func init() {
models.RegisterGuestDriver(&driver)
}
func (self *SKsyunGuestDriver) DoScheduleSKUFilter() bool { return false }
func (self *SKsyunGuestDriver) GetHypervisor() string {
return api.HYPERVISOR_KSYUN
}

View File

@@ -1146,7 +1146,7 @@ func (drv *SManagedVirtualizedGuestDriver) RequestChangeVmConfig(ctx context.Con
}
err := iVM.ChangeConfig(ctx, config)
if err != nil {
return nil, errors.Wrap(err, "GuestDriver.RequestChangeVmConfig.ChangeConfig")
return nil, errors.Wrap(err, "ChangeConfig")
}
err = cloudprovider.WaitCreated(time.Second*5, time.Minute*5, func() bool {
@@ -1169,7 +1169,7 @@ func (drv *SManagedVirtualizedGuestDriver) RequestChangeVmConfig(ctx context.Con
return false
})
if err != nil {
return nil, errors.Wrap(err, "GuestDriver.RequestChangeVmConfig.WaitCreated")
return nil, errors.Wrap(err, "wait config change")
}
instanceType = iVM.GetInstanceType()
@@ -1179,7 +1179,7 @@ func (drv *SManagedVirtualizedGuestDriver) RequestChangeVmConfig(ctx context.Con
return nil
})
if err != nil {
return nil, errors.Wrap(err, "GuestDriver.RequestChangeVmConfig.Update")
return nil, errors.Wrap(err, "Update")
}
}

View File

@@ -34,8 +34,6 @@ func init() {
models.RegisterGuestDriver(&driver)
}
func (self *SQingCloudGuestDriver) DoScheduleSKUFilter() bool { return false }
func (self *SQingCloudGuestDriver) GetHypervisor() string {
return api.HYPERVISOR_QINGCLOUD
}

View File

@@ -227,7 +227,13 @@ func (task *GuestChangeConfigTask) OnCreateDisksComplete(ctx context.Context, ob
return
}
if confs.CpuChanged() || confs.MemChanged() {
drv, err := guest.GetDriver()
if err != nil {
task.markStageFailed(ctx, guest, jsonutils.NewString(err.Error()))
return
}
if confs.CpuChanged() || confs.MemChanged() || (drv.DoScheduleSKUFilter() && confs.InstanceTypeChanged()) {
task.SetStage("OnGuestChangeCpuMemSpecComplete", nil)
task.startGuestChangeCpuMemSpec(ctx, guest, confs.InstanceType, confs.VcpuCount, confs.CpuSockets, confs.VmemSize)
} else {
@@ -504,7 +510,13 @@ func (task *GuestChangeConfigTask) OnSyncStatusComplete(ctx context.Context, obj
dt.Add(jsonutils.NewString(guest.Id), "id")
task.SetStageComplete(ctx, dt)
}
logclient.AddActionLogWithStartable(task, guest, logclient.ACT_VM_CHANGE_FLAVOR, "", task.UserCred, true)
confs, err := task.getChangeConfigSetting()
if err != nil {
task.markStageFailed(ctx, guest, jsonutils.NewString(err.Error()))
return
}
notes := fmt.Sprintf("instance_type: %s => %s vcpu: %d => %d mem: %d => %d", confs.Old.InstanceType, confs.InstanceType, confs.Old.VcpuCount, confs.VcpuCount, confs.Old.VmemSize, confs.VmemSize)
logclient.AddActionLogWithStartable(task, guest, logclient.ACT_VM_CHANGE_FLAVOR, notes, task.UserCred, true)
guest.EventNotify(ctx, task.UserCred, notifyclient.ActionChangeConfig)
}