mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-11-01 11:10:59 +01:00
review comments
This commit is contained in:
parent
688e03921c
commit
200c3f3fb3
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user