add task failed code

This commit is contained in:
ioito
2019-07-08 17:33:10 +08:00
parent 698bb1cdd4
commit 12792083ff
3 changed files with 17 additions and 13 deletions
+11 -11
View File
@@ -238,28 +238,28 @@ func (self *SManagedVirtualizedGuestDriver) RequestAttachDisk(ctx context.Contex
}
func (self *SManagedVirtualizedGuestDriver) RequestStartOnHost(ctx context.Context, guest *models.SGuest, host *models.SHost, userCred mcclient.TokenCredential, task taskman.ITask) (jsonutils.JSONObject, error) {
ihost, e := host.GetIHost()
if e != nil {
return nil, e
ihost, err := host.GetIHost()
if err != nil {
return nil, err
}
ivm, e := ihost.GetIVMById(guest.GetExternalId())
if e != nil {
return nil, e
ivm, err := ihost.GetIVMById(guest.GetExternalId())
if err != nil {
return nil, err
}
result := jsonutils.NewDict()
if ivm.GetStatus() != api.VM_RUNNING {
if err := ivm.StartVM(ctx); err != nil {
return nil, e
} else {
task.ScheduleRun(result)
err := ivm.StartVM(ctx)
if err != nil {
return nil, err
}
task.ScheduleRun(result)
} else {
result.Add(jsonutils.NewBool(true), "is_running")
}
return result, e
return result, nil
}
func (self *SManagedVirtualizedGuestDriver) RequestDeployGuestOnHost(ctx context.Context, guest *models.SGuest, host *models.SHost, task taskman.ITask) error {
@@ -243,7 +243,7 @@ func (self *GuestChangeConfigTask) OnSyncConfigComplete(ctx context.Context, obj
func (self *GuestChangeConfigTask) OnSyncStatusComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
guest := obj.(*models.SGuest)
if guest.Status == api.VM_READY && jsonutils.QueryBoolean(self.Params, "auto_start", false) {
self.SetStage("on_guest_start_complete", nil)
self.SetStage("OnGuestStartComplete", nil)
guest.StartGueststartTask(ctx, self.UserCred, nil, self.GetTaskId())
} else {
dt := jsonutils.NewDict()
@@ -260,6 +260,10 @@ func (self *GuestChangeConfigTask) OnGuestStartComplete(ctx context.Context, obj
self.SetStageComplete(ctx, dt)
}
func (self *GuestChangeConfigTask) OnGuestStartCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
self.SetStageFailed(ctx, data.String())
}
func (self *GuestChangeConfigTask) markStageFailed(ctx context.Context, guest *models.SGuest, reason string) {
guest.SetStatus(self.UserCred, api.VM_CHANGE_FLAVOR_FAIL, reason)
db.OpsLog.LogEvent(guest, db.ACT_CHANGE_FLAVOR_FAIL, reason, self.UserCred)
+1 -1
View File
@@ -559,7 +559,7 @@ func (self *SRegion) CreateInstance(name string, imageId string, instanceType st
}
func (self *SRegion) doStartVM(instanceId string) error {
return self.instanceOperation(instanceId, "StartInstances", nil, false)
return self.instanceOperation(instanceId, "StartInstances", nil, true)
}
func (self *SRegion) doStopVM(instanceId string, isForce bool) error {