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

This commit is contained in:
Zexi Li
2024-06-06 10:03:44 +08:00
committed by GitHub
parent 9385e68109
commit bf67b58b7b
6 changed files with 12 additions and 8 deletions
+1 -1
View File
@@ -471,7 +471,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
@@ -247,8 +247,8 @@ func (p *SPodDriver) RequestGuestHotAddIso(ctx context.Context, guest *models.SG
return task.ScheduleRun(nil)
}
func (p *SPodDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict) error {
task, err := taskman.TaskManager.NewTask(ctx, "PodStartTask", guest, userCred, nil, "", "", nil)
func (p *SPodDriver) PerformStart(ctx context.Context, userCred mcclient.TokenCredential, guest *models.SGuest, data *jsonutils.JSONDict, parentTaskId string) error {
task, err := taskman.TaskManager.NewTask(ctx, "PodStartTask", guest, userCred, nil, parentTaskId, "", nil)
if err != nil {
return errors.Wrap(err, "New PodStartTask")
}
+2 -2
View File
@@ -318,8 +318,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
@@ -1129,7 +1129,7 @@ func (self *SGuest) PerformStart(
if err != nil {
return nil, errors.Wrapf(err, "GetDriver")
}
err = driver.PerformStart(ctx, userCred, self, kwargs)
err = driver.PerformStart(ctx, userCred, self, kwargs, "")
return nil, err
} else {
return nil, httperrors.NewInvalidStatusError("Some disk not ready")
+1 -1
View File
@@ -129,7 +129,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
@@ -453,7 +453,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")