diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index 89d6cd54dd..fa4ae37536 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -741,7 +741,7 @@ func (dispatcher *DBModelDispatcher) Create(ctx context.Context, query jsonutils return nil, httperrors.NewGeneralError(err) } OpsLog.LogEvent(model, ACT_CREATE, model.GetShortDesc(), userCred) - logclient.AddActionLog(ctx, userCred, logclient.ACT_CREATE, "", model, "") + logclient.AddActionLog(userCred, logclient.ACT_CREATE, "", model, "") dispatcher.modelManager.OnCreateComplete(ctx, []IModel{model}, userCred, query, data) return getItemDetails(dispatcher.modelManager, model, ctx, userCred, query) } @@ -960,13 +960,13 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre if err != nil { log.Errorf("validate update condition error: %s", err) - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, err.Error()) + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, err.Error()) return nil, httperrors.NewGeneralError(err) } dataDict, ok := data.(*jsonutils.JSONDict) if !ok { - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, "Invalid data JSONObject") + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, "Invalid data JSONObject") return nil, httperrors.NewInternalServerError("Invalid data JSONObject") } @@ -974,7 +974,7 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre if len(name) > 0 { err = alterNameValidator(item, name) if err != nil { - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, err.Error()) + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, err.Error()) return nil, err } } @@ -983,7 +983,7 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre if err != nil { errMsg := fmt.Sprintf("validate update data error: %s", err) log.Errorf(errMsg) - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, errMsg) + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, errMsg) return nil, httperrors.NewGeneralError(err) } item.PreUpdate(ctx, userCred, query, dataDict) @@ -993,7 +993,7 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre err = filterData.Unmarshal(item) if err != nil { errMsg := fmt.Sprintf("unmarshal fail: %s", err) - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, errMsg) + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, errMsg) log.Errorf(errMsg) return httperrors.NewGeneralError(err) } @@ -1008,10 +1008,10 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre diffStr := sqlchemy.UpdateDiffString(diff) if len(diffStr) > 0 { OpsLog.LogEvent(item, ACT_UPDATE, diffStr, userCred) - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, "", item, diffStr) + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, "", item, diffStr) } } - logclient.AddActionLog(ctx, userCred, logclient.ACT_UPDATE, dataDict.String(), item, "") + logclient.AddActionLog(userCred, logclient.ACT_UPDATE, dataDict.String(), item, "") return getItemDetails(manager, item, ctx, userCred, query) } @@ -1040,11 +1040,11 @@ func DeleteModel(ctx context.Context, userCred mcclient.TokenCredential, item IM if err != nil { msg := fmt.Sprintf("save update error %s", err) log.Errorf(msg) - logclient.AddActionLog(ctx, userCred, logclient.ACT_DELETE, "", item, msg) + logclient.AddActionLog(userCred, logclient.ACT_DELETE, "", item, msg) return httperrors.NewGeneralError(err) } OpsLog.LogEvent(item, ACT_DELETE, item.GetShortDesc(), userCred) - logclient.AddActionLog(ctx, userCred, logclient.ACT_DELETE, "", item, "") + logclient.AddActionLog(userCred, logclient.ACT_DELETE, "", item, "") return nil } diff --git a/pkg/cloudcommon/db/statusstandalone.go b/pkg/cloudcommon/db/statusstandalone.go index cc7ea853a3..588bd88999 100644 --- a/pkg/cloudcommon/db/statusstandalone.go +++ b/pkg/cloudcommon/db/statusstandalone.go @@ -3,9 +3,11 @@ package db import ( "context" "fmt" + "strings" "yunion.io/x/jsonutils" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/util/logclient" ) type SStatusStandaloneResourceBase struct { @@ -40,6 +42,9 @@ func (model *SStatusStandaloneResourceBase) SetStatus(userCred mcclient.TokenCre notes = fmt.Sprintf("%s: %s", notes, reason) } OpsLog.LogEvent(model, ACT_UPDATE_STATUS, notes, userCred) + if strings.Contains(notes, "fail") { + logclient.AddActionLog(userCred, logclient.ACT_VM_SYNC_STATUS, "", model, notes) + } } return nil } diff --git a/pkg/compute/tasks/guest_create_task.go b/pkg/compute/tasks/guest_create_task.go index a57f49afca..9f104a12ef 100644 --- a/pkg/compute/tasks/guest_create_task.go +++ b/pkg/compute/tasks/guest_create_task.go @@ -11,6 +11,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/compute/models" + "yunion.io/x/onecloud/pkg/util/logclient" ) type GuestCreateTask struct { @@ -49,6 +50,7 @@ func (self *GuestCreateTask) OnDiskPreparedFailed(ctx context.Context, obj db.IS guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_DISK_FAILED, "allocation failed") db.OpsLog.LogEvent(guest, db.ACT_ALLOCATE_FAIL, data, self.UserCred) + logclient.AddActionLog(self.UserCred, logclient.ACT_ALLOCATE, "", guest, data.String()) notifyclient.NotifySystemError(guest.Id, guest.Name, models.VM_DISK_FAILED, data.String()) } @@ -76,6 +78,7 @@ func (self *GuestCreateTask) OnCdromPreparedFailed(ctx context.Context, obj db.I guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_DISK_FAILED, "") db.OpsLog.LogEvent(guest, db.ACT_ALLOCATE_FAIL, data, self.UserCred) + logclient.AddActionLog(self.UserCred, logclient.ACT_ALLOCATE, "", guest, data.String()) notifyclient.NotifySystemError(guest.Id, guest.Name, models.VM_DISK_FAILED, fmt.Sprintf("cdrom_failed %s", data)) } @@ -102,6 +105,7 @@ func (self *GuestCreateTask) OnDeployGuestDescCompleteFailed(ctx context.Context guest := obj.(*models.SGuest) guest.SetStatus(self.UserCred, models.VM_DEPLOY_FAILED, "deploy_failed") db.OpsLog.LogEvent(guest, db.ACT_ALLOCATE_FAIL, data, self.UserCred) + logclient.AddActionLog(self.UserCred, logclient.ACT_ALLOCATE, "", guest, data.String()) notifyclient.NotifySystemError(guest.Id, guest.Name, models.VM_DEPLOY_FAILED, data.String()) }