From 0b0cddd2befb697ea35c30837c2a7cde4fe22d8c Mon Sep 17 00:00:00 2001 From: ioito Date: Wed, 10 Jul 2019 14:46:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=97=A0=E9=99=90=E5=88=A0?= =?UTF-8?q?=E9=99=A4guest=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/guestdrivers/managedvirtual.go | 8 ++++++++ pkg/compute/models/hosts.go | 3 +++ 2 files changed, 11 insertions(+) diff --git a/pkg/compute/guestdrivers/managedvirtual.go b/pkg/compute/guestdrivers/managedvirtual.go index 9b68885230..5567a54aee 100644 --- a/pkg/compute/guestdrivers/managedvirtual.go +++ b/pkg/compute/guestdrivers/managedvirtual.go @@ -152,6 +152,10 @@ func (self *SManagedVirtualizedGuestDriver) RequestDetachDisk(ctx context.Contex taskman.LocalTaskRun(task, func() (jsonutils.JSONObject, error) { iVM, err := guest.GetIVM() if err != nil { + //若guest被删除,忽略错误,否则会无限删除guest失败(有挂载的云盘) + if err == cloudprovider.ErrNotFound { + return nil, nil + } return nil, errors.Wrapf(err, "guest.GetIVM") } if len(disk.ExternalId) == 0 { @@ -522,6 +526,10 @@ func (self *SManagedVirtualizedGuestDriver) RequestUndeployGuestOnHost(ctx conte taskman.LocalTaskRun(task, func() (jsonutils.JSONObject, error) { ihost, err := host.GetIHost() if err != nil { + //私有云宿主机有可能下线,会导致虚拟机无限删除失败 + if err == cloudprovider.ErrNotFound { + return nil, nil + } log.Errorf("host.GetIHost fail %s", err) return nil, err } diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index ae4d7b72b8..fca810877b 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -2198,6 +2198,9 @@ func (self *SHost) GetIHostAndProvider() (cloudprovider.ICloudHost, cloudprovide } ihost, err := iregion.GetIHostById(self.ExternalId) if err != nil { + if err == cloudprovider.ErrNotFound { + return nil, nil, cloudprovider.ErrNotFound + } log.Errorf("fail to find ihost by id %s %s", self.ExternalId, err) return nil, nil, fmt.Errorf("fail to find ihost by id %s", err) }