mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-07 10:06:57 +02:00
rfc2136: avoid index calculations
This commit is contained in:
parent
84ee04e575
commit
2333e93f1e
@ -389,8 +389,7 @@ func (r *rfc2136Provider) ApplyChanges(ctx context.Context, changes *plan.Change
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateOld := changes.UpdateOld()
|
for c, chunk := range chunkBy(changes.Update, r.batchChangeSize) {
|
||||||
for c, chunk := range chunkBy(changes.UpdateNew(), r.batchChangeSize) {
|
|
||||||
log.Debugf("Processing batch %d of update changes", c)
|
log.Debugf("Processing batch %d of update changes", c)
|
||||||
|
|
||||||
m := make(map[string]*dns.Msg)
|
m := make(map[string]*dns.Msg)
|
||||||
@ -400,21 +399,19 @@ func (r *rfc2136Provider) ApplyChanges(ctx context.Context, changes *plan.Change
|
|||||||
m[z] = new(dns.Msg)
|
m[z] = new(dns.Msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, ep := range chunk {
|
for _, update := range chunk {
|
||||||
if !r.domainFilter.Match(ep.DNSName) {
|
if !r.domainFilter.Match(update.New.DNSName) {
|
||||||
log.Debugf("Skipping record %s because it was filtered out by the specified --domain-filter", ep.DNSName)
|
log.Debugf("Skipping record %s because it was filtered out by the specified --domain-filter", update.New.DNSName)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
zone := findMsgZone(ep, r.zoneNames)
|
zone := findMsgZone(update.New, r.zoneNames)
|
||||||
m[zone].SetUpdate(zone)
|
m[zone].SetUpdate(zone)
|
||||||
|
|
||||||
// calculate corresponding index in the unsplitted UpdateOld for current endpoint ep in chunk
|
r.UpdateRecord(m[zone], update.Old, update.New)
|
||||||
j := (c * r.batchChangeSize) + i
|
if r.createPTR && (update.New.RecordType == "A" || update.New.RecordType == "AAAA") {
|
||||||
r.UpdateRecord(m[zone], updateOld[j], ep)
|
r.RemoveReverseRecord(update.Old.Targets[0], update.New.DNSName)
|
||||||
if r.createPTR && (ep.RecordType == "A" || ep.RecordType == "AAAA") {
|
r.AddReverseRecord(update.New.Targets[0], update.New.DNSName)
|
||||||
r.RemoveReverseRecord(updateOld[j].Targets[0], ep.DNSName)
|
|
||||||
r.AddReverseRecord(ep.Targets[0], ep.DNSName)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -629,16 +626,11 @@ func (r *rfc2136Provider) SendMessage(msg *dns.Msg) error {
|
|||||||
return lastErr
|
return lastErr
|
||||||
}
|
}
|
||||||
|
|
||||||
func chunkBy(slice []*endpoint.Endpoint, chunkSize int) [][]*endpoint.Endpoint {
|
func chunkBy[T any](slice []T, chunkSize int) [][]T {
|
||||||
var chunks [][]*endpoint.Endpoint
|
var chunks [][]T
|
||||||
|
|
||||||
for i := 0; i < len(slice); i += chunkSize {
|
for i := 0; i < len(slice); i += chunkSize {
|
||||||
end := i + chunkSize
|
end := min(i+chunkSize, len(slice))
|
||||||
|
|
||||||
if end > len(slice) {
|
|
||||||
end = len(slice)
|
|
||||||
}
|
|
||||||
|
|
||||||
chunks = append(chunks, slice[i:end])
|
chunks = append(chunks, slice[i:end])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user