fix(region): detach all snapshotpolicy when realdeleting disk

This commit is contained in:
rainzm
2020-10-30 14:47:44 +08:00
parent c6864e4ae6
commit e660946d25
4 changed files with 5 additions and 15 deletions
+4
View File
@@ -1848,6 +1848,10 @@ func (self *SDisk) Delete(ctx context.Context, userCred mcclient.TokenCredential
}
func (self *SDisk) RealDelete(ctx context.Context, userCred mcclient.TokenCredential) error {
err := self.DetachAllSnapshotpolicies(ctx, userCred)
if err != nil {
log.Errorf("unable to DetachAllSnapshotpolicies: %v", err)
}
return self.SVirtualResourceBase.Delete(ctx, userCred)
}
+1 -6
View File
@@ -149,12 +149,7 @@ func (disk *SDisk) purge(ctx context.Context, userCred mcclient.TokenCredential)
lockman.LockObject(ctx, disk)
defer lockman.ReleaseObject(ctx, disk)
err := disk.DetachAllSnapshotpolicies(ctx, userCred)
if err != nil {
return errors.Wrap(err, "disk.DetachAllSnapshotpolicies")
}
err = disk.ValidatePurgeCondition(ctx)
err := disk.ValidatePurgeCondition(ctx)
if err != nil {
return err
}
-1
View File
@@ -179,7 +179,6 @@ func (self *DiskDeleteTask) OnGuestDiskDeleteComplete(ctx context.Context, obj d
if len(disk.SnapshotId) > 0 && disk.GetMetadata("merge_snapshot", nil) == "true" {
models.SnapshotManager.AddRefCount(disk.SnapshotId, -1)
}
disk.DetachAllSnapshotpolicies(ctx, self.UserCred)
disk.RealDelete(ctx, self.UserCred)
self.SetStageComplete(ctx, nil)
}
@@ -80,14 +80,6 @@ func (self *GuestDetachDiskTask) OnDetachDiskComplete(ctx context.Context, guest
return
}
disk := objDisk.(*models.SDisk)
// detach disk and snapshotpolicy if hypervisor is kvm
if guest.Hypervisor == api.HYPERVISOR_KVM {
err := disk.DetachAllSnapshotpolicies(ctx, self.UserCred)
if err != nil {
self.OnTaskFail(ctx, guest, nil, jsonutils.NewString(fmt.Sprintf("detach all snapshotpolicies failed: %s", err.Error())))
return
}
}
disk.SetStatus(self.UserCred, api.DISK_READY, "on detach disk complete")
keepDisk := jsonutils.QueryBoolean(self.Params, "keep_disk", true)
host := guest.GetHost()