From ee4060b591a58cdf794dd19d49056e79fb5355c7 Mon Sep 17 00:00:00 2001 From: ioito Date: Fri, 10 Dec 2021 16:41:41 +0800 Subject: [PATCH] fix(region): unified vpc not found error --- pkg/compute/models/vpcs.go | 3 +++ pkg/compute/regiondrivers/google.go | 23 --------------------- pkg/compute/regiondrivers/managedvirtual.go | 8 ++----- 3 files changed, 5 insertions(+), 29 deletions(-) diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index 7d48843603..12ea79ae51 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -854,6 +854,9 @@ func (self *SVpc) GetIRegion() (cloudprovider.ICloudRegion, error) { } func (self *SVpc) GetIVpc() (cloudprovider.ICloudVpc, error) { + if len(self.ExternalId) == 0 { + return nil, errors.Wrapf(cloudprovider.ErrNotFound, "empty external id") + } provider, err := self.GetDriver() if err != nil { return nil, errors.Wrapf(err, "vpc.GetDriver") diff --git a/pkg/compute/regiondrivers/google.go b/pkg/compute/regiondrivers/google.go index 8fae2d3d1f..4393993278 100644 --- a/pkg/compute/regiondrivers/google.go +++ b/pkg/compute/regiondrivers/google.go @@ -127,29 +127,6 @@ func (self *SGoogleRegionDriver) RequestCreateVpc(ctx context.Context, userCred return nil } -func (self *SGoogleRegionDriver) RequestDeleteVpc(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, vpc *models.SVpc, task taskman.ITask) error { - taskman.LocalTaskRun(task, func() (jsonutils.JSONObject, error) { - region, err := vpc.GetIRegion() - if err != nil { - return nil, errors.Wrap(err, "vpc.GetIRegion") - } - ivpc, err := region.GetIVpcById(vpc.GetExternalId()) - if err != nil { - if errors.Cause(err) == cloudprovider.ErrNotFound { - return nil, nil - } - return nil, errors.Wrap(err, "region.GetIVpcById") - } - - err = ivpc.Delete() - if err != nil { - return nil, errors.Wrap(err, "ivpc.Delete") - } - return nil, nil - }) - return nil -} - func (self *SGoogleRegionDriver) IsSupportedDBInstance() bool { return true } diff --git a/pkg/compute/regiondrivers/managedvirtual.go b/pkg/compute/regiondrivers/managedvirtual.go index 6f36f01ac6..938555caf0 100644 --- a/pkg/compute/regiondrivers/managedvirtual.go +++ b/pkg/compute/regiondrivers/managedvirtual.go @@ -1252,17 +1252,13 @@ func (self *SManagedVirtualizationRegionDriver) RequestCreateVpc(ctx context.Con func (self *SManagedVirtualizationRegionDriver) RequestDeleteVpc(ctx context.Context, userCred mcclient.TokenCredential, region *models.SCloudregion, vpc *models.SVpc, task taskman.ITask) error { taskman.LocalTaskRun(task, func() (jsonutils.JSONObject, error) { - region, err := vpc.GetIRegion() - if err != nil { - return nil, errors.Wrap(err, "vpc.GetIRegion") - } - ivpc, err := region.GetIVpcById(vpc.GetExternalId()) + ivpc, err := vpc.GetIVpc() if err != nil { if errors.Cause(err) == cloudprovider.ErrNotFound { // already deleted, do nothing return nil, nil } - return nil, errors.Wrap(err, "region.GetIVpcById") + return nil, errors.Wrap(err, "GetIVpc") } err = ivpc.Delete() if err != nil {