diff --git a/pkg/compute/tasks/guest_disk_snapshot_task.go b/pkg/compute/tasks/guest_disk_snapshot_task.go index 1b0b3aebf1..a6a8b05c8f 100644 --- a/pkg/compute/tasks/guest_disk_snapshot_task.go +++ b/pkg/compute/tasks/guest_disk_snapshot_task.go @@ -110,7 +110,7 @@ func (self *GuestDiskSnapshotTask) TaskComplete(ctx context.Context, guest *mode snapshotId, _ := self.Params.GetString("snapshot_id") iSnapshot, _ := models.SnapshotManager.FetchById(snapshotId) db.OpsLog.LogEvent(iSnapshot, db.ACT_SNAPSHOT_DONE, iSnapshot.GetShortDesc(ctx), self.UserCred) - logclient.AddActionLogWithStartable(self, iSnapshot, logclient.ACT_CREATE, nil, self.UserCred, true) + logclient.AddActionLogWithStartable(self, guest, logclient.ACT_DISK_CREATE_SNAPSHOT, nil, self.UserCred, true) guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId()) self.SetStage("OnSyncStatus", nil) } @@ -130,7 +130,7 @@ func (self *GuestDiskSnapshotTask) TaskFailed(ctx context.Context, guest *models self.SetStageFailed(ctx, reason) guest.SetStatus(self.UserCred, api.VM_SNAPSHOT_FAILED, reason) db.OpsLog.LogEvent(iSnapshot, db.ACT_SNAPSHOT_FAIL, reason, self.UserCred) - logclient.AddActionLogWithStartable(self, iSnapshot, logclient.ACT_CREATE, reason, self.UserCred, false) + logclient.AddActionLogWithStartable(self, guest, logclient.ACT_DISK_CREATE_SNAPSHOT, reason, self.UserCred, false) } /***************************** Snapshot Delete Task *****************************/ diff --git a/pkg/hostman/guestman/guesttasks.go b/pkg/hostman/guestman/guesttasks.go index d2f3e1e9f9..6189f20092 100644 --- a/pkg/hostman/guestman/guesttasks.go +++ b/pkg/hostman/guestman/guesttasks.go @@ -417,10 +417,11 @@ func (s *SGuestResumeTask) confirmRunning() { func (s *SGuestResumeTask) onConfirmRunning(status string) { if status == "running" || status == "paused (suspended)" || status == "paused (perlaunch)" { s.onStartRunning() + } else if strings.Contains(status, "error") { + // handle error first, results may be 'paused (internal-error)' + s.taskFailed(status) } else if strings.Contains(status, "paused") { s.Monitor.GetBlocks(s.onGetBlockInfo) - } else if strings.Contains(status, "error") { - s.taskFailed(status) } else { if time.Now().Sub(s.startTime) >= time.Second*60 { s.taskFailed("Timeout") diff --git a/pkg/util/logclient/logclient.go b/pkg/util/logclient/logclient.go index 517787d258..fc492da491 100644 --- a/pkg/util/logclient/logclient.go +++ b/pkg/util/logclient/logclient.go @@ -67,7 +67,7 @@ var WhiteList = []string{ ACT_SWITCH_TO_BACKUP, ACT_RENEW, ACT_MIGRATE, ACT_IMAGE_SAVE, ACT_RECYCLE_PREPAID, ACT_UNDO_RECYCLE_PREPAID, ACT_FETCH, ACT_VM_CHANGE_NIC, ACT_HOST_IMPORT_LIBVIRT_SERVERS, - ACT_GUEST_CREATE_FROM_IMPORT, + ACT_GUEST_CREATE_FROM_IMPORT, ACT_DISK_CREATE_SNAPSHOT, } const ( @@ -130,6 +130,7 @@ const ( ACT_EIP_ASSOCIATE = "绑定弹性IP" ACT_EIP_DISSOCIATE = "解绑弹性IP" ACT_CHANGE_BANDWIDTH = "调整带宽" + ACT_DISK_CREATE_SNAPSHOT = "磁盘创建快照" ACT_IMAGE_SAVE = "上传镜像"