fix(region): container is not started when pod's flavor changed (#20490)

This commit is contained in:
Zexi Li
2024-06-07 15:04:42 +08:00
committed by GitHub
parent 8591c6c47b
commit a0c93e3803
5 changed files with 10 additions and 6 deletions
+1 -1
View File
@@ -466,7 +466,7 @@ func (self *SBaremetalGuestDriver) RequestRebuildRootDisk(ctx context.Context, g
return nil
}
func (self *SBaremetalGuestDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict) error {
func (self *SBaremetalGuestDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict, parentTaskId string) error {
return guest.StartGueststartTask(ctx, userCred, data, "")
}
+2 -2
View File
@@ -314,8 +314,8 @@ func (self *SVirtualizedGuestDriver) ValidateCreateDataOnHost(ctx context.Contex
return input, nil
}
func (self *SVirtualizedGuestDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict) error {
return guest.StartGueststartTask(ctx, userCred, data, "")
func (self *SVirtualizedGuestDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict, parentTaskId string) error {
return guest.StartGueststartTask(ctx, userCred, data, parentTaskId)
}
func (self *SVirtualizedGuestDriver) CheckDiskTemplateOnStorage(ctx context.Context, userCred mcclient.TokenCredential, imageId string, format string, storageId string, task taskman.ITask) error {
+1 -1
View File
@@ -1044,7 +1044,7 @@ func (self *SGuest) PerformStart(
}
if self.isAllDisksReady() {
kwargs := jsonutils.Marshal(input).(*jsonutils.JSONDict)
err := self.GetDriver().PerformStart(ctx, userCred, self, kwargs)
err := self.GetDriver().PerformStart(ctx, userCred, self, kwargs, "")
return nil, err
} else {
return nil, httperrors.NewInvalidStatusError("Some disk not ready")
+1 -1
View File
@@ -128,7 +128,7 @@ type IGuestDriver interface {
OnDeleteGuestFinalCleanup(ctx context.Context, guest *SGuest, userCred mcclient.TokenCredential) error
PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *SGuest, data *jsonutils.JSONDict) error
PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *SGuest, data *jsonutils.JSONDict, parentTaskId string) error
CheckDiskTemplateOnStorage(ctx context.Context, userCred mcclient.TokenCredential, imageId string, format string, storageId string, task taskman.ITask) error
@@ -433,7 +433,11 @@ func (task *GuestChangeConfigTask) OnSyncStatusComplete(ctx context.Context, obj
guest := obj.(*models.SGuest)
if guest.Status == api.VM_READY && jsonutils.QueryBoolean(task.Params, "auto_start", false) {
task.SetStage("OnGuestStartComplete", nil)
guest.StartGueststartTask(ctx, task.UserCred, nil, task.GetTaskId())
drv := guest.GetDriver()
if err := drv.PerformStart(ctx, task.GetUserCred(), guest, nil, task.GetTaskId()); err != nil {
task.OnGuestStartCompleteFailed(ctx, guest, jsonutils.NewString(err.Error()))
return
}
} else {
dt := jsonutils.NewDict()
dt.Add(jsonutils.NewString(guest.Id), "id")