From 05ebba4ab605863c72df9fca2c089da14c01cd46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E8=BD=A9?= Date: Wed, 5 Dec 2018 14:42:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=B2=E7=AA=81=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/tasks/disk_resize_task.go | 7 ++++--- pkg/compute/tasks/disk_save_task.go | 1 + pkg/compute/tasks/guest_deploy_task.go | 9 +++++++++ pkg/compute/tasks/guest_rebuild_root_task.go | 1 + pkg/compute/tasks/guest_start_task.go | 10 +++------- pkg/compute/tasks/guest_suspend_task.go | 1 + 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/pkg/compute/tasks/disk_resize_task.go b/pkg/compute/tasks/disk_resize_task.go index 3fff258569..ad672b14ad 100644 --- a/pkg/compute/tasks/disk_resize_task.go +++ b/pkg/compute/tasks/disk_resize_task.go @@ -107,8 +107,9 @@ func (self *DiskResizeTask) OnDiskResizeComplete(ctx context.Context, disk *mode self.finalReleasePendingUsage(ctx) } -func (self *DiskResizeTask) OnDiskResizeCompleteFailed(ctx context.Context, disk *models.SDisk, reason error) { - disk.SetDiskReady(ctx, self.GetUserCred(), reason.Error()) +func (self *DiskResizeTask) OnDiskResizeCompleteFailed(ctx context.Context, disk *models.SDisk, data jsonutils.JSONObject) { + disk.SetDiskReady(ctx, self.GetUserCred(), data.String()) db.OpsLog.LogEvent(disk, db.ACT_RESIZE_FAIL, disk.GetShortDesc(), self.UserCred) - logclient.AddActionLog(disk, logclient.ACT_RESIZE, reason.Error(), self.UserCred, false) + logclient.AddActionLog(disk, logclient.ACT_RESIZE, data.String(), self.UserCred, false) + self.SetStageFailed(ctx, data.String()) } diff --git a/pkg/compute/tasks/disk_save_task.go b/pkg/compute/tasks/disk_save_task.go index 8990ae8ff2..28f4fb3209 100644 --- a/pkg/compute/tasks/disk_save_task.go +++ b/pkg/compute/tasks/disk_save_task.go @@ -66,6 +66,7 @@ func (self *DiskSaveTask) StartBackupDisk(ctx context.Context, disk *models.SDis func (self *DiskSaveTask) OnDiskBackupCompleteFailed(ctx context.Context, disk *models.SDisk, data jsonutils.JSONObject) { disk.SetDiskReady(ctx, self.GetUserCred(), data.String()) db.OpsLog.LogEvent(disk, db.ACT_SAVE_FAIL, data.String(), self.GetUserCred()) + self.SetStageFailed(ctx, data.String()) } func (self *DiskSaveTask) OnDiskBackupComplete(ctx context.Context, disk *models.SDisk, data *jsonutils.JSONDict) { diff --git a/pkg/compute/tasks/guest_deploy_task.go b/pkg/compute/tasks/guest_deploy_task.go index b2156a763a..144756548c 100644 --- a/pkg/compute/tasks/guest_deploy_task.go +++ b/pkg/compute/tasks/guest_deploy_task.go @@ -99,12 +99,21 @@ func (self *GuestDeployTask) OnDeployGuestComplete(ctx context.Context, obj db.I func (self *GuestDeployTask) OnDeployGuestCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_DEPLOY_FAILED, data.String()) + self.SetStageFailed(ctx, data.String()) } func (self *GuestDeployTask) OnDeployStartGuestComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } +func (self *GuestDeployTask) OnDeployStartGuestCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { + self.SetStageFailed(ctx, data.String()) +} + func (self *GuestDeployTask) OnDeployGuestSyncstatusComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { self.SetStageComplete(ctx, nil) } + +func (self *GuestDeployTask) OnDeployGuestSyncstatusCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { + self.SetStageFailed(ctx, data.String()) +} diff --git a/pkg/compute/tasks/guest_rebuild_root_task.go b/pkg/compute/tasks/guest_rebuild_root_task.go index 65fd05f6bc..5ff2969281 100644 --- a/pkg/compute/tasks/guest_rebuild_root_task.go +++ b/pkg/compute/tasks/guest_rebuild_root_task.go @@ -111,6 +111,7 @@ func (self *GuestRebuildRootTask) OnRebuildRootDiskCompleteFailed(ctx context.Co db.OpsLog.LogEvent(guest, db.ACT_REBUILD_ROOT_FAIL, data, self.UserCred) guest.SetStatus(self.UserCred, models.VM_REBUILD_ROOT_FAIL, "") logclient.AddActionLog(guest, logclient.ACT_VM_REBUILD, data, self.UserCred, false) + self.SetStageFailed(ctx, data.String()) } func (self *GuestRebuildRootTask) OnSyncStatusComplete(ctx context.Context, guest *models.SGuest, data jsonutils.JSONObject) { diff --git a/pkg/compute/tasks/guest_start_task.go b/pkg/compute/tasks/guest_start_task.go index 99dae67cf3..55090fa0d3 100644 --- a/pkg/compute/tasks/guest_start_task.go +++ b/pkg/compute/tasks/guest_start_task.go @@ -45,7 +45,7 @@ func (self *GuestStartTask) startStart(ctx context.Context, guest *models.SGuest guest.SetStatus(self.UserCred, models.VM_STARTING, "") result, err := guest.GetDriver().RequestStartOnHost(ctx, guest, host, self.UserCred, self) if err != nil { - self.onStartGuestFailed(ctx, guest, err) + self.OnStartCompleteFailed(ctx, guest, jsonutils.NewString(err.Error())) } else { if result != nil && jsonutils.QueryBoolean(result, "is_running", false) { guest.SetStatus(self.UserCred, models.VM_RUNNING, "start") @@ -70,14 +70,10 @@ func (self *GuestStartTask) OnGuestSyncstatusAfterStart(ctx context.Context, obj func (self *GuestStartTask) OnStartCompleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) { guest := obj.(*models.SGuest) + guest.SetStatus(self.UserCred, models.VM_START_FAILED, err.String()) db.OpsLog.LogEvent(guest, db.ACT_START_FAIL, err, self.UserCred) -} - -func (self *GuestStartTask) onStartGuestFailed(ctx context.Context, guest *models.SGuest, err error) { - guest.SetStatus(self.UserCred, models.VM_START_FAILED, err.Error()) - self.SetStageFailed(ctx, err.Error()) - self.OnStartCompleteFailed(ctx, guest, jsonutils.NewString(err.Error())) logclient.AddActionLog(guest, logclient.ACT_VM_START, err, self.UserCred, false) + self.SetStageFailed(ctx, err.String()) } func (self *GuestStartTask) taskComplete(ctx context.Context, guest *models.SGuest) { diff --git a/pkg/compute/tasks/guest_suspend_task.go b/pkg/compute/tasks/guest_suspend_task.go index 13023f12f3..54c192ea3f 100644 --- a/pkg/compute/tasks/guest_suspend_task.go +++ b/pkg/compute/tasks/guest_suspend_task.go @@ -40,6 +40,7 @@ func (self *GuestSuspendTask) OnSuspendCompleteFailed(ctx context.Context, obj d guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_RUNNING, "") db.OpsLog.LogEvent(guest, db.ACT_STOP_FAIL, err.String(), self.UserCred) + self.SetStageFailed(ctx, err.String()) } func (self *GuestSuspendTask) OnSuspendGuestFail(guest *models.SGuest, reason string) {