From 76a95e8ce87348b20b8f427a0acc604ee0faa3e4 Mon Sep 17 00:00:00 2001 From: Matt Potter Date: Wed, 24 May 2017 11:51:16 +0100 Subject: [PATCH] refactor to remove loop / use sets.String{} --- .../pkg/federation-controller/service/dns.go | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/federation/pkg/federation-controller/service/dns.go b/federation/pkg/federation-controller/service/dns.go index 5201110eefc..69b9e663dd0 100644 --- a/federation/pkg/federation-controller/service/dns.go +++ b/federation/pkg/federation-controller/service/dns.go @@ -333,28 +333,23 @@ func findRrset(list []dnsprovider.ResourceRecordSet, rrset dnsprovider.ResourceR non-nil error is also returned (possibly along with a partially complete list of resolved endpoints. */ func getResolvedEndpoints(endpoints []string) ([]string, error) { - resolvedEndpoints := make([]string, 0, len(endpoints)) + resolvedEndpoints := sets.String{} for _, endpoint := range endpoints { if net.ParseIP(endpoint) == nil { // It's not a valid IP address, so assume it's a DNS name, and try to resolve it, // replacing its DNS name with its IP addresses in expandedEndpoints ipAddrs, err := net.LookupHost(endpoint) if err != nil { - return resolvedEndpoints, err + return resolvedEndpoints.List(), err + } + for _, ip := range ipAddrs { + resolvedEndpoints = resolvedEndpoints.Union(sets.NewString(ip)) } - resolvedEndpoints = append(resolvedEndpoints, ipAddrs...) } else { - resolvedEndpoints = append(resolvedEndpoints, endpoint) + resolvedEndpoints = resolvedEndpoints.Union(sets.NewString(endpoint)) } } - deduped := sets.String{} - - for _, endpoint := range resolvedEndpoints { - if !deduped.Has(endpoint) { - deduped.Insert(endpoint) - } - } - return deduped.List(), nil + return resolvedEndpoints.List(), nil } /* ensureDNSRrsets ensures (idempotently, and with minimum mutations) that all of the DNS resource record sets for dnsName are consistent with endpoints.