mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #150 in YUNIONIO/onecloud from feature/rex-logclient-20180822-1018 to release/2.1.0
* commit '4249e2486a04bd080218b59fc12ffe1f416ad6fa': 阿里云服务器同步、全量同步操作日志。 阿里云解绑 rm log 日志接口重构;阿里云修改密码、变更配置加日志 阿里云变更配置增加日志 更改项目 接口重构,与OpsLog.LogEvent 保持一致 阿里云重装系统、开机关机、同步状态日志 阿里云虚机删除日志 阿里云创建虚机失败时记录 actionlog 增加logclient; aliyun server crud 操作 增加logclient
This commit is contained in:
@@ -21,6 +21,7 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules"
|
||||
"yunion.io/x/onecloud/pkg/util/httputils"
|
||||
"yunion.io/x/onecloud/pkg/util/logclient"
|
||||
)
|
||||
|
||||
type DBModelDispatcher struct {
|
||||
@@ -768,6 +769,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(model, logclient.ACT_CREATE, "", userCred, true)
|
||||
dispatcher.modelManager.OnCreateComplete(ctx, []IModel{model}, userCred, query, data)
|
||||
return getItemDetails(dispatcher.modelManager, model, ctx, userCred, query)
|
||||
}
|
||||
@@ -986,11 +988,13 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre
|
||||
|
||||
if err != nil {
|
||||
log.Errorf("validate update condition error: %s", err)
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, err.Error(), userCred, false)
|
||||
return nil, httperrors.NewGeneralError(err)
|
||||
}
|
||||
|
||||
dataDict, ok := data.(*jsonutils.JSONDict)
|
||||
if !ok {
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, "Invalid data JSONObject", userCred, false)
|
||||
return nil, httperrors.NewInternalServerError("Invalid data JSONObject")
|
||||
}
|
||||
|
||||
@@ -998,13 +1002,16 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre
|
||||
if len(name) > 0 {
|
||||
err = alterNameValidator(item, name)
|
||||
if err != nil {
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, err.Error(), userCred, false)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
dataDict, err = item.ValidateUpdateData(ctx, userCred, query, dataDict)
|
||||
if err != nil {
|
||||
log.Errorf("validate update data error: %s", err)
|
||||
errMsg := fmt.Sprintf("validate update data error: %s", err)
|
||||
log.Errorf(errMsg)
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, errMsg, userCred, false)
|
||||
return nil, httperrors.NewGeneralError(err)
|
||||
}
|
||||
item.PreUpdate(ctx, userCred, query, dataDict)
|
||||
@@ -1012,7 +1019,9 @@ func updateItem(manager IModelManager, item IModel, ctx context.Context, userCre
|
||||
filterData := dataDict.CopyIncludes(updateFields(manager, userCred)...)
|
||||
err = filterData.Unmarshal(item)
|
||||
if err != nil {
|
||||
log.Errorf("unmarshal fail: %s", err)
|
||||
errMsg := fmt.Sprintf("unmarshal fail: %s", err)
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, errMsg, userCred, false)
|
||||
log.Errorf(errMsg)
|
||||
return httperrors.NewGeneralError(err)
|
||||
}
|
||||
return nil
|
||||
@@ -1026,7 +1035,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(item, logclient.ACT_UPDATE, diffStr, userCred, true)
|
||||
}
|
||||
} else {
|
||||
logclient.AddActionLog(item, logclient.ACT_UPDATE, "", userCred, true)
|
||||
}
|
||||
return getItemDetails(manager, item, ctx, userCred, query)
|
||||
}
|
||||
@@ -1054,10 +1066,13 @@ func DeleteModel(ctx context.Context, userCred mcclient.TokenCredential, item IM
|
||||
return item.MarkDelete()
|
||||
})
|
||||
if err != nil {
|
||||
log.Errorf("save update error %s", err)
|
||||
msg := fmt.Sprintf("save update error %s", err)
|
||||
log.Errorf(msg)
|
||||
logclient.AddActionLog(item, logclient.ACT_DELETE, msg, userCred, false)
|
||||
return httperrors.NewGeneralError(err)
|
||||
}
|
||||
OpsLog.LogEvent(item, ACT_DELETE, item.GetShortDesc(), userCred)
|
||||
logclient.AddActionLog(item, logclient.ACT_DELETE, item.GetShortDesc(), userCred, true)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/util/logclient"
|
||||
"yunion.io/x/pkg/util/stringutils"
|
||||
"yunion.io/x/sqlchemy"
|
||||
)
|
||||
@@ -305,6 +306,7 @@ func (manager *SOpsLogManager) SyncOwner(m IModel, former *STenant, userCred mcc
|
||||
notes.Add(jsonutils.NewString(former.GetId()), "former_project_id")
|
||||
notes.Add(jsonutils.NewString(former.GetName()), "form_project")
|
||||
manager.LogEvent(m, ACT_CHANGE_OWNER, notes, userCred)
|
||||
logclient.AddActionLog(m, logclient.ACT_CHANGE_OWNER, nil, userCred, true)
|
||||
}
|
||||
|
||||
func (manager *SOpsLogManager) AllowListItems(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) bool {
|
||||
|
||||
@@ -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(model, logclient.ACT_VM_SYNC_STATUS, notes, userCred, false)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user