mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
阿里云创建虚机失败时记录 actionlog
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user