mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 10:46:58 +08:00
snapshot log event for billing
This commit is contained in:
@@ -488,7 +488,11 @@ func (self *SAliyunGuestDriver) RequestDiskSnapshot(ctx context.Context, guest *
|
||||
res := jsonutils.NewDict()
|
||||
res.Set("snapshot_id", jsonutils.NewString(cloudSnapshot.GetId()))
|
||||
res.Set("manager_id", jsonutils.NewString(cloudSnapshot.GetManagerId()))
|
||||
res.Set("cloudregion_id", jsonutils.NewString(cloudSnapshot.GetRegionId()))
|
||||
cloudRegion, err := models.CloudregionManager.FetchByExternalId("Aliyun/" + cloudSnapshot.GetRegionId())
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Cloud region not found? %s", err)
|
||||
}
|
||||
res.Set("cloudregion_id", jsonutils.NewString(cloudRegion.GetId()))
|
||||
return res, nil
|
||||
})
|
||||
return nil
|
||||
|
||||
@@ -171,6 +171,21 @@ func (self *SSnapshot) getMoreDetails(extra *jsonutils.JSONDict) *jsonutils.JSON
|
||||
return extra
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetShortDesc() *jsonutils.JSONDict {
|
||||
res := self.SVirtualResourceBase.GetShortDesc()
|
||||
res.Add(jsonutils.NewInt(int64(self.Size)), "size")
|
||||
if cloudprovider := self.GetCloudprovider(); cloudprovider != nil {
|
||||
res.Add(jsonutils.NewString(cloudprovider.Provider), "hypervisor")
|
||||
}
|
||||
if len(self.CloudregionId) > 0 {
|
||||
cloudRegion := CloudregionManager.FetchRegionById(self.CloudregionId)
|
||||
if cloudRegion != nil {
|
||||
res.Add(jsonutils.NewString(cloudRegion.ExternalId), "region")
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func (self *SSnapshot) AllowCreateItem(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool {
|
||||
return false
|
||||
}
|
||||
@@ -282,7 +297,9 @@ func (self *SSnapshotManager) CreateSnapshot(ctx context.Context, userCred mccli
|
||||
snapshot.SetModelManager(self)
|
||||
snapshot.ProjectId = userCred.GetProjectId()
|
||||
snapshot.DiskId = disk.Id
|
||||
snapshot.StorageId = disk.StorageId
|
||||
if len(disk.ExternalId) == 0 {
|
||||
snapshot.StorageId = disk.StorageId
|
||||
}
|
||||
snapshot.Size = disk.DiskSize
|
||||
snapshot.DiskType = disk.DiskType
|
||||
snapshot.Location = location
|
||||
@@ -488,6 +505,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)
|
||||
return &snapshot, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -99,15 +99,15 @@ 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)
|
||||
logclient.AddActionLog(iSnapshot, logclient.ACT_CREATE, nil, self.UserCred, true)
|
||||
guest.StartSyncstatus(ctx, self.UserCred, self.GetTaskId())
|
||||
self.SetStage("OnSyncStatus", nil)
|
||||
}
|
||||
|
||||
func (self *GuestDiskSnapshotTask) OnSyncStatus(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, nil, self.UserCred)
|
||||
logclient.AddActionLog(iSnapshot, logclient.ACT_CREATE, nil, self.UserCred, true)
|
||||
self.SetStageComplete(ctx, nil)
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ func (self *SnapshotDeleteTask) OnInit(ctx context.Context, obj db.IStandaloneMo
|
||||
self.SetStageFailed(ctx, err.Error())
|
||||
} else {
|
||||
snapshot.RealDelete(ctx, self.GetUserCred())
|
||||
self.SetStageComplete(ctx, nil)
|
||||
self.TaskComplete(ctx, snapshot, nil)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -227,7 +227,7 @@ func (self *SnapshotDeleteTask) DeleteStaticSnapshot(ctx context.Context, snapsh
|
||||
self.TaskFailed(ctx, snapshot, err.Error())
|
||||
return
|
||||
}
|
||||
self.SetStageComplete(ctx, nil)
|
||||
self.TaskComplete(ctx, snapshot, nil)
|
||||
}
|
||||
|
||||
func (self *SnapshotDeleteTask) OnDeleteSnapshot(ctx context.Context, snapshot *models.SSnapshot, data jsonutils.JSONObject) {
|
||||
@@ -296,7 +296,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, nil, self.UserCred)
|
||||
db.OpsLog.LogEvent(snapshot, db.ACT_SNAPSHOT_DELETE, snapshot.GetShortDesc(), self.UserCred)
|
||||
logclient.AddActionLog(snapshot, logclient.ACT_DELETE, nil, self.UserCred, true)
|
||||
self.SetStageComplete(ctx, nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user