tpgtools/ignored_handwritten/common_skip_delete.go (25 lines of code) (raw):
package google
import (
"context"
"log"
dns "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/dns"
transport_tpg "github.com/hashicorp/terraform-provider-google/google/transport"
)
// Skip delete for DNS record set if the record is for the primary NS record
func rrefSkipDelete(c *transport_tpg.Config, recordSet *dns.ResourceRecordSet) (bool, error) {
if *recordSet.DnsType != "NS" {
// Only skip for NS records in some circumstances
return false, nil
}
mz := &dns.ManagedZone{
Name: recordSet.ManagedZone,
Project: recordSet.Project,
}
res, err := c.clientDnsDCL.GetManagedZone(context.Background(), mz)
if err != nil {
return false, err
}
// Subdomains can be deleted, so check if this is one
if *res.DnsName == *recordSet.DnsName {
log.Println("[DEBUG] NS records can't be deleted due to API restrictions, so they're being left in place. See https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/dns_record_set for more information.")
return true, nil
}
return false, nil
}