diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index df871f5bd6..aec1b351c8 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -861,7 +861,7 @@ func (dispatcher *DBModelDispatcher) Create(ctx context.Context, query jsonutils log.Errorf("fail to doCreateItem %s", err) return nil, httperrors.NewGeneralError(err) } - OpsLog.LogEvent(model, ACT_CREATE, model.GetShortDesc(), userCred) + OpsLog.LogEvent(model, ACT_CREATE, model.GetShortDesc(ctx), 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) @@ -1210,8 +1210,8 @@ func DeleteModel(ctx context.Context, userCred mcclient.TokenCredential, item IM 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) + OpsLog.LogEvent(item, ACT_DELETE, item.GetShortDesc(ctx), userCred) + logclient.AddActionLog(item, logclient.ACT_DELETE, item.GetShortDesc(ctx), userCred, true) return nil } @@ -1271,7 +1271,7 @@ func (dispatcher *DBModelDispatcher) Delete(ctx context.Context, idstr string, q } else if err != nil { return nil, httperrors.NewGeneralError(err) } - log.Debugf("Delete %s", model.GetShortDesc()) + // log.Debugf("Delete %s", model.GetShortDesc(ctx)) lockman.LockObject(ctx, model) defer lockman.ReleaseObject(ctx, model) diff --git a/pkg/cloudcommon/db/db_joint_dispatcher.go b/pkg/cloudcommon/db/db_joint_dispatcher.go index cfee819025..f98143e9ac 100644 --- a/pkg/cloudcommon/db/db_joint_dispatcher.go +++ b/pkg/cloudcommon/db/db_joint_dispatcher.go @@ -174,7 +174,7 @@ func attachItems(dispatcher *DBJointModelDispatcher, master IStandaloneModel, sl if err != nil { return nil, httperrors.NewGeneralError(err) } - OpsLog.LogAttachEvent(master, slave, userCred, jsonutils.Marshal(item)) + OpsLog.LogAttachEvent(ctx, master, slave, userCred, jsonutils.Marshal(item)) dispatcher.modelManager.OnCreateComplete(ctx, []IModel{item}, userCred, query, data) return getItemDetails(dispatcher.JointModelManager(), item, ctx, userCred, query) } @@ -238,7 +238,7 @@ func (dispatcher *DBJointModelDispatcher) Detach(ctx context.Context, id1 string defer lockman.ReleaseJointObject(ctx, master, slave) obj, err := deleteItem(dispatcher.JointModelManager(), item, ctx, userCred, query, data) if err == nil { - OpsLog.LogDetachEvent(item.Master(), item.Slave(), userCred, jsonutils.Marshal(item)) + OpsLog.LogDetachEvent(ctx, item.Master(), item.Slave(), userCred, jsonutils.Marshal(item)) } return obj, err } @@ -250,7 +250,7 @@ func DetachJoint(ctx context.Context, userCred mcclient.TokenCredential, item IJ } err = item.Delete(ctx, userCred) if err == nil { - OpsLog.LogDetachEvent(item.Master(), item.Slave(), userCred, item.GetShortDesc()) + OpsLog.LogDetachEvent(ctx, item.Master(), item.Slave(), userCred, item.GetShortDesc(ctx)) } return err } diff --git a/pkg/cloudcommon/db/interface.go b/pkg/cloudcommon/db/interface.go index aefec45f8b..f66e83c85f 100644 --- a/pkg/cloudcommon/db/interface.go +++ b/pkg/cloudcommon/db/interface.go @@ -75,7 +75,7 @@ type IModel interface { GetModelManager() IModelManager SetModelManager(IModelManager) - GetShortDesc() *jsonutils.JSONDict + GetShortDesc(ctx context.Context) *jsonutils.JSONDict // list hooks GetCustomizeColumns(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) *jsonutils.JSONDict diff --git a/pkg/cloudcommon/db/modelbase.go b/pkg/cloudcommon/db/modelbase.go index 1af11f2982..fae0c958e1 100644 --- a/pkg/cloudcommon/db/modelbase.go +++ b/pkg/cloudcommon/db/modelbase.go @@ -194,7 +194,7 @@ func (model *SModelBase) GetModelManager() IModelManager { return model.manager } -func (model *SModelBase) GetShortDesc() *jsonutils.JSONDict { +func (model *SModelBase) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { desc := jsonutils.NewDict() desc.Add(jsonutils.NewString(model.Keyword()), "res_name") return desc diff --git a/pkg/cloudcommon/db/opslog.go b/pkg/cloudcommon/db/opslog.go index 70cab84d75..a1e703fe9a 100644 --- a/pkg/cloudcommon/db/opslog.go +++ b/pkg/cloudcommon/db/opslog.go @@ -242,8 +242,8 @@ func (manager *SOpsLogManager) LogEvent(model IModel, action string, notes inter } } -func combineNotes(m2 IModel, notes jsonutils.JSONObject) *jsonutils.JSONDict { - desc := m2.GetShortDesc() +func combineNotes(ctx context.Context, m2 IModel, notes jsonutils.JSONObject) *jsonutils.JSONDict { + desc := m2.GetShortDesc(ctx) if notes != nil { if notesDict, ok := notes.(*jsonutils.JSONDict); ok { notesMap, _ := notesDict.GetMap() @@ -266,22 +266,22 @@ func combineNotes(m2 IModel, notes jsonutils.JSONObject) *jsonutils.JSONDict { return desc } -func (manager *SOpsLogManager) logOneJointEvent(m1, m2 IModel, event string, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { - nn := combineNotes(m2, notes) +func (manager *SOpsLogManager) logOneJointEvent(ctx context.Context, m1, m2 IModel, event string, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { + nn := combineNotes(ctx, m2, notes) manager.LogEvent(m1, event, nn, userCred) } -func (manager *SOpsLogManager) logJoinEvent(m1, m2 IModel, event string, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { - manager.logOneJointEvent(m1, m2, event, userCred, notes) - manager.logOneJointEvent(m2, m1, event, userCred, notes) +func (manager *SOpsLogManager) logJoinEvent(ctx context.Context, m1, m2 IModel, event string, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { + manager.logOneJointEvent(ctx, m1, m2, event, userCred, notes) + manager.logOneJointEvent(ctx, m2, m1, event, userCred, notes) } -func (manager *SOpsLogManager) LogAttachEvent(m1, m2 IModel, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { - manager.logJoinEvent(m1, m2, ACT_ATTACH, userCred, notes) +func (manager *SOpsLogManager) LogAttachEvent(ctx context.Context, m1, m2 IModel, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { + manager.logJoinEvent(ctx, m1, m2, ACT_ATTACH, userCred, notes) } -func (manager *SOpsLogManager) LogDetachEvent(m1, m2 IModel, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { - manager.logJoinEvent(m1, m2, ACT_DETACH, userCred, notes) +func (manager *SOpsLogManager) LogDetachEvent(ctx context.Context, m1, m2 IModel, userCred mcclient.TokenCredential, notes jsonutils.JSONObject) { + manager.logJoinEvent(ctx, m1, m2, ACT_DETACH, userCred, notes) } func (manager *SOpsLogManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (*sqlchemy.SQuery, error) { diff --git a/pkg/cloudcommon/db/standalone.go b/pkg/cloudcommon/db/standalone.go index 93b5642bd2..fbba8a4951 100644 --- a/pkg/cloudcommon/db/standalone.go +++ b/pkg/cloudcommon/db/standalone.go @@ -127,8 +127,8 @@ func (model *SStandaloneResourceBase) GetName() string { return model.Name } -func (model *SStandaloneResourceBase) GetShortDesc() *jsonutils.JSONDict { - desc := model.SResourceBase.GetShortDesc() +func (model *SStandaloneResourceBase) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := model.SResourceBase.GetShortDesc(ctx) desc.Add(jsonutils.NewString(model.GetName()), "name") desc.Add(jsonutils.NewString(model.GetId()), "id") return desc diff --git a/pkg/cloudcommon/db/virtualresource.go b/pkg/cloudcommon/db/virtualresource.go index 3cb4a43236..82565fcd17 100644 --- a/pkg/cloudcommon/db/virtualresource.go +++ b/pkg/cloudcommon/db/virtualresource.go @@ -300,3 +300,13 @@ func (model *SVirtualResourceBase) CancelPendingDelete(ctx context.Context, user }) return err } + +func (model *SVirtualResourceBase) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := model.SStatusStandaloneResourceBase.GetShortDesc(ctx) + desc.Add(jsonutils.NewString(model.ProjectId), "owner_tenant_id") + tc, _ := TenantCacheManager.FetchTenantById(ctx, model.ProjectId) + if tc != nil { + desc.Add(jsonutils.NewString(tc.GetName()), "owner_tenant") + } + return desc +} diff --git a/pkg/compute/guestdrivers/baremetals.go b/pkg/compute/guestdrivers/baremetals.go index c775c17df4..22b897c805 100644 --- a/pkg/compute/guestdrivers/baremetals.go +++ b/pkg/compute/guestdrivers/baremetals.go @@ -340,7 +340,7 @@ func (self *SBaremetalGuestDriver) OnGuestDeployTaskDataReceived(ctx context.Con } db.OpsLog.LogEvent(disk, db.ACT_UPDATE_STATUS, notes, task.GetUserCred()) logclient.AddActionLog(disk, logclient.ACT_VM_SYNC_STATUS, nil, task.GetUserCred(), false) - db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(), task.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(ctx), task.GetUserCred()) if disks[i].Contains("dev") { dev, _ := disks[i].GetString("dev") disk.SetMetadata(ctx, "dev", dev, task.GetUserCred()) diff --git a/pkg/compute/guestdrivers/base.go b/pkg/compute/guestdrivers/base.go index 2c62d65481..c3515f8c06 100644 --- a/pkg/compute/guestdrivers/base.go +++ b/pkg/compute/guestdrivers/base.go @@ -61,7 +61,7 @@ func (self *SBaseGuestDriver) OnGuestCreateTaskComplete(ctx context.Context, gue if len(duration) > 0 { bc, err := billing.ParseBillingCycle(duration) if err == nil && guest.ExpiredAt.IsZero() { - guest.SaveRenewInfo(task.GetUserCred(), &bc, nil) + guest.SaveRenewInfo(ctx, task.GetUserCred(), &bc, nil) } } if jsonutils.QueryBoolean(task.GetParams(), "auto_start", false) { diff --git a/pkg/compute/guestdrivers/managedvirtual.go b/pkg/compute/guestdrivers/managedvirtual.go index 6082eff953..5588a12399 100644 --- a/pkg/compute/guestdrivers/managedvirtual.go +++ b/pkg/compute/guestdrivers/managedvirtual.go @@ -405,7 +405,7 @@ func (self *SManagedVirtualizedGuestDriver) OnGuestDeployTaskDataReceived(ctx co log.Errorf(msg) break } - db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(), task.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(ctx), task.GetUserCred()) guestdisk := guest.GetGuestDisk(disk.Id) _, err = guestdisk.GetModelManager().TableSpec().Update(guestdisk, func() error { guestdisk.Driver = diskInfo[i].Driver @@ -439,7 +439,7 @@ func (self *SManagedVirtualizedGuestDriver) OnGuestDeployTaskDataReceived(ctx co exp, err := data.GetTime("expired_at") if err == nil && !guest.IsPrepaidRecycle() { - guest.SaveRenewInfo(task.GetUserCred(), nil, &exp) + guest.SaveRenewInfo(ctx, task.GetUserCred(), nil, &exp) } guest.SaveDeployInfo(ctx, task.GetUserCred(), data) diff --git a/pkg/compute/models/disks.go b/pkg/compute/models/disks.go index 8c6582bfc1..4847e24615 100644 --- a/pkg/compute/models/disks.go +++ b/pkg/compute/models/disks.go @@ -1012,7 +1012,7 @@ func (manager *SDiskManager) newFromCloudDisk(ctx context.Context, userCred mccl } } - db.OpsLog.LogEvent(&disk, db.ACT_SYNC_CLOUD_DISK, disk.GetShortDesc(), userCred) + db.OpsLog.LogEvent(&disk, db.ACT_SYNC_CLOUD_DISK, disk.GetShortDesc(ctx), userCred) return &disk, nil } @@ -1415,8 +1415,8 @@ func (self *SDisk) ClearHostSchedCache() error { return nil } -func (self *SDisk) GetShortDesc() *jsonutils.JSONDict { - desc := self.SSharableVirtualResourceBase.GetShortDesc() +func (self *SDisk) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SSharableVirtualResourceBase.GetShortDesc(ctx) desc.Add(jsonutils.NewInt(int64(self.DiskSize)), "size") storage := self.GetStorage() if storage != nil { @@ -1562,7 +1562,7 @@ func (disk *SDisk) StratCreateBackupTask(ctx context.Context, userCred mcclient. return nil } -func (self *SDisk) SaveRenewInfo(userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { +func (self *SDisk) SaveRenewInfo(ctx context.Context, userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { _, err := self.GetModelManager().TableSpec().Update(self, func() error { if self.BillingType != BILLING_TYPE_PREPAID { self.BillingType = BILLING_TYPE_PREPAID @@ -1579,6 +1579,6 @@ func (self *SDisk) SaveRenewInfo(userCred mcclient.TokenCredential, bc *billing. log.Errorf("Update error %s", err) return err } - db.OpsLog.LogEvent(self, db.ACT_RENEW, self.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_RENEW, self.GetShortDesc(ctx), userCred) return nil } diff --git a/pkg/compute/models/elasticips.go b/pkg/compute/models/elasticips.go index c8dc5ad80a..afda303980 100644 --- a/pkg/compute/models/elasticips.go +++ b/pkg/compute/models/elasticips.go @@ -161,8 +161,8 @@ func (self *SElasticip) GetRegion() *SCloudregion { return CloudregionManager.FetchRegionById(self.CloudregionId) } -func (self *SElasticip) GetShortDesc() *jsonutils.JSONDict { - desc := self.SVirtualResourceBase.GetShortDesc() +func (self *SElasticip) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SVirtualResourceBase.GetShortDesc(ctx) desc.Add(jsonutils.NewString(self.ChargeType), "charge_type") @@ -228,7 +228,7 @@ func (manager *SElasticipManager) SyncEips(ctx context.Context, userCred mcclien } } for i := 0; i < len(added); i += 1 { - _, err := manager.newFromCloudEip(userCred, added[i], region, projectId) + _, err := manager.newFromCloudEip(ctx, userCred, added[i], region, projectId) if err != nil { syncResult.AddError(err) } else { @@ -264,7 +264,7 @@ func (self *SElasticip) SyncInstanceWithCloudEip(ctx context.Context, userCred m log.Errorf("fail to find vm by external ID %s", vmExtId) return err } - err = self.AssociateVM(userCred, newVM.(*SGuest)) + err = self.AssociateVM(ctx, userCred, newVM.(*SGuest)) if err != nil { log.Errorf("fail to associate with new vm %s", err) return err @@ -299,7 +299,7 @@ func (self *SElasticip) SyncWithCloudEip(userCred mcclient.TokenCredential, ext return err } -func (manager *SElasticipManager) newFromCloudEip(userCred mcclient.TokenCredential, extEip cloudprovider.ICloudEIP, region *SCloudregion, projectId string) (*SElasticip, error) { +func (manager *SElasticipManager) newFromCloudEip(ctx context.Context, userCred mcclient.TokenCredential, extEip cloudprovider.ICloudEIP, region *SCloudregion, projectId string) (*SElasticip, error) { eip := SElasticip{} eip.SetModelManager(manager) @@ -324,7 +324,7 @@ func (manager *SElasticipManager) newFromCloudEip(userCred mcclient.TokenCredent return nil, err } - db.OpsLog.LogEvent(&eip, db.ACT_SYNC_CLOUD_EIP, eip.GetShortDesc(), userCred) + db.OpsLog.LogEvent(&eip, db.ACT_SYNC_CLOUD_EIP, eip.GetShortDesc(ctx), userCred) return &eip, nil } @@ -375,9 +375,9 @@ func (self *SElasticip) Dissociate(ctx context.Context, userCred mcclient.TokenC return err } if vm != nil { - db.OpsLog.LogDetachEvent(vm, self, userCred, self.GetShortDesc()) - db.OpsLog.LogEvent(self, db.ACT_EIP_DETACH, vm.GetShortDesc(), userCred) - db.OpsLog.LogEvent(vm, db.ACT_EIP_DETACH, self.GetShortDesc(), userCred) + db.OpsLog.LogDetachEvent(ctx, vm, self, userCred, self.GetShortDesc(ctx)) + db.OpsLog.LogEvent(self, db.ACT_EIP_DETACH, vm.GetShortDesc(ctx), userCred) + db.OpsLog.LogEvent(vm, db.ACT_EIP_DETACH, self.GetShortDesc(ctx), userCred) } if self.Mode == EIP_MODE_INSTANCE_PUBLICIP { self.Delete(ctx, userCred) @@ -385,7 +385,7 @@ func (self *SElasticip) Dissociate(ctx context.Context, userCred mcclient.TokenC return nil } -func (self *SElasticip) AssociateVM(userCred mcclient.TokenCredential, vm *SGuest) error { +func (self *SElasticip) AssociateVM(ctx context.Context, userCred mcclient.TokenCredential, vm *SGuest) error { if len(self.AssociateType) > 0 { return fmt.Errorf("EIP has been associated!!") } @@ -398,14 +398,14 @@ func (self *SElasticip) AssociateVM(userCred mcclient.TokenCredential, vm *SGues return err } - db.OpsLog.LogAttachEvent(vm, self, userCred, self.GetShortDesc()) - db.OpsLog.LogEvent(self, db.ACT_EIP_ATTACH, vm.GetShortDesc(), userCred) - db.OpsLog.LogEvent(vm, db.ACT_EIP_ATTACH, self.GetShortDesc(), userCred) + db.OpsLog.LogAttachEvent(ctx, vm, self, userCred, self.GetShortDesc(ctx)) + db.OpsLog.LogEvent(self, db.ACT_EIP_ATTACH, vm.GetShortDesc(ctx), userCred) + db.OpsLog.LogEvent(vm, db.ACT_EIP_ATTACH, self.GetShortDesc(ctx), userCred) return nil } -func (manager *SElasticipManager) getEipByExtEip(userCred mcclient.TokenCredential, extEip cloudprovider.ICloudEIP, region *SCloudregion, projectId string) (*SElasticip, error) { +func (manager *SElasticipManager) getEipByExtEip(ctx context.Context, userCred mcclient.TokenCredential, extEip cloudprovider.ICloudEIP, region *SCloudregion, projectId string) (*SElasticip, error) { eipObj, err := manager.FetchByExternalId(extEip.GetGlobalId()) if err == nil { return eipObj.(*SElasticip), nil @@ -415,7 +415,7 @@ func (manager *SElasticipManager) getEipByExtEip(userCred mcclient.TokenCredenti return nil, err } - return manager.newFromCloudEip(userCred, extEip, region, projectId) + return manager.newFromCloudEip(ctx, userCred, extEip, region, projectId) } func (manager *SElasticipManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerProjId string, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { diff --git a/pkg/compute/models/guest_actions.go b/pkg/compute/models/guest_actions.go index d2990b3a6d..c6fee20f66 100644 --- a/pkg/compute/models/guest_actions.go +++ b/pkg/compute/models/guest_actions.go @@ -1066,11 +1066,11 @@ func (self *SGuest) PerformDetachIsolatedDevice(ctx context.Context, userCred mc host := self.GetHost() lockman.LockObject(ctx, host) defer lockman.ReleaseObject(ctx, host) - err = self.detachIsolateDevice(userCred, dev) + err = self.detachIsolateDevice(ctx, userCred, dev) return nil, err } -func (self *SGuest) detachIsolateDevice(userCred mcclient.TokenCredential, dev *SIsolatedDevice) error { +func (self *SGuest) detachIsolateDevice(ctx context.Context, userCred mcclient.TokenCredential, dev *SIsolatedDevice) error { if dev.GuestId != self.Id { msg := "Isolated device is not attached to this guest" logclient.AddActionLog(self, logclient.ACT_GUEST_DETACH_ISOLATED_DEVICE, msg, userCred, false) @@ -1083,7 +1083,7 @@ func (self *SGuest) detachIsolateDevice(userCred mcclient.TokenCredential, dev * if err != nil { return err } - db.OpsLog.LogEvent(self, db.ACT_GUEST_DETACH_ISOLATED_DEVICE, dev.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_GUEST_DETACH_ISOLATED_DEVICE, dev.GetShortDesc(ctx), userCred) return nil } @@ -1116,7 +1116,7 @@ func (self *SGuest) PerformAttachIsolatedDevice(ctx context.Context, userCred mc host := self.GetHost() lockman.LockObject(ctx, host) defer lockman.ReleaseObject(ctx, host) - err = self.attachIsolatedDevice(userCred, dev) + err = self.attachIsolatedDevice(ctx, userCred, dev) var msg string if err != nil { msg = err.Error() @@ -2096,8 +2096,8 @@ func (self *SGuest) startGuestRenewTask(ctx context.Context, userCred mcclient.T return nil } -func (self *SGuest) SaveRenewInfo(userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { - err := self.doSaveRenewInfo(userCred, bc, expireAt) +func (self *SGuest) SaveRenewInfo(ctx context.Context, userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { + err := self.doSaveRenewInfo(ctx, userCred, bc, expireAt) if err != nil { return err } @@ -2105,7 +2105,7 @@ func (self *SGuest) SaveRenewInfo(userCred mcclient.TokenCredential, bc *billing for i := 0; i < len(guestdisks); i += 1 { disk := guestdisks[i].GetDisk() if disk.BillingType == BILLING_TYPE_PREPAID { - err = disk.SaveRenewInfo(userCred, bc, expireAt) + err = disk.SaveRenewInfo(ctx, userCred, bc, expireAt) if err != nil { return err } @@ -2114,7 +2114,7 @@ func (self *SGuest) SaveRenewInfo(userCred mcclient.TokenCredential, bc *billing return nil } -func (self *SGuest) doSaveRenewInfo(userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { +func (self *SGuest) doSaveRenewInfo(ctx context.Context, userCred mcclient.TokenCredential, bc *billing.SBillingCycle, expireAt *time.Time) error { _, err := self.GetModelManager().TableSpec().Update(self, func() error { if self.BillingType != BILLING_TYPE_PREPAID { self.BillingType = BILLING_TYPE_PREPAID @@ -2131,7 +2131,7 @@ func (self *SGuest) doSaveRenewInfo(userCred mcclient.TokenCredential, bc *billi log.Errorf("Update error %s", err) return err } - db.OpsLog.LogEvent(self, db.ACT_RENEW, self.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_RENEW, self.GetShortDesc(ctx), userCred) return nil } diff --git a/pkg/compute/models/guestnetworks.go b/pkg/compute/models/guestnetworks.go index 98aa844da7..9aec20d6ae 100644 --- a/pkg/compute/models/guestnetworks.go +++ b/pkg/compute/models/guestnetworks.go @@ -337,7 +337,7 @@ func (manager *SGuestnetworkManager) DeleteGuestNics(ctx context.Context, guest if err != nil { log.Errorf("%s", err) } - gn.LogDetachEvent(userCred, guest, net) + gn.LogDetachEvent(ctx, userCred, guest, net) if reserve && regutils.MatchIP4Addr(gn.IpAddr) { ReservedipManager.ReserveIP(userCred, net, gn.IpAddr, "Delete to reserve") } @@ -361,12 +361,12 @@ func (manager *SGuestnetworkManager) getGuestNicByIP(ip string, networkId string return &gn, nil } -func (self *SGuestnetwork) LogDetachEvent(userCred mcclient.TokenCredential, guest *SGuest, network *SNetwork) { +func (self *SGuestnetwork) LogDetachEvent(ctx context.Context, userCred mcclient.TokenCredential, guest *SGuest, network *SNetwork) { if network == nil { netTmp, _ := NetworkManager.FetchById(self.NetworkId) network = netTmp.(*SNetwork) } - db.OpsLog.LogDetachEvent(guest, network, userCred, nil) + db.OpsLog.LogDetachEvent(ctx, guest, network, userCred, nil) } func (self *SGuestnetwork) Delete(ctx context.Context, userCred mcclient.TokenCredential) error { diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index ce7042ecbd..df26243c6c 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -1852,7 +1852,7 @@ func (manager *SGuestManager) newCloudVM(ctx context.Context, userCred mcclient. } } - db.OpsLog.LogEvent(&guest, db.ACT_SYNC_CLOUD_SERVER, guest.GetShortDesc(), userCred) + db.OpsLog.LogEvent(&guest, db.ACT_SYNC_CLOUD_SERVER, guest.GetShortDesc(ctx), userCred) return &guest, nil } @@ -1953,7 +1953,7 @@ func (self *SGuest) Attach2Network(ctx context.Context, userCred mcclient.TokenC address = guestnic.IpAddr } notes.Add(jsonutils.NewString(address), "ip_addr") - db.OpsLog.LogAttachEvent(self, network, userCred, notes) + db.OpsLog.LogAttachEvent(ctx, self, network, userCred, notes) return nil } @@ -2090,11 +2090,11 @@ func (self *SGuest) getMaxDiskIndex() int8 { return int8(len(guestdisks)) } -func (self *SGuest) AttachDisk(disk *SDisk, userCred mcclient.TokenCredential, driver string, cache string, mountpoint string) error { - return self.attach2Disk(disk, userCred, driver, cache, mountpoint) +func (self *SGuest) AttachDisk(ctx context.Context, disk *SDisk, userCred mcclient.TokenCredential, driver string, cache string, mountpoint string) error { + return self.attach2Disk(ctx, disk, userCred, driver, cache, mountpoint) } -func (self *SGuest) attach2Disk(disk *SDisk, userCred mcclient.TokenCredential, driver string, cache string, mountpoint string) error { +func (self *SGuest) attach2Disk(ctx context.Context, disk *SDisk, userCred mcclient.TokenCredential, driver string, cache string, mountpoint string) error { if self.isAttach2Disk(disk) { return fmt.Errorf("Guest has been attached to disk") } @@ -2111,7 +2111,7 @@ func (self *SGuest) attach2Disk(disk *SDisk, userCred mcclient.TokenCredential, guestdisk.Index = index err := guestdisk.DoSave(driver, cache, mountpoint) if err == nil { - db.OpsLog.LogAttachEvent(self, disk, userCred, nil) + db.OpsLog.LogAttachEvent(ctx, self, disk, userCred, nil) } return err } @@ -2179,7 +2179,7 @@ func (self *SGuest) SyncVMDisks(ctx context.Context, userCred mcclient.TokenCred } for i := 0; i < len(needAdds); i += 1 { vdisk := needAdds[i].vdisk - err := self.attach2Disk(needAdds[i].disk, userCred, vdisk.GetDriver(), vdisk.GetCacheMode(), vdisk.GetMountpoint()) + err := self.attach2Disk(ctx, needAdds[i].disk, userCred, vdisk.GetDriver(), vdisk.GetCacheMode(), vdisk.GetMountpoint()) if err != nil { log.Errorf("attach2Disk error: %v", err) result.AddError(err) @@ -2459,7 +2459,7 @@ func (self *SGuest) createDiskOnHost(ctx context.Context, userCred mcclient.Toke return disk, err } } - err = self.attach2Disk(disk, userCred, diskConfig.Driver, diskConfig.Cache, diskConfig.Mountpoint) + err = self.attach2Disk(ctx, disk, userCred, diskConfig.Driver, diskConfig.Cache, diskConfig.Mountpoint) return disk, err } @@ -2482,7 +2482,7 @@ func (self *SGuest) createIsolatedDeviceOnHost(ctx context.Context, userCred mcc lockman.LockClass(ctx, QuotaManager, self.ProjectId) defer lockman.ReleaseClass(ctx, QuotaManager, self.ProjectId) - err := IsolatedDeviceManager.attachHostDeviceToGuestByDesc(self, host, devConfig, userCred) + err := IsolatedDeviceManager.attachHostDeviceToGuestByDesc(ctx, self, host, devConfig, userCred) if err != nil { return err } @@ -2492,7 +2492,7 @@ func (self *SGuest) createIsolatedDeviceOnHost(ctx context.Context, userCred mcc return err } -func (self *SGuest) attachIsolatedDevice(userCred mcclient.TokenCredential, dev *SIsolatedDevice) error { +func (self *SGuest) attachIsolatedDevice(ctx context.Context, userCred mcclient.TokenCredential, dev *SIsolatedDevice) error { if len(dev.GuestId) > 0 { return fmt.Errorf("Isolated device already attached to another guest: %s", dev.GuestId) } @@ -2506,7 +2506,7 @@ func (self *SGuest) attachIsolatedDevice(userCred mcclient.TokenCredential, dev if err != nil { return err } - db.OpsLog.LogEvent(self, db.ACT_GUEST_ATTACH_ISOLATED_DEVICE, dev.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_GUEST_ATTACH_ISOLATED_DEVICE, dev.GetShortDesc(ctx), userCred) return nil } @@ -2566,7 +2566,7 @@ func (self *SGuest) CategorizeNics() SGuestNicCategory { return netCat } -func (self *SGuest) LeaveAllGroups(userCred mcclient.TokenCredential) { +func (self *SGuest) LeaveAllGroups(ctx context.Context, userCred mcclient.TokenCredential) { groupGuests := make([]SGroupguest, 0) q := GroupguestManager.Query() err := q.Filter(sqlchemy.Equals(q.Field("guest_id"), self.Id)).All(&groupGuests) @@ -2583,7 +2583,7 @@ func (self *SGuest) LeaveAllGroups(userCred mcclient.TokenCredential) { log.Errorln(err.Error()) return } - db.OpsLog.LogDetachEvent(self, &group, userCred, nil) + db.OpsLog.LogDetachEvent(ctx, self, &group, userCred, nil) } } @@ -3167,8 +3167,8 @@ func (self *SGuest) GetTemplateId() string { return "" } -func (self *SGuest) GetShortDesc() *jsonutils.JSONDict { - desc := self.SStandaloneResourceBase.GetShortDesc() +func (self *SGuest) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SVirtualResourceBase.GetShortDesc(ctx) desc.Set("mem", jsonutils.NewInt(int64(self.VmemSize))) desc.Set("cpu", jsonutils.NewInt(int64(self.VcpuCount))) @@ -3434,12 +3434,12 @@ func (self *SGuest) SyncVMEip(ctx context.Context, userCred mcclient.TokenCreden // do nothing } else if eip == nil && extEip != nil { // add - neip, err := ElasticipManager.getEipByExtEip(userCred, extEip, self.getRegion(), projectId) + neip, err := ElasticipManager.getEipByExtEip(ctx, userCred, extEip, self.getRegion(), projectId) if err != nil { log.Errorf("getEipByExtEip error %v", err) result.AddError(err) } else { - err = neip.AssociateVM(userCred, self) + err = neip.AssociateVM(ctx, userCred, self) if err != nil { log.Errorf("AssociateVM error %v", err) result.AddError(err) @@ -3465,11 +3465,11 @@ func (self *SGuest) SyncVMEip(ctx context.Context, userCred mcclient.TokenCreden result.DeleteError(err) } else { result.Delete() - neip, err := ElasticipManager.getEipByExtEip(userCred, extEip, self.getRegion(), projectId) + neip, err := ElasticipManager.getEipByExtEip(ctx, userCred, extEip, self.getRegion(), projectId) if err != nil { result.AddError(err) } else { - err = neip.AssociateVM(userCred, self) + err = neip.AssociateVM(ctx, userCred, self) if err != nil { result.AddError(err) } else { diff --git a/pkg/compute/models/host_recycle.go b/pkg/compute/models/host_recycle.go index 90060167c2..25388cb347 100644 --- a/pkg/compute/models/host_recycle.go +++ b/pkg/compute/models/host_recycle.go @@ -58,12 +58,12 @@ func (self *SGuest) PerformPrepaidRecycle(ctx context.Context, userCred mcclient err = self.doPrepaidRecycle(ctx, userCred) if err != nil { - logclient.AddActionLog(self, logclient.ACT_RECYCLE_PREPAID, self.GetShortDesc(), userCred, false) + logclient.AddActionLog(self, logclient.ACT_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, false) return nil, httperrors.NewGeneralError(err) } - db.OpsLog.LogEvent(self, db.ACT_RECYCLE_PREPAID, self.GetShortDesc(), userCred) - logclient.AddActionLog(self, logclient.ACT_RECYCLE_PREPAID, self.GetShortDesc(), userCred, true) + db.OpsLog.LogEvent(self, db.ACT_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred) + logclient.AddActionLog(self, logclient.ACT_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, true) return nil, nil } @@ -288,12 +288,12 @@ func (self *SGuest) PerformUndoPrepaidRecycle(ctx context.Context, userCred mccl err := doUndoPrepaidRecycle(ctx, userCred, host, self) if err != nil { - logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred, false) + logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, false) return nil, httperrors.NewGeneralError(err) } - db.OpsLog.LogEvent(self, db.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred) - logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred, true) + db.OpsLog.LogEvent(self, db.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred) + logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, true) return nil, nil } @@ -327,12 +327,12 @@ func (self *SHost) PerformUndoPrepaidRecycle(ctx context.Context, userCred mccli err := doUndoPrepaidRecycle(ctx, userCred, self, &guests[0]) if err != nil { - logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred, false) + logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, false) return nil, httperrors.NewGeneralError(err) } - db.OpsLog.LogEvent(self, db.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred) - logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(), userCred, true) + db.OpsLog.LogEvent(self, db.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred) + logclient.AddActionLog(self, logclient.ACT_UNDO_RECYCLE_PREPAID, self.GetShortDesc(ctx), userCred, true) return nil, nil } diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index 843ffd3ff6..5efbf58daf 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -1141,7 +1141,7 @@ func (self *SHost) GetNetInterface(mac string) *SNetInterface { func (self *SHost) DeleteBaremetalnetwork(ctx context.Context, userCred mcclient.TokenCredential, bn *SHostnetwork, reserve bool) { net := bn.GetNetwork() bn.Delete(ctx, userCred) - db.OpsLog.LogDetachEvent(self, net, userCred, nil) + db.OpsLog.LogDetachEvent(ctx, self, net, userCred, nil) if reserve && net != nil && len(bn.IpAddr) > 0 && regutils.MatchIP4Addr(bn.IpAddr) { ReservedipManager.ReserveIP(userCred, net, bn.IpAddr, "Delete baremetalnetwork to reserve") } @@ -1459,7 +1459,7 @@ func (self *SHost) Attach2Storage(ctx context.Context, userCred mcclient.TokenCr return err } - db.OpsLog.LogAttachEvent(self, storage, userCred, nil) + db.OpsLog.LogAttachEvent(ctx, self, storage, userCred, nil) return nil } @@ -1562,7 +1562,7 @@ func (self *SHost) Attach2Wire(ctx context.Context, userCred mcclient.TokenCrede if err != nil { return err } - db.OpsLog.LogAttachEvent(self, wire, userCred, nil) + db.OpsLog.LogAttachEvent(ctx, self, wire, userCred, nil) return nil } @@ -2055,7 +2055,7 @@ func (self *SHost) getMoreDetails(ctx context.Context, extra *jsonutils.JSONDict if schedtags != nil && len(schedtags) > 0 { info := make([]jsonutils.JSONObject, len(schedtags)) for i := 0; i < len(schedtags); i += 1 { - info[i] = schedtags[i].GetShortDesc() + info[i] = schedtags[i].GetShortDesc(ctx) } extra.Add(jsonutils.NewArray(info...), "schedtags") } @@ -3017,8 +3017,12 @@ func (self *SHost) Attach2Network(ctx context.Context, userCred mcclient.TokenCr bn.NetworkId = net.Id bn.IpAddr = freeIp bn.MacAddr = netif.Mac - HostnetworkManager.TableSpec().Insert(bn) - db.OpsLog.LogAttachEvent(self, net, userCred, jsonutils.NewString(freeIp)) + err = HostnetworkManager.TableSpec().Insert(bn) + if err != nil { + log.Errorf("HostnetworkManager.TableSpec().Insert fail %s", err) + return err + } + db.OpsLog.LogAttachEvent(ctx, self, net, userCred, jsonutils.NewString(freeIp)) self.UpdateDnsRecord(netif, true) net.UpdateBaremetalNetmap(bn, self.GetNetifName(netif)) return nil @@ -3058,7 +3062,7 @@ func (self *SHost) RemoveNetif(ctx context.Context, userCred mcclient.TokenCrede if len(others) == 0 { hw, _ := HostwireManager.FetchByIds(self.Id, wire.Id) if hw != nil { - db.OpsLog.LogDetachEvent(self, wire, userCred, jsonutils.NewString(fmt.Sprintf("disable netif %s", self.AccessMac))) + db.OpsLog.LogDetachEvent(ctx, self, wire, userCred, jsonutils.NewString(fmt.Sprintf("disable netif %s", self.AccessMac))) log.Infof("Detach host wire because of remove netif %s", netif.Mac) return hw.Delete(ctx, userCred) } @@ -3538,7 +3542,9 @@ func (self *SHost) getCloudProviderInfo() SCloudProviderInfo { return MakeCloudProviderInfo(region, zone, provider) } -func (self *SHost) GetShortDesc() *jsonutils.JSONDict { +func (self *SHost) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SEnabledStatusStandaloneResourceBase.GetShortDesc(ctx) info := self.getCloudProviderInfo() - return jsonutils.Marshal(&info).(*jsonutils.JSONDict) + desc.Update(jsonutils.Marshal(&info)) + return desc } diff --git a/pkg/compute/models/isolated_devices.go b/pkg/compute/models/isolated_devices.go index 2db2d7d316..4a1d1649ff 100644 --- a/pkg/compute/models/isolated_devices.go +++ b/pkg/compute/models/isolated_devices.go @@ -285,15 +285,15 @@ func (manager *SIsolatedDeviceManager) isValidDeviceinfo(config *SIsolatedDevice return nil } -func (manager *SIsolatedDeviceManager) attachHostDeviceToGuestByDesc(guest *SGuest, host *SHost, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { +func (manager *SIsolatedDeviceManager) attachHostDeviceToGuestByDesc(ctx context.Context, guest *SGuest, host *SHost, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { if len(devConfig.Id) > 0 { - return manager.attachSpecificDeviceToGuest(guest, devConfig, userCred) + return manager.attachSpecificDeviceToGuest(ctx, guest, devConfig, userCred) } else { - return manager.attachHostDeviceToGuestByModel(guest, host, devConfig, userCred) + return manager.attachHostDeviceToGuestByModel(ctx, guest, host, devConfig, userCred) } } -func (manager *SIsolatedDeviceManager) attachSpecificDeviceToGuest(guest *SGuest, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { +func (manager *SIsolatedDeviceManager) attachSpecificDeviceToGuest(ctx context.Context, guest *SGuest, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { devObj, err := manager.FetchById(devConfig.Id) if devObj == nil { return fmt.Errorf("Device %s not found: %s", devConfig.Id, err) @@ -302,10 +302,10 @@ func (manager *SIsolatedDeviceManager) attachSpecificDeviceToGuest(guest *SGuest if len(devConfig.DevType) > 0 && devConfig.DevType != dev.DevType { dev.DevType = devConfig.DevType } - return guest.attachIsolatedDevice(userCred, dev) + return guest.attachIsolatedDevice(ctx, userCred, dev) } -func (manager *SIsolatedDeviceManager) attachHostDeviceToGuestByModel(guest *SGuest, host *SHost, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { +func (manager *SIsolatedDeviceManager) attachHostDeviceToGuestByModel(ctx context.Context, guest *SGuest, host *SHost, devConfig *SIsolatedDeviceConfig, userCred mcclient.TokenCredential) error { if len(devConfig.Model) == 0 { return fmt.Errorf("Not found model from info: %s", devConfig) } @@ -314,7 +314,7 @@ func (manager *SIsolatedDeviceManager) attachHostDeviceToGuestByModel(guest *SGu return fmt.Errorf("Can't found %s model on host", host.Id) } selectedDev := devs[0] - return guest.attachIsolatedDevice(userCred, &selectedDev) + return guest.attachIsolatedDevice(ctx, userCred, &selectedDev) } func (manager *SIsolatedDeviceManager) findUnusedQuery() *sqlchemy.SQuery { @@ -365,7 +365,7 @@ func (manager *SIsolatedDeviceManager) findHostUnusedByModel(model string, hostI return devs, nil } -func (manager *SIsolatedDeviceManager) ReleaseDevicesOfGuest(guest *SGuest, userCred mcclient.TokenCredential) error { +func (manager *SIsolatedDeviceManager) ReleaseDevicesOfGuest(ctx context.Context, guest *SGuest, userCred mcclient.TokenCredential) error { devs := manager.findAttachedDevicesOfGuest(guest) if devs == nil { return fmt.Errorf("fail to find attached devices") @@ -376,10 +376,10 @@ func (manager *SIsolatedDeviceManager) ReleaseDevicesOfGuest(guest *SGuest, user return nil }) if err != nil { - db.OpsLog.LogEvent(guest, db.ACT_GUEST_DETACH_ISOLATED_DEVICE_FAIL, dev.GetShortDesc(), userCred) + db.OpsLog.LogEvent(guest, db.ACT_GUEST_DETACH_ISOLATED_DEVICE_FAIL, dev.GetShortDesc(ctx), userCred) return err } - db.OpsLog.LogEvent(guest, db.ACT_GUEST_DETACH_ISOLATED_DEVICE, dev.GetShortDesc(), userCred) + db.OpsLog.LogEvent(guest, db.ACT_GUEST_DETACH_ISOLATED_DEVICE, dev.GetShortDesc(ctx), userCred) } return nil } @@ -457,7 +457,7 @@ func (man *SIsolatedDeviceManager) GetSpecIdent(spec *jsonutils.JSONDict) []stri return keys } -func (self *SIsolatedDevice) GetShortDesc() *jsonutils.JSONDict { +func (self *SIsolatedDevice) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { desc := self.getDesc() desc.Add(jsonutils.NewString(IsolatedDeviceManager.Keyword()), "res_name") return desc @@ -536,14 +536,14 @@ func (self *SIsolatedDevice) CustomizeDelete(ctx context.Context, userCred mccli return err } guest := iGuest.(*SGuest) - err = guest.detachIsolateDevice(userCred, self) + err = guest.detachIsolateDevice(ctx, userCred, self) if err != nil { return err } } host := self.getHost() if host != nil { - db.OpsLog.LogEvent(host, db.ACT_HOST_DETACH_ISOLATED_DEVICE, self.GetShortDesc(), userCred) + db.OpsLog.LogEvent(host, db.ACT_HOST_DETACH_ISOLATED_DEVICE, self.GetShortDesc(ctx), userCred) } return self.RealDelete(ctx, userCred) } diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index d436e2ecc4..b540d3abd4 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -1268,7 +1268,7 @@ func (self *SNetwork) CustomizeDelete(ctx context.Context, userCred mcclient.Tok } func (self *SNetwork) RealDelete(ctx context.Context, userCred mcclient.TokenCredential) error { - db.OpsLog.LogEvent(self, db.ACT_DELOCATE, self.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_DELOCATE, self.GetShortDesc(ctx), userCred) self.SetStatus(userCred, NETWORK_STATUS_DELETED, "real delete") return self.SSharableVirtualResourceBase.Delete(ctx, userCred) } diff --git a/pkg/compute/models/schedtags.go b/pkg/compute/models/schedtags.go index c8c7a73083..188fe1bacf 100644 --- a/pkg/compute/models/schedtags.go +++ b/pkg/compute/models/schedtags.go @@ -202,10 +202,8 @@ func (self *SSchedtag) GetExtraDetails(ctx context.Context, userCred mcclient.To self.SStandaloneResourceBase.PostUpdate(ctx, userCred, query, data) }*/ -func (self *SSchedtag) GetShortDesc() *jsonutils.JSONDict { - desc := jsonutils.NewDict() - desc.Add(jsonutils.NewString(self.Id), "id") - desc.Add(jsonutils.NewString(self.Name), "name") +func (self *SSchedtag) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SStandaloneResourceBase.GetShortDesc(ctx) desc.Add(jsonutils.NewString(self.DefaultStrategy), "default") return desc } diff --git a/pkg/compute/models/snapshots.go b/pkg/compute/models/snapshots.go index 2cbc8ea2a2..e25f88e77e 100644 --- a/pkg/compute/models/snapshots.go +++ b/pkg/compute/models/snapshots.go @@ -197,8 +197,8 @@ func (self *SSnapshot) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSON return extra } -func (self *SSnapshot) GetShortDesc() *jsonutils.JSONDict { - res := self.SVirtualResourceBase.GetShortDesc() +func (self *SSnapshot) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + res := self.SVirtualResourceBase.GetShortDesc(ctx) res.Add(jsonutils.NewInt(int64(self.Size)), "size") /*if cloudprovider := self.GetCloudprovider(); cloudprovider != nil { res.Add(jsonutils.NewString(cloudprovider.Provider), "hypervisor") @@ -537,7 +537,7 @@ func (self *SSnapshot) SyncWithCloudSnapshot(userCred mcclient.TokenCredential, return err } -func (manager *SSnapshotManager) newFromCloudSnapshot(userCred mcclient.TokenCredential, extSnapshot cloudprovider.ICloudSnapshot, region *SCloudregion, projectId string, provider *SCloudprovider) (*SSnapshot, error) { +func (manager *SSnapshotManager) newFromCloudSnapshot(ctx context.Context, userCred mcclient.TokenCredential, extSnapshot cloudprovider.ICloudSnapshot, region *SCloudregion, projectId string, provider *SCloudprovider) (*SSnapshot, error) { snapshot := SSnapshot{} snapshot.SetModelManager(manager) @@ -567,7 +567,7 @@ func (manager *SSnapshotManager) newFromCloudSnapshot(userCred mcclient.TokenCre log.Errorf("newFromCloudEip fail %s", err) return nil, err } - db.OpsLog.LogEvent(&snapshot, db.ACT_SNAPSHOT_DONE, snapshot.GetShortDesc(), userCred) + db.OpsLog.LogEvent(&snapshot, db.ACT_SNAPSHOT_DONE, snapshot.GetShortDesc(ctx), userCred) return &snapshot, nil } @@ -618,7 +618,7 @@ func (manager *SSnapshotManager) SyncSnapshots(ctx context.Context, userCred mcc } } for i := 0; i < len(added); i += 1 { - _, err := manager.newFromCloudSnapshot(userCred, added[i], region, projectId, provider) + _, err := manager.newFromCloudSnapshot(ctx, userCred, added[i], region, projectId, provider) if err != nil { syncResult.AddError(err) } else { diff --git a/pkg/compute/models/storages.go b/pkg/compute/models/storages.go index 1d3d6b0192..191308c802 100644 --- a/pkg/compute/models/storages.go +++ b/pkg/compute/models/storages.go @@ -1184,7 +1184,9 @@ func (self *SStorage) getCloudProviderInfo() SCloudProviderInfo { return MakeCloudProviderInfo(region, zone, provider) } -func (self *SStorage) GetShortDesc() *jsonutils.JSONDict { +func (self *SStorage) GetShortDesc(ctx context.Context) *jsonutils.JSONDict { + desc := self.SStandaloneResourceBase.GetShortDesc(ctx) info := self.getCloudProviderInfo() - return jsonutils.Marshal(&info).(*jsonutils.JSONDict) + desc.Update(jsonutils.Marshal(&info)) + return desc } diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index 55b3af55a3..87ac70cc8f 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -477,7 +477,7 @@ func (self *SVpc) CustomizeDelete(ctx context.Context, userCred mcclient.TokenCr } func (self *SVpc) RealDelete(ctx context.Context, userCred mcclient.TokenCredential) error { - db.OpsLog.LogEvent(self, db.ACT_DELOCATE, self.GetShortDesc(), userCred) + db.OpsLog.LogEvent(self, db.ACT_DELOCATE, self.GetShortDesc(ctx), userCred) self.SetStatus(userCred, VPC_STATUS_DELETED, "real delete") return self.SEnabledStatusStandaloneResourceBase.Delete(ctx, userCred) } diff --git a/pkg/compute/tasks/baremetal_server_start_task.go b/pkg/compute/tasks/baremetal_server_start_task.go index 29c567b2f8..a9bba2c15a 100644 --- a/pkg/compute/tasks/baremetal_server_start_task.go +++ b/pkg/compute/tasks/baremetal_server_start_task.go @@ -45,7 +45,7 @@ func (self *BaremetalServerStartTask) OnStartComplete(ctx context.Context, guest guest.SetStatus(self.UserCred, models.VM_RUNNING, "") baremetal := guest.GetHost() baremetal.SetStatus(self.UserCred, models.BAREMETAL_RUNNING, "") - db.OpsLog.LogEvent(guest, db.ACT_START, guest.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(guest, db.ACT_START, guest.GetShortDesc(ctx), self.UserCred) } func (self *BaremetalServerStartTask) OnStartCompleteFailed(ctx context.Context, guest *models.SGuest, body jsonutils.JSONObject) { diff --git a/pkg/compute/tasks/cloud_provider_sync_info_task.go b/pkg/compute/tasks/cloud_provider_sync_info_task.go index 4ea10e20ca..b4a3e5a94f 100644 --- a/pkg/compute/tasks/cloud_provider_sync_info_task.go +++ b/pkg/compute/tasks/cloud_provider_sync_info_task.go @@ -460,7 +460,7 @@ func syncHostVMs(ctx context.Context, provider *models.SCloudprovider, task *Clo syncVMEip(ctx, provider, task, &localVMs[i], remoteVMs[i]) if localVMs[i].Status == models.VM_RUNNING { - db.OpsLog.LogEvent(&localVMs[i], db.ACT_START, localVMs[i].GetShortDesc(), task.UserCred) + db.OpsLog.LogEvent(&localVMs[i], db.ACT_START, localVMs[i].GetShortDesc(ctx), task.UserCred) } } } diff --git a/pkg/compute/tasks/disk_create_task.go b/pkg/compute/tasks/disk_create_task.go index 6d8cd3cbb6..10323654e0 100644 --- a/pkg/compute/tasks/disk_create_task.go +++ b/pkg/compute/tasks/disk_create_task.go @@ -45,11 +45,11 @@ func (self *DiskCreateTask) OnStorageCacheImageComplete(ctx context.Context, dis rebuild, _ := self.GetParams().Bool("rebuild") snapshot, _ := self.GetParams().GetString("snapshot") if rebuild { - db.OpsLog.LogEvent(disk, db.ACT_DELOCATE, disk.GetShortDesc(), self.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_DELOCATE, disk.GetShortDesc(ctx), self.GetUserCred()) } storage := disk.GetStorage() host := storage.GetMasterHost() - db.OpsLog.LogEvent(disk, db.ACT_ALLOCATING, disk.GetShortDesc(), self.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_ALLOCATING, disk.GetShortDesc(ctx), self.GetUserCred()) disk.SetStatus(self.GetUserCred(), models.DISK_STARTALLOC, "") if len(disk.BackupStorageId) > 0 { self.SetStage("OnMasterStorageCreateDiskComplete", nil) @@ -66,7 +66,7 @@ func (self *DiskCreateTask) OnMasterStorageCreateDiskComplete(ctx context.Contex snapshot, _ := self.GetParams().GetString("snapshot") storage := models.StorageManager.FetchStorageById(disk.BackupStorageId) host := storage.GetMasterHost() - db.OpsLog.LogEvent(disk, db.ACT_BACKUP_ALLOCATING, disk.GetShortDesc(), self.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_BACKUP_ALLOCATING, disk.GetShortDesc(ctx), self.GetUserCred()) disk.SetStatus(self.UserCred, models.DISK_BACKUP_STARTALLOC, "") self.SetStage("OnDiskReady", nil) if err := disk.StartAllocate(ctx, host, storage, self.GetTaskId(), self.GetUserCred(), rebuild, snapshot, self); err != nil { @@ -97,7 +97,7 @@ func (self *DiskCreateTask) OnDiskReady(ctx context.Context, disk *models.SDisk, disk.SetStatus(self.UserCred, models.DISK_READY, "") self.CleanHostSchedCache(disk) - db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(ctx), self.UserCred) self.SetStageComplete(ctx, nil) } @@ -127,7 +127,7 @@ func (self *DiskCreateBackupTask) OnDiskReady(ctx context.Context, disk *models. bkStorage := models.StorageManager.FetchStorageById(disk.BackupStorageId) bkStorage.ClearSchedDescCache() disk.SetStatus(self.UserCred, models.DISK_READY, "") - db.OpsLog.LogEvent(disk, db.ACT_BACKUP_ALLOCATE, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_BACKUP_ALLOCATE, disk.GetShortDesc(ctx), self.UserCred) self.SetStageComplete(ctx, nil) } diff --git a/pkg/compute/tasks/disk_delete_task.go b/pkg/compute/tasks/disk_delete_task.go index ea433d2204..c185b6eca8 100644 --- a/pkg/compute/tasks/disk_delete_task.go +++ b/pkg/compute/tasks/disk_delete_task.go @@ -37,7 +37,7 @@ func (self *DiskDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneModel, } func (self *DiskDeleteTask) startDeleteDisk(ctx context.Context, disk *models.SDisk) { - db.OpsLog.LogEvent(disk, db.ACT_DELOCATING, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_DELOCATING, disk.GetShortDesc(ctx), self.UserCred) if disk.Status == models.DISK_INIT { self.OnGuestDiskDeleteComplete(ctx, disk, nil) return @@ -92,7 +92,7 @@ func (self *DiskDeleteTask) OnGuestDiskDeleteComplete(ctx context.Context, obj d } disk := obj.(*models.SDisk) self.CleanHostSchedCache(disk) - db.OpsLog.LogEvent(disk, db.ACT_DELOCATE, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_DELOCATE, disk.GetShortDesc(ctx), self.UserCred) if len(disk.SnapshotId) > 0 && disk.GetMetadata("merge_snapshot", nil) == "true" { models.SnapshotManager.AddRefCount(disk.SnapshotId, -1) } @@ -103,5 +103,5 @@ func (self *DiskDeleteTask) OnGuestDiskDeleteComplete(ctx context.Context, obj d func (self *DiskDeleteTask) OnGuestDiskDeleteCompleteFailed(ctx context.Context, disk *models.SDisk, resion jsonutils.JSONObject) { disk.SetStatus(self.GetUserCred(), models.DISK_DEALLOC_FAILED, resion.String()) self.SetStageFailed(ctx, resion.String()) - db.OpsLog.LogEvent(disk, db.ACT_DELOCATE_FAIL, disk.GetShortDesc(), self.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_DELOCATE_FAIL, disk.GetShortDesc(ctx), self.GetUserCred()) } diff --git a/pkg/compute/tasks/disk_resize_task.go b/pkg/compute/tasks/disk_resize_task.go index c6ca501dcd..32f6d102b2 100644 --- a/pkg/compute/tasks/disk_resize_task.go +++ b/pkg/compute/tasks/disk_resize_task.go @@ -101,15 +101,15 @@ func (self *DiskResizeTask) OnDiskResizeComplete(ctx context.Context, disk *mode notes := fmt.Sprintf("%s=>%s", oldStatus, disk.Status) db.OpsLog.LogEvent(disk, db.ACT_UPDATE_STATUS, notes, self.UserCred) self.CleanHostSchedCache(disk) - db.OpsLog.LogEvent(disk, db.ACT_RESIZE, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_RESIZE, disk.GetShortDesc(ctx), self.UserCred) logclient.AddActionLog(disk, logclient.ACT_RESIZE, nil, self.UserCred, true) - self.SetStageComplete(ctx, disk.GetShortDesc()) + self.SetStageComplete(ctx, disk.GetShortDesc(ctx)) self.finalReleasePendingUsage(ctx) } func (self *DiskResizeTask) OnDiskResizeCompleteFailed(ctx context.Context, disk *models.SDisk, data jsonutils.JSONObject) { disk.SetDiskReady(ctx, self.GetUserCred(), data.String()) - db.OpsLog.LogEvent(disk, db.ACT_RESIZE_FAIL, disk.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(disk, db.ACT_RESIZE_FAIL, disk.GetShortDesc(ctx), self.UserCred) logclient.AddActionLog(disk, logclient.ACT_RESIZE, data.String(), self.UserCred, false) self.SetStageFailed(ctx, data.String()) } diff --git a/pkg/compute/tasks/disk_save_task.go b/pkg/compute/tasks/disk_save_task.go index 28f4fb3209..32a29f194d 100644 --- a/pkg/compute/tasks/disk_save_task.go +++ b/pkg/compute/tasks/disk_save_task.go @@ -71,7 +71,7 @@ func (self *DiskSaveTask) OnDiskBackupCompleteFailed(ctx context.Context, disk * func (self *DiskSaveTask) OnDiskBackupComplete(ctx context.Context, disk *models.SDisk, data *jsonutils.JSONDict) { disk.SetDiskReady(ctx, self.GetUserCred(), "") - db.OpsLog.LogEvent(disk, db.ACT_SAVE, disk.GetShortDesc(), self.GetUserCred()) + db.OpsLog.LogEvent(disk, db.ACT_SAVE, disk.GetShortDesc(ctx), self.GetUserCred()) self.SetStageComplete(ctx, nil) imageId, _ := self.GetParams().GetString("image_id") if host := self.GetMasterHost(disk); host == nil { diff --git a/pkg/compute/tasks/eip_associate_task.go b/pkg/compute/tasks/eip_associate_task.go index 483fb0f686..e6a9ae4cee 100644 --- a/pkg/compute/tasks/eip_associate_task.go +++ b/pkg/compute/tasks/eip_associate_task.go @@ -57,7 +57,7 @@ func (self *EipAssociateTask) OnInit(ctx context.Context, obj db.IStandaloneMode return } - err = eip.AssociateVM(self.UserCred, server) + err = eip.AssociateVM(ctx, self.UserCred, server) if err != nil { msg := fmt.Sprintf("fail to local associate EIP %s", err) self.TaskFail(ctx, eip, msg, server) diff --git a/pkg/compute/tasks/guest_attach_disk_task.go b/pkg/compute/tasks/guest_attach_disk_task.go index e1f182866f..842ee0317f 100644 --- a/pkg/compute/tasks/guest_attach_disk_task.go +++ b/pkg/compute/tasks/guest_attach_disk_task.go @@ -38,7 +38,7 @@ func (self *GuestAttachDiskTask) OnInit(ctx context.Context, obj db.IStandaloneM cache, _ := self.Params.GetString("cache") mountpoint, _ := self.Params.GetString("mountpoint") - err = guest.AttachDisk(disk, self.UserCred, driver, cache, mountpoint) + err = guest.AttachDisk(ctx, disk, self.UserCred, driver, cache, mountpoint) if err != nil { self.OnTaskFail(ctx, guest, nil, err) return diff --git a/pkg/compute/tasks/guest_create_disk_task.go b/pkg/compute/tasks/guest_create_disk_task.go index 2b9181df40..e976e13a6b 100644 --- a/pkg/compute/tasks/guest_create_disk_task.go +++ b/pkg/compute/tasks/guest_create_disk_task.go @@ -264,8 +264,8 @@ func (self *ESXiGuestCreateDiskTask) OnInit(ctx context.Context, obj db.IStandal disk.SetStatus(self.UserCred, models.DISK_READY, "create disk success") disk.GetStorage().ClearSchedDescCache() - db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(), self.UserCred) - db.OpsLog.LogAttachEvent(guest, disk, self.UserCred, disk.GetShortDesc()) + db.OpsLog.LogEvent(disk, db.ACT_ALLOCATE, disk.GetShortDesc(ctx), self.UserCred) + db.OpsLog.LogAttachEvent(ctx, guest, disk, self.UserCred, disk.GetShortDesc(ctx)) } self.SetStageComplete(ctx, nil) diff --git a/pkg/compute/tasks/guest_create_task.go b/pkg/compute/tasks/guest_create_task.go index 58946513d8..32cd45facc 100644 --- a/pkg/compute/tasks/guest_create_task.go +++ b/pkg/compute/tasks/guest_create_task.go @@ -114,10 +114,10 @@ func (self *GuestCreateTask) OnDeployGuestDescCompleteFailed(ctx context.Context func (self *GuestCreateTask) OnAutoStartGuest(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) - self.SetStageComplete(ctx, guest.GetShortDesc()) + self.SetStageComplete(ctx, guest.GetShortDesc(ctx)) } func (self *GuestCreateTask) OnSyncStatusComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) - self.SetStageComplete(ctx, guest.GetShortDesc()) + self.SetStageComplete(ctx, guest.GetShortDesc(ctx)) } diff --git a/pkg/compute/tasks/guest_delete_task.go b/pkg/compute/tasks/guest_delete_task.go index eb67f02b69..6cb2c90cf0 100644 --- a/pkg/compute/tasks/guest_delete_task.go +++ b/pkg/compute/tasks/guest_delete_task.go @@ -115,7 +115,7 @@ func (self *GuestDeleteTask) doStartDeleteGuest(ctx context.Context, obj db.ISta func (self *GuestDeleteTask) StartPendingDeleteGuest(ctx context.Context, guest *models.SGuest) { guest.DoPendingDelete(ctx, self.UserCred) - models.IsolatedDeviceManager.ReleaseDevicesOfGuest(guest, self.UserCred) + models.IsolatedDeviceManager.ReleaseDevicesOfGuest(ctx, guest, self.UserCred) self.SetStage("on_pending_delete_complete", nil) guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId()) } @@ -154,7 +154,7 @@ func (self *GuestDeleteTask) OnGuestDetachDisksCompleteFailed(ctx context.Contex } func (self *GuestDeleteTask) DoDeleteGuest(ctx context.Context, guest *models.SGuest) { - models.IsolatedDeviceManager.ReleaseDevicesOfGuest(guest, self.UserCred) + models.IsolatedDeviceManager.ReleaseDevicesOfGuest(ctx, guest, self.UserCred) host := guest.GetHost() if guest.IsPrepaidRecycle() { err := host.BorrowIpAddrsFromGuest(ctx, self.UserCred, guest) @@ -187,7 +187,7 @@ func (self *GuestDeleteTask) OnGuestDeleteCompleteFailed(ctx context.Context, ob func (self *GuestDeleteTask) OnGuestDeleteComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) - guest.LeaveAllGroups(self.UserCred) + guest.LeaveAllGroups(ctx, self.UserCred) guest.DetachAllNetworks(ctx, self.UserCred) guest.EjectIso(self.UserCred) guest.DeleteEip(ctx, self.UserCred) diff --git a/pkg/compute/tasks/guest_detach_disk_task.go b/pkg/compute/tasks/guest_detach_disk_task.go index 676c12972a..7a0b5495fe 100644 --- a/pkg/compute/tasks/guest_detach_disk_task.go +++ b/pkg/compute/tasks/guest_detach_disk_task.go @@ -117,7 +117,7 @@ func (self *GuestDetachDiskTask) OnSyncConfigCompleteFailed(ctx context.Context, disk := objDisk.(*models.SDisk) db.OpsLog.LogEvent(disk, db.ACT_DETACH, resion.String(), self.UserCred) disk.SetDiskReady(ctx, self.UserCred, "") - err = guest.AttachDisk(disk, self.UserCred, driver, cache, mountpoint) + err = guest.AttachDisk(ctx, disk, self.UserCred, driver, cache, mountpoint) if err != nil { self.OnTaskFail(ctx, guest, disk, err) return diff --git a/pkg/compute/tasks/guest_disk_snapshot_task.go b/pkg/compute/tasks/guest_disk_snapshot_task.go index da7f7d5cd6..a8c6fbefcc 100644 --- a/pkg/compute/tasks/guest_disk_snapshot_task.go +++ b/pkg/compute/tasks/guest_disk_snapshot_task.go @@ -94,7 +94,7 @@ func (self *GuestDiskSnapshotTask) OnAutoDeleteSnapshotFailed(ctx context.Contex func (self *GuestDiskSnapshotTask) TaskComplete(ctx context.Context, guest *models.SGuest, data jsonutils.JSONObject) { snapshotId, _ := self.Params.GetString("snapshot_id") iSnapshot, _ := models.SnapshotManager.FetchById(snapshotId) - db.OpsLog.LogEvent(iSnapshot, db.ACT_SNAPSHOT_DONE, iSnapshot.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(iSnapshot, db.ACT_SNAPSHOT_DONE, iSnapshot.GetShortDesc(ctx), self.UserCred) logclient.AddActionLog(iSnapshot, logclient.ACT_CREATE, nil, self.UserCred, true) guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId()) self.SetStage("OnSyncStatus", nil) @@ -293,7 +293,7 @@ func (self *SnapshotDeleteTask) OnReloadDiskSnapshot(ctx context.Context, snapsh } func (self *SnapshotDeleteTask) TaskComplete(ctx context.Context, snapshot *models.SSnapshot, data jsonutils.JSONObject) { - db.OpsLog.LogEvent(snapshot, db.ACT_SNAPSHOT_DELETE, snapshot.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(snapshot, db.ACT_SNAPSHOT_DELETE, snapshot.GetShortDesc(ctx), self.UserCred) logclient.AddActionLog(snapshot, logclient.ACT_DELETE, nil, self.UserCred, true) self.SetStageComplete(ctx, nil) } diff --git a/pkg/compute/tasks/guest_renew_task.go b/pkg/compute/tasks/guest_renew_task.go index 335fabe10f..7a11b94cc4 100644 --- a/pkg/compute/tasks/guest_renew_task.go +++ b/pkg/compute/tasks/guest_renew_task.go @@ -35,7 +35,7 @@ func (self *GuestRenewTask) OnInit(ctx context.Context, obj db.IStandaloneModel, return } - err = guest.SaveRenewInfo(self.UserCred, &bc, &exp) + err = guest.SaveRenewInfo(ctx, self.UserCred, &bc, &exp) if err != nil { msg := fmt.Sprintf("SaveRenewInfo fail %s", err) log.Errorf(msg) diff --git a/pkg/compute/tasks/guest_start_task.go b/pkg/compute/tasks/guest_start_task.go index 946edbb5f6..f981746c35 100644 --- a/pkg/compute/tasks/guest_start_task.go +++ b/pkg/compute/tasks/guest_start_task.go @@ -113,7 +113,7 @@ func (self *GuestStartTask) OnStartBackupGuestCompleteFailed(ctx context.Context func (self *GuestStartTask) OnStartComplete(ctx context.Context, obj db.IStandaloneModel, data jsonutils.JSONObject) { guest := obj.(*models.SGuest) - db.OpsLog.LogEvent(guest, db.ACT_START, guest.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(guest, db.ACT_START, guest.GetShortDesc(ctx), self.UserCred) self.SetStage("OnGuestSyncstatusAfterStart", nil) guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId()) logclient.AddActionLog(guest, logclient.ACT_VM_START, "", self.UserCred, true) diff --git a/pkg/compute/tasks/guest_stop_task.go b/pkg/compute/tasks/guest_stop_task.go index 8cf25f891c..40a01d2216 100644 --- a/pkg/compute/tasks/guest_stop_task.go +++ b/pkg/compute/tasks/guest_stop_task.go @@ -69,7 +69,7 @@ func (self *GuestStopTask) OnGuestStopTaskComplete(ctx context.Context, guest *m if !self.isSubtask() { guest.SetStatus(self.UserCred, models.VM_READY, "") } - db.OpsLog.LogEvent(guest, db.ACT_STOP, guest.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(guest, db.ACT_STOP, guest.GetShortDesc(ctx), self.UserCred) models.HostManager.ClearSchedDescCache(guest.HostId) self.SetStageComplete(ctx, nil) if guest.Status == models.VM_READY && guest.DisableDelete.IsFalse() && guest.ShutdownBehavior == models.SHUTDOWN_TERMINATE { diff --git a/pkg/compute/tasks/guest_sync_task.go b/pkg/compute/tasks/guest_sync_task.go index ec41d19d54..4d92cb72de 100644 --- a/pkg/compute/tasks/guest_sync_task.go +++ b/pkg/compute/tasks/guest_sync_task.go @@ -38,7 +38,7 @@ func (self *GuestSyncConfTask) OnSyncComplete(ctx context.Context, obj db.IStand guest := obj.(*models.SGuest) if fw_only, _ := self.GetParams().Bool("fw_only"); fw_only { db.OpsLog.LogEvent(guest, db.ACT_SYNC_CONF, nil, self.UserCred) - self.SetStageComplete(ctx, guest.GetShortDesc()) + self.SetStageComplete(ctx, guest.GetShortDesc(ctx)) } else if data.Contains("task") { self.SetStage("on_disk_sync_complete", nil) } else { diff --git a/pkg/compute/tasks/network_delete_task.go b/pkg/compute/tasks/network_delete_task.go index 75436db5de..bee05a2922 100644 --- a/pkg/compute/tasks/network_delete_task.go +++ b/pkg/compute/tasks/network_delete_task.go @@ -30,7 +30,7 @@ func (self *NetworkDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneMod network := obj.(*models.SNetwork) network.SetStatus(self.UserCred, models.NETWORK_STATUS_DELETING, "") - db.OpsLog.LogEvent(network, db.ACT_DELOCATING, network.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(network, db.ACT_DELOCATING, network.GetShortDesc(ctx), self.UserCred) inet, err := network.GetINetwork() if inet != nil { diff --git a/pkg/compute/tasks/vpc_delete_task.go b/pkg/compute/tasks/vpc_delete_task.go index 5bffb80e97..e5b90a9b29 100644 --- a/pkg/compute/tasks/vpc_delete_task.go +++ b/pkg/compute/tasks/vpc_delete_task.go @@ -31,7 +31,7 @@ func (self *VpcDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneModel, vpc := obj.(*models.SVpc) vpc.SetStatus(self.UserCred, models.VPC_STATUS_DELETING, "") - db.OpsLog.LogEvent(vpc, db.ACT_DELOCATING, vpc.GetShortDesc(), self.UserCred) + db.OpsLog.LogEvent(vpc, db.ACT_DELOCATING, vpc.GetShortDesc(ctx), self.UserCred) region, err := vpc.GetIRegion() if err != nil {