review comments

This commit is contained in:
allurisravanth 2023-07-06 08:57:11 +05:30
parent 688e03921c
commit 200c3f3fb3

View File

@ -374,24 +374,22 @@ func (p *AlibabaCloudProvider) groupRecords(records []alidns.Record) (endpointMa
func (p *AlibabaCloudProvider) records() ([]alidns.Record, error) { func (p *AlibabaCloudProvider) records() ([]alidns.Record, error) {
log.Infof("Retrieving Alibaba Cloud DNS Domain Records") log.Infof("Retrieving Alibaba Cloud DNS Domain Records")
var results []alidns.Record var results []alidns.Record
hostedZoneNames, err := p.getDomainList() hostedZoneDomains, err := p.getDomainList()
if err != nil { if err != nil {
log.Errorf("AlibabaCloudProvider getDomainList error %v", err) return results, fmt.Errorf("getDomainList: %w", err)
return results, err
} }
if len(p.domainFilter.Filters) == 0 { if !p.domainFilter.IsConfigured() {
var tmpResults []alidns.Record for _, zoneDomain := range hostedZoneDomains {
for _, zone := range hostedZoneNames { domainRecords, err := p.getDomainRecords(zoneDomain)
tmpResults, err = p.getDomainRecords(zone)
if err != nil { if err != nil {
log.Errorf("AlibabaCloudProvider getDomainRecords %q error %v", zone, err) log.Errorf("AlibabaCloudProvider getDomainRecords %q error %v", zoneDomain, err)
continue continue
} }
results = append(results, tmpResults...) results = append(results, domainRecords...)
} }
} else { } else {
for _, domainName := range p.domainFilter.Filters { for _, domainName := range p.domainFilter.Filters {
_, domainName = p.splitDNSName(domainName, hostedZoneNames) _, domainName = p.splitDNSName(domainName, hostedZoneDomains)
tmpResults, err := p.getDomainRecords(domainName) tmpResults, err := p.getDomainRecords(domainName)
if err != nil { if err != nil {
log.Errorf("getDomainRecords %s error %v", domainName, err) log.Errorf("getDomainRecords %s error %v", domainName, err)
@ -495,8 +493,8 @@ func (p *AlibabaCloudProvider) unescapeTXTRecordValue(value string) string {
return value return value
} }
func (p *AlibabaCloudProvider) createRecord(endpoint *endpoint.Endpoint, target string, zones []string) error { func (p *AlibabaCloudProvider) createRecord(endpoint *endpoint.Endpoint, target string, hostedZoneDomains []string) error {
rr, domain := p.splitDNSName(endpoint.DNSName, zones) rr, domain := p.splitDNSName(endpoint.DNSName, hostedZoneDomains)
request := alidns.CreateAddDomainRecordRequest() request := alidns.CreateAddDomainRecordRequest()
request.DomainName = domain request.DomainName = domain
request.Type = endpoint.RecordType request.Type = endpoint.RecordType
@ -529,13 +527,13 @@ func (p *AlibabaCloudProvider) createRecord(endpoint *endpoint.Endpoint, target
} }
func (p *AlibabaCloudProvider) createRecords(endpoints []*endpoint.Endpoint) error { func (p *AlibabaCloudProvider) createRecords(endpoints []*endpoint.Endpoint) error {
zones, err := p.getDomainList() hostedZoneDomains, err := p.getDomainList()
if err != nil { if err != nil {
return err return err
} }
for _, endpoint := range endpoints { for _, endpoint := range endpoints {
for _, target := range endpoint.Targets { for _, target := range endpoint.Targets {
p.createRecord(endpoint, target, zones) p.createRecord(endpoint, target, hostedZoneDomains)
} }
} }
return nil return nil
@ -621,7 +619,7 @@ func (p *AlibabaCloudProvider) equals(record alidns.Record, endpoint *endpoint.E
} }
func (p *AlibabaCloudProvider) updateRecords(recordMap map[string][]alidns.Record, endpoints []*endpoint.Endpoint) error { func (p *AlibabaCloudProvider) updateRecords(recordMap map[string][]alidns.Record, endpoints []*endpoint.Endpoint) error {
zones, err := p.getDomainList() hostedZoneDomains, err := p.getDomainList()
if err != nil { if err != nil {
return err return err
} }
@ -661,24 +659,24 @@ func (p *AlibabaCloudProvider) updateRecords(recordMap map[string][]alidns.Recor
} }
} }
if !found { if !found {
p.createRecord(endpoint, target, zones) p.createRecord(endpoint, target, hostedZoneDomains)
} }
} }
} }
return nil return nil
} }
func (p *AlibabaCloudProvider) splitDNSName(dnsName string, zones []string) (rr string, domain string) { func (p *AlibabaCloudProvider) splitDNSName(dnsName string, hostedZoneDomains []string) (rr string, domain string) {
name := strings.TrimSuffix(dnsName, ".") name := strings.TrimSuffix(dnsName, ".")
// sort zones by dot, make sure subdomain at first // sort zones by dot count; make sure subdomains sort earlier
sort.Slice(zones, func(i, j int) bool { sort.Slice(hostedZoneDomains, func(i, j int) bool {
return strings.Count(zones[i], ".") > strings.Count(zones[j], ".") return strings.Count(hostedZoneDomains[i], ".") > strings.Count(hostedZoneDomains[j], ".")
}) })
found := false found := false
for _, filter := range zones { for _, filter := range hostedZoneDomains {
if strings.HasSuffix(name, "."+filter) { if strings.HasSuffix(name, "."+filter) {
rr = name[0 : len(name)-len(filter)-1] rr = name[0 : len(name)-len(filter)-1]
domain = filter domain = filter