Skip to content

Commit

Permalink
fix: add more action log
Browse files Browse the repository at this point in the history
  • Loading branch information
wanyaoqi committed Dec 18, 2024
1 parent f96e5bf commit 7a221c5
Show file tree
Hide file tree
Showing 15 changed files with 109 additions and 3 deletions.
3 changes: 3 additions & 0 deletions pkg/compute/models/guest_sshable.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import (
cloudproxy_module "yunion.io/x/onecloud/pkg/mcclient/modules/cloudproxy"
"yunion.io/x/onecloud/pkg/util/ansible"
"yunion.io/x/onecloud/pkg/util/httputils"
"yunion.io/x/onecloud/pkg/util/logclient"
ssh_util "yunion.io/x/onecloud/pkg/util/ssh"
)

Expand Down Expand Up @@ -109,6 +110,7 @@ func (guest *SGuest) GetDetailsSshable(
}
}

logclient.AddActionLogWithContext(ctx, guest, logclient.ACT_TRYSSHABLE, nil, userCred, true)
return tryData.outputJSON(), nil
}

Expand Down Expand Up @@ -498,6 +500,7 @@ func (guest *SGuest) PerformMakeSshable(
return output, httperrors.NewGeneralError(err)
}

logclient.AddActionLogWithContext(ctx, guest, logclient.ACT_MAKESSHABLE, nil, userCred, true)
output = compute_api.GuestMakeSshableOutput{
AnsiblePlaybookId: pbModel.Id,
}
Expand Down
5 changes: 4 additions & 1 deletion pkg/compute/models/hosts.go
Original file line number Diff line number Diff line change
Expand Up @@ -4147,7 +4147,7 @@ func (self *SHost) PerformAutoMigrateOnHostDown(
} else if input.AutoMigrateOnHostDown == "disable" {
meta[api.HOSTMETA_AUTO_MIGRATE_ON_HOST_DOWN] = "disable"
}

logclient.AddActionLogWithContext(ctx, self, logclient.ACT_AUTO_MIGRATE_ON_HOST_DOWN, nil, userCred, true)
return nil, self.SetAllMetadata(ctx, meta, userCred)
}

Expand Down Expand Up @@ -5238,6 +5238,7 @@ func (self *SHost) PerformUndoConvert(ctx context.Context, userCred mcclient.Tok
db.OpsLog.LogEvent(&guest, db.ACT_DELETE, "Unconvert baremetal", userCred)
}
db.OpsLog.LogEvent(self, db.ACT_UNCONVERT_START, "", userCred)
logclient.AddActionLogWithContext(ctx, self, logclient.ACT_UNCONVERT_START, nil, userCred, true)
task, err := taskman.TaskManager.NewTask(ctx, "BaremetalUnconvertHypervisorTask", self, userCred, nil, "", "", nil)
if err != nil {
return nil, err
Expand Down Expand Up @@ -5674,6 +5675,7 @@ func (host *SHost) PerformHostExitMaintenance(ctx context.Context, userCred mccl
if err != nil {
return nil, err
}
logclient.AddSimpleActionLog(host, logclient.ACT_HOST_UNMAINTENANCE, "host unmaintenance", userCred, true)
return nil, nil
}

Expand Down Expand Up @@ -6271,6 +6273,7 @@ func (host *SHost) PerformSetReservedResourceForIsolatedDevice(
return nil, errors.Wrap(err, "update isolated device")
}
}
logclient.AddSimpleActionLog(host, logclient.ACT_SET_RESERVE_RESOURCE_FOR_ISOLATED_DEVICES, nil, userCred, true)
return nil, nil
}

Expand Down
3 changes: 3 additions & 0 deletions pkg/compute/models/reservedips.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/logclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
Expand Down Expand Up @@ -118,6 +119,7 @@ func (manager *SReservedipManager) ReserveIPWithDurationAndStatus(userCred mccli
return errors.Wrapf(httperrors.ErrConflict, "Address %s has been reserved", ip)
}
db.OpsLog.LogEvent(network, db.ACT_RESERVE_IP, ip, userCred)
logclient.AddSimpleActionLog(network, logclient.ACT_RESERVE_IP, ip, userCred, true)
return nil
}

Expand Down Expand Up @@ -177,6 +179,7 @@ func (self *SReservedip) Release(ctx context.Context, userCred mcclient.TokenCre
err := db.DeleteModel(ctx, userCred, self)
if err == nil && network != nil {
db.OpsLog.LogEvent(network, db.ACT_RELEASE_IP, self.IpAddr, userCred)
logclient.AddSimpleActionLog(network, logclient.ACT_RELEASE_IP, self.IpAddr, userCred, true)
}
return err
}
Expand Down
2 changes: 2 additions & 0 deletions pkg/compute/models/schedtags.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/util/logclient"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
Expand Down Expand Up @@ -607,6 +608,7 @@ func PerformSetResourceSchedtag(obj IModelWithSchedtag, ctx context.Context, use
if err := obj.ClearSchedDescCache(); err != nil {
log.Errorf("Resource %s/%s ClearSchedDescCache error: %v", obj.Keyword(), obj.GetId(), err)
}
logclient.AddActionLogWithContext(ctx, obj, logclient.ACT_SET_SCHED_TAG, nil, userCred, true)
return nil, nil
}

Expand Down
7 changes: 7 additions & 0 deletions pkg/compute/models/snapshots.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,13 @@ func (self *SSnapshot) getMoreDetails(out api.SnapshotDetails) api.SnapshotDetai
func (self *SSnapshot) GetShortDesc(ctx context.Context) *jsonutils.JSONDict {
res := self.SVirtualResourceBase.GetShortDesc(ctx)
res.Add(jsonutils.NewInt(int64(self.Size)), "size")
res.Add(jsonutils.NewString(self.DiskId), "disk_id")
disk, _ := self.GetDisk()
if disk != nil {
if guest := disk.GetGuest(); guest != nil {
res.Add(jsonutils.NewString(guest.Id), "guest_id")
}
}
info := self.getCloudProviderInfo()
res.Update(jsonutils.Marshal(&info))
return res
Expand Down
3 changes: 3 additions & 0 deletions pkg/compute/tasks/baremetal_unconvert_hypervisor_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ func (self *BaremetalUnconvertHypervisorTask) OnInit(ctx context.Context, obj db

func (self *BaremetalUnconvertHypervisorTask) OnGuestDeleteComplete(ctx context.Context, baremetal *models.SHost, body jsonutils.JSONObject) {
db.OpsLog.LogEvent(baremetal, db.ACT_UNCONVERT_COMPLETE, "", self.UserCred)
logclient.AddActionLogWithContext(ctx, baremetal, logclient.ACT_UNCONVERT_COMPLETE, nil, self.UserCred, true)

driver := baremetal.GetDriverWithDefault()
err := driver.FinishUnconvert(ctx, self.UserCred, baremetal)
if err != nil {
Expand All @@ -73,6 +75,7 @@ func (self *BaremetalUnconvertHypervisorTask) OnGuestDeleteComplete(ctx context.

func (self *BaremetalUnconvertHypervisorTask) OnGuestDeleteCompleteFailed(ctx context.Context, baremetal *models.SHost, body jsonutils.JSONObject) {
db.OpsLog.LogEvent(baremetal, db.ACT_UNCONVERT_FAIL, body, self.UserCred)
logclient.AddActionLogWithContext(ctx, baremetal, logclient.ACT_UNCONVERT_COMPLETE, nil, self.UserCred, false)
self.SetStage("OnFailSyncstatusComplete", nil)
baremetal.StartSyncstatus(ctx, self.UserCred, self.GetTaskId())
logclient.AddActionLogWithStartable(self, baremetal, logclient.ACT_BM_UNCONVERT_HYPER, body, self.UserCred, false)
Expand Down
1 change: 1 addition & 0 deletions pkg/compute/tasks/disk_syncstatus_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ func (self *DiskSyncstatusTask) OnInit(ctx context.Context, obj db.IStandaloneMo
}

func (self *DiskSyncstatusTask) OnDiskSyncStatusComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
logclient.AddActionLogWithContext(ctx, obj, logclient.ACT_SYNC_STATUS, nil, self.UserCred, true)
self.SetStageComplete(ctx, nil)
}

Expand Down
7 changes: 7 additions & 0 deletions pkg/compute/tasks/guest_eject_iso_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
"yunion.io/x/onecloud/pkg/compute/models"
"yunion.io/x/onecloud/pkg/util/logclient"
)

type GuestEjectISOTask struct {
Expand All @@ -48,5 +49,11 @@ func (self *GuestEjectISOTask) startEjectIso(ctx context.Context, obj db.IStanda
}

func (self *GuestEjectISOTask) OnConfigSyncComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
logclient.AddActionLogWithContext(ctx, obj, logclient.ACT_ISO_DETACH, nil, self.UserCred, true)
self.SetStageComplete(ctx, nil)
}

func (self *GuestEjectISOTask) OnConfigSyncCompleteFailed(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) {
logclient.AddActionLogWithContext(ctx, obj, logclient.ACT_ISO_DETACH, nil, self.UserCred, false)
self.SetStageFailed(ctx, nil)
}
4 changes: 4 additions & 0 deletions pkg/compute/tasks/guest_insert_iso_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
"yunion.io/x/onecloud/pkg/compute/models"
"yunion.io/x/onecloud/pkg/util/logclient"
)

type GuestInsertIsoTask struct {
Expand Down Expand Up @@ -60,6 +61,7 @@ func (self *GuestInsertIsoTask) prepareIsoImage(ctx context.Context, obj db.ISta
} else {
guest.EjectIso(self.UserCred)
db.OpsLog.LogEvent(obj, db.ACT_ISO_PREPARE_FAIL, imageId, self.UserCred)
logclient.AddActionLogWithContext(ctx, guest, logclient.ACT_ISO_ATTACH, nil, self.UserCred, false)
self.SetStageFailed(ctx, jsonutils.NewString("host no local storage cache"))
}
}
Expand All @@ -69,6 +71,7 @@ func (self *GuestInsertIsoTask) OnIsoPrepareCompleteFailed(ctx context.Context,
db.OpsLog.LogEvent(obj, db.ACT_ISO_PREPARE_FAIL, imageId, self.UserCred)
guest := obj.(*models.SGuest)
guest.EjectIso(self.UserCred)
logclient.AddActionLogWithContext(ctx, guest, logclient.ACT_ISO_ATTACH, nil, self.UserCred, false)
self.SetStageFailed(ctx, data)
}

Expand All @@ -84,6 +87,7 @@ func (self *GuestInsertIsoTask) OnIsoPrepareComplete(ctx context.Context, obj db
guest := obj.(*models.SGuest)
if guest.InsertIsoSucc(imageId, path, size, name) {
db.OpsLog.LogEvent(guest, db.ACT_ISO_ATTACH, guest.GetDetailsIso(self.UserCred), self.UserCred)
logclient.AddActionLogWithContext(ctx, guest, logclient.ACT_ISO_ATTACH, guest.GetDetailsIso(self.UserCred), self.UserCred, true)
if guest.GetDriver().NeedRequestGuestHotAddIso(ctx, guest) {
self.SetStage("OnConfigSyncComplete", nil)
boot := jsonutils.QueryBoolean(self.Params, "boot", false)
Expand Down
2 changes: 2 additions & 0 deletions pkg/compute/tasks/guest_reset_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
"yunion.io/x/onecloud/pkg/compute/models"
"yunion.io/x/onecloud/pkg/util/logclient"
)

func init() {
Expand Down Expand Up @@ -71,6 +72,7 @@ func (self *GuestHardResetTask) StartServer(ctx context.Context, guest *models.S
}

func (self *GuestHardResetTask) OnServerStartComplete(ctx context.Context, guest *models.SGuest, data jsonutils.JSONObject) {
logclient.AddActionLogWithStartable(self, guest, logclient.ACT_VM_RESTART, nil, self.GetUserCred(), true)
self.SetStageComplete(ctx, nil)
}

Expand Down
1 change: 1 addition & 0 deletions pkg/compute/tasks/guest_sync_isolated_device_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ func (self *GuestIsolatedDeviceSyncTask) OnSyncConfigCompleteFailed(ctx context.
}

func (self *GuestIsolatedDeviceSyncTask) OnStartComplete(ctx context.Context, obj *models.SGuest, data jsonutils.JSONObject) {
logclient.AddActionLogWithStartable(self, obj, logclient.ACT_VM_SYNC_ISOLATED_DEVICE, nil, self.GetUserCred(), true)
self.SetStageComplete(ctx, nil)
}

Expand Down
5 changes: 3 additions & 2 deletions pkg/compute/tasks/guest_syncstatus_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"yunion.io/x/onecloud/pkg/cloudcommon/db/taskman"
"yunion.io/x/onecloud/pkg/cloudprovider"
"yunion.io/x/onecloud/pkg/compute/models"
"yunion.io/x/onecloud/pkg/util/logclient"
)

type GuestSyncstatusTask struct {
Expand Down Expand Up @@ -93,13 +94,13 @@ func (self *GuestSyncstatusTask) OnGetStatusComplete(ctx context.Context, obj db
BlockJobsCount: int(blockJobsCount),
}
guest.PerformStatus(ctx, self.UserCred, nil, input)
logclient.AddSimpleActionLog(guest, logclient.ACT_VM_SYNC_STATUS, "", self.UserCred, true)
self.SetStageComplete(ctx, nil)
// logclient.AddActionLog(guest, logclient.ACT_VM_SYNC_STATUS, "", self.UserCred, true)
}

func (self *GuestSyncstatusTask) OnGetStatusCompleteFailed(ctx context.Context, obj db.IStandaloneModel, err jsonutils.JSONObject) {
guest := obj.(*models.SGuest)
guest.SetStatus(self.UserCred, api.VM_UNKNOWN, err.String())
logclient.AddSimpleActionLog(guest, logclient.ACT_VM_SYNC_STATUS, err, self.UserCred, false)
self.SetStageComplete(ctx, nil)
// logclient.AddActionLog(guest, logclient.ACT_VM_SYNC_STATUS, err, self.UserCred, false)
}
5 changes: 5 additions & 0 deletions pkg/keystone/models/users.go
Original file line number Diff line number Diff line change
Expand Up @@ -1000,8 +1000,10 @@ func (user *SUser) PerformJoin(
) (jsonutils.JSONObject, error) {
err := joinProjects(user, true, ctx, userCred, input)
if err != nil {
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_JOIN_PROJECT, nil, userCred, false)
return nil, errors.Wrap(err, "joinProjects")
}
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_JOIN_PROJECT, nil, userCred, true)
return nil, nil
}

Expand Down Expand Up @@ -1071,8 +1073,10 @@ func (user *SUser) PerformLeave(
) (jsonutils.JSONObject, error) {
err := leaveProjects(user, true, ctx, userCred, input)
if err != nil {
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_LEAVE_PROJECT, nil, userCred, false)
return nil, err
}
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_LEAVE_PROJECT, nil, userCred, true)
return nil, nil
}

Expand Down Expand Up @@ -1228,5 +1232,6 @@ func (user *SUser) PerformResetCredentials(
return nil, errors.Wrapf(err, "DeleteAll %s", api.RECOVERY_SECRETS_TYPE)
}
}
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_RESET_CREDENTIAL, nil, userCred, true)
return nil, nil
}
17 changes: 17 additions & 0 deletions pkg/util/logclient/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ const (
ACT_GUEST_CREATE_FROM_IMPORT = "guest_create_from_import"
ACT_GUEST_PANICKED = "guest_panicked"
ACT_HOST_MAINTAINING = "host_maintaining"
ACT_HOST_UNMAINTENANCE = "host_unmaintenance"

ACT_MKDIR = "mkdir"
ACT_DELETE_OBJECT = "delete_object"
Expand Down Expand Up @@ -238,6 +239,11 @@ const (
ACT_CONSOLE = "console"
ACT_WEBSSH = "webssh"
ACT_SET_USER_PASSWORD = "set_user_password"
ACT_MAKESSHABLE = "make_sshable"
ACT_TRYSSHABLE = "try_sshable"

ACT_ISO_ATTACH = "iso_attach"
ACT_ISO_DETACH = "iso_detach"

ACT_PANIC = "panic"

Expand Down Expand Up @@ -267,6 +273,17 @@ const (
ACT_DELETE_SECURITY_GROUP_RULE = "delete_security_group_rule"

ACT_CLEAN_PROJECT = "clean_project"
ACT_JOIN_PROJECT = "join_project"
ACT_LEAVE_PROJECT = "leave_project"

ACT_SET_SCHED_TAG = "set_sched_tag"
ACT_RESET_CREDENTIAL = "reset_credential"

ACT_AUTO_MIGRATE_ON_HOST_DOWN = "auto_migrate_on_host"
ACT_SET_RESERVE_RESOURCE_FOR_ISOLATED_DEVICES = "set_reserve_resource_for_isolated_devices"

ACT_UNCONVERT_START = "unconverting"
ACT_UNCONVERT_COMPLETE = "unconverted"

ACT_COLLECT_METRICS = "collect_metrics"

Expand Down
47 changes: 47 additions & 0 deletions pkg/util/logclient/consts_i18n.go
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,10 @@ func init() {
EN("Host Maintaining").
CN("宿主机进入维护模式"),
)
t.Set(ACT_HOST_UNMAINTENANCE, i18n.NewTableEntry().
EN("Host Unmaintenance").
CN("宿主机退出维护模式"),
)

t.Set(ACT_MKDIR, i18n.NewTableEntry().
EN("Mkdir").
Expand Down Expand Up @@ -1365,6 +1369,16 @@ func init() {
CN("WebSSH"),
)

o.Set(ACT_TRYSSHABLE, i18n.NewTableEntry().
EN("Try Sshable").
CN("探测免密登录"),
)

o.Set(ACT_MAKESSHABLE, i18n.NewTableEntry().
EN("Make Sshable").
CN("设置免密登录"),
)

o.Set(ACT_CLOUDACCOUNT_SYNC_NETWORK, i18n.NewTableEntry().
EN("Probe Network").
CN("探测网络配置"),
Expand Down Expand Up @@ -1399,4 +1413,37 @@ func init() {
EN("Disk Change Storage").
CN("磁盘更换存储"),
)

o.Set(ACT_JOIN_PROJECT, i18n.NewTableEntry().
EN("Join Project").
CN("加入项目"),
)
o.Set(ACT_LEAVE_PROJECT, i18n.NewTableEntry().
EN("Leave Project").
CN("移除项目"),
)
o.Set(ACT_RESET_CREDENTIAL, i18n.NewTableEntry().
EN("Reset Credential").
CN("重置账号密码"),
)
o.Set(ACT_SET_SCHED_TAG, i18n.NewTableEntry().
EN("Set Scheduler Tag").
CN("设置调度标签"),
)
o.Set(ACT_AUTO_MIGRATE_ON_HOST_DOWN, i18n.NewTableEntry().
EN("Auto Migrate On Host Down").
CN("宕机自动迁移"),
)
o.Set(ACT_SET_RESERVE_RESOURCE_FOR_ISOLATED_DEVICES, i18n.NewTableEntry().
EN("Set Reserve Resource For Isolated Devices").
CN("透传设备设置预留资源"),
)
o.Set(ACT_UNCONVERT_START, i18n.NewTableEntry().
EN("Start Unconvert hypervisor").
CN("开始回收为物理机"),
)
o.Set(ACT_UNCONVERT_COMPLETE, i18n.NewTableEntry().
EN("Unconvert Hypervisor Complete").
CN("回收为物理机"),
)
}

0 comments on commit 7a221c5

Please sign in to comment.