diff --git a/pkg/compute/models/cloudproviders.go b/pkg/compute/models/cloudproviders.go index bf26e1c0e1..fb6892c6b1 100644 --- a/pkg/compute/models/cloudproviders.go +++ b/pkg/compute/models/cloudproviders.go @@ -1482,6 +1482,7 @@ func (self *SCloudprovider) RealDelete(ctx context.Context, userCred mcclient.To MongoDBManager, ElasticSearchManager, KafkaManager, + CDNDomainManager, NetworkInterfaceManager, KubeClusterManager, CloudproviderRegionManager, diff --git a/pkg/compute/models/purge.go b/pkg/compute/models/purge.go index 74d7bf02ba..e8892be9ed 100644 --- a/pkg/compute/models/purge.go +++ b/pkg/compute/models/purge.go @@ -2047,6 +2047,24 @@ func (manager *SKafkaManager) purgeAll(ctx context.Context, userCred mcclient.To return nil } +func (manager *SCDNDomainManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error { + domains := []SCDNDomain{} + err := fetchByManagerId(manager, providerId, &domains) + if err != nil { + return errors.Wrapf(err, "fetchByManagerId") + } + for i := range domains { + lockman.LockObject(ctx, &domains[i]) + defer lockman.ReleaseObject(ctx, &domains[i]) + + err := domains[i].RealDelete(ctx, userCred) + if err != nil { + return errors.Wrapf(err, "cdn domain delete") + } + } + return nil +} + func (manager *SKubeClusterManager) purgeAll(ctx context.Context, userCred mcclient.TokenCredential, providerId string) error { clusters := []SKubeCluster{} err := fetchByManagerId(manager, providerId, &clusters)