From 5aa26cd36c1e6040a4929d15f421a6a1586a0879 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Thu, 4 Feb 2021 11:00:55 +0800 Subject: [PATCH] fix(region): delete not exist disk failed --- pkg/compute/hostdrivers/kvm.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/compute/hostdrivers/kvm.go b/pkg/compute/hostdrivers/kvm.go index cf443ea527..f4f2f9d534 100644 --- a/pkg/compute/hostdrivers/kvm.go +++ b/pkg/compute/hostdrivers/kvm.go @@ -31,6 +31,7 @@ import ( api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudcommon/cmdline" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/cloudprovider" "yunion.io/x/onecloud/pkg/compute/baremetal" "yunion.io/x/onecloud/pkg/compute/models" "yunion.io/x/onecloud/pkg/compute/options" @@ -291,7 +292,13 @@ func (self *SKVMHostDriver) RequestDeallocateDiskOnHost(ctx context.Context, hos url := fmt.Sprintf("/disks/%s/delete/%s", storage.Id, disk.Id) body := jsonutils.NewDict() _, err := host.Request(ctx, task.GetUserCred(), "POST", url, header, body) - return err + if err != nil { + if errors.Cause(err) == cloudprovider.ErrNotFound { + return task.ScheduleRun(nil) + } + return err + } + return nil } func (driver *SKVMHostDriver) RequestDeallocateBackupDiskOnHost(ctx context.Context, host *models.SHost, storage *models.SStorage, disk *models.SDisk, task taskman.ITask) error {