fix(regin,host): delete snapshots after stream complete (#20084)

This commit is contained in:
wanyaoqi
2024-04-19 18:27:09 +08:00
committed by GitHub
parent 386fadb407
commit 3eb713bffe
2 changed files with 20 additions and 6 deletions
+18 -6
View File
@@ -3150,13 +3150,25 @@ func (self *SGuest) PerformStatus(ctx context.Context, userCred mcclient.TokenCr
}
}
if ispId := self.GetMetadata(ctx, api.BASE_INSTANCE_SNAPSHOT_ID, userCred); len(ispId) > 0 {
ispM, err := InstanceSnapshotManager.FetchById(ispId)
if err == nil {
isp := ispM.(*SInstanceSnapshot)
isp.DecRefCount(ctx, userCred)
if input.Status == api.VM_RUNNING && input.BlockJobsCount == 0 {
if ispId := self.GetMetadata(ctx, api.BASE_INSTANCE_SNAPSHOT_ID, userCred); len(ispId) > 0 {
var disksMerged = true
disks, _ := self.GetDisks()
for _, disk := range disks {
if disk.GetMetadata(ctx, "merge_snapshot", userCred) == "true" {
disksMerged = false
}
}
if disksMerged {
ispM, err := InstanceSnapshotManager.FetchById(ispId)
if err == nil {
isp := ispM.(*SInstanceSnapshot)
isp.DecRefCount(ctx, userCred)
}
self.SetMetadata(ctx, api.BASE_INSTANCE_SNAPSHOT_ID, "", userCred)
}
}
self.SetMetadata(ctx, api.BASE_INSTANCE_SNAPSHOT_ID, "", userCred)
}
if preStatus != self.Status && !self.isNotRunningStatus(preStatus) && self.isNotRunningStatus(self.Status) {
+2
View File
@@ -2958,6 +2958,8 @@ func (s *SKVMGuestInstance) sendStreamDisksComplete(ctx context.Context) {
if err := s.SaveLiveDesc(s.Desc); err != nil {
log.Errorf("save guest desc failed %s", err)
}
s.SyncStatus("")
}
func (s *SKVMGuestInstance) GetQemuVersionStr() string {