mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): container is not started when pod's flavor changed (#20488)
This commit is contained in:
@@ -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, "")
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user