From 4500feb2f2f39f0baaa84310239766bbd7d98a74 Mon Sep 17 00:00:00 2001 From: tb365 Date: Mon, 13 Sep 2021 11:40:06 +0800 Subject: [PATCH] pure hcso zone is not empty fix --- pkg/compute/models/purge.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pkg/compute/models/purge.go b/pkg/compute/models/purge.go index 147cb60bd3..6ceb7b9468 100644 --- a/pkg/compute/models/purge.go +++ b/pkg/compute/models/purge.go @@ -16,6 +16,7 @@ package models import ( "context" + "database/sql" "fmt" "yunion.io/x/log" @@ -1234,6 +1235,16 @@ func (manager *SCloudregionManager) purgeAll(ctx context.Context, userCred mccli return err } for i := range regions { + c, err := CloudproviderRegionManager.Query().NotEquals("cloudprovider_id", providerId).Equals("cloudregion_id", regions[i].GetId()).CountWithError() + if err != nil && errors.Cause(err) != sql.ErrNoRows { + return err + } + // 仍然有其他provider在使用该region + if c > 0 { + log.Infof("cloud region is using by other providers.skipped purge region %s with id %s", regions[i].GetName(), regions[i].GetId()) + return nil + } + err = regions[i].purge(ctx, userCred) if err != nil { return err