From d006f62f8fef9810f5112a1078e23deb67e30eb6 Mon Sep 17 00:00:00 2001 From: Craig Peterson Date: Fri, 7 Sep 2018 13:46:44 -0400 Subject: [PATCH] make sure key/value grouping always uses fqdn --- integrationTest/integration_test.go | 2 ++ models/record.go | 6 +++--- providers/diff/diff.go | 2 +- providers/ns1/ns1provider.go | 3 +-- providers/route53/route53Provider.go | 6 +++--- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/integrationTest/integration_test.go b/integrationTest/integration_test.go index b3e1197e4..3e71e95fc 100644 --- a/integrationTest/integration_test.go +++ b/integrationTest/integration_test.go @@ -547,5 +547,7 @@ func makeTests(t *testing.T) []*TestCase { ) } + // Empty last + tc("Empty") return tests } diff --git a/models/record.go b/models/record.go index 5016836ef..c4479a6bf 100644 --- a/models/record.go +++ b/models/record.go @@ -240,8 +240,8 @@ func (rc *RecordConfig) ToRR() dns.RR { // RecordKey represents a resource record in a format used by some systems. type RecordKey struct { - Name string - Type string + NameFQDN string + Type string } // Key converts a RecordConfig into a RecordKey. @@ -254,7 +254,7 @@ func (rc *RecordConfig) Key() RecordKey { t = fmt.Sprintf("%s_%s", t, v) } } - return RecordKey{rc.Name, t} + return RecordKey{rc.NameFQDN, t} } // Records is a list of *RecordConfig. diff --git a/providers/diff/diff.go b/providers/diff/diff.go index 56e24c06b..e0947833f 100644 --- a/providers/diff/diff.go +++ b/providers/diff/diff.go @@ -91,7 +91,7 @@ func (d *differ) IncrementalDiff(existing []*models.RecordConfig) (unchanged, cr if d.dc.KeepUnknown { for k := range existingByNameAndType { if _, ok := desiredByNameAndType[k]; !ok { - log.Printf("Ignoring record set %s %s due to NO_PURGE", k.Type, k.Name) + log.Printf("Ignoring record set %s %s due to NO_PURGE", k.Type, k.NameFQDN) delete(existingByNameAndType, k) } } diff --git a/providers/ns1/ns1provider.go b/providers/ns1/ns1provider.go index fb1a1fb87..ae33baa7a 100644 --- a/providers/ns1/ns1provider.go +++ b/providers/ns1/ns1provider.go @@ -14,7 +14,6 @@ import ( "strings" "github.com/StackExchange/dnscontrol/providers/diff" - "github.com/miekg/dns/dnsutil" "gopkg.in/ns1/ns1-go.v2/rest" "gopkg.in/ns1/ns1-go.v2/rest/model/dns" ) @@ -108,7 +107,7 @@ func (n *nsone) add(recs models.Records, domain string) error { } func (n *nsone) remove(key models.RecordKey, domain string) error { - _, err := n.Records.Delete(domain, dnsutil.AddOrigin(key.Name, domain), key.Type) + _, err := n.Records.Delete(domain, key.NameFQDN, key.Type) return err } diff --git a/providers/route53/route53Provider.go b/providers/route53/route53Provider.go index a0193f368..fd7afcbf4 100644 --- a/providers/route53/route53Provider.go +++ b/providers/route53/route53Provider.go @@ -191,13 +191,13 @@ func (r *route53Provider) GetDomainCorrections(dc *models.DomainConfig) ([]*mode delDesc += strings.Join(namesToUpdate[k], "\n") + "\n" // on delete just submit the original resource set we got from r53. for _, r := range records { - if unescape(r.Name) == k.Name && (*r.Type == k.Type || k.Type == "R53_ALIAS_"+*r.Type) { + if unescape(r.Name) == k.NameFQDN && (*r.Type == k.Type || k.Type == "R53_ALIAS_"+*r.Type) { rrset = r break } } if rrset == nil { - return nil, fmt.Errorf("No record set found to delete. Name: '%s'. Type: '%s'", k.Name, k.Type) + return nil, fmt.Errorf("No record set found to delete. Name: '%s'. Type: '%s'", k.NameFQDN, k.Type) } } else { changes = append(changes, chg) @@ -205,7 +205,7 @@ func (r *route53Provider) GetDomainCorrections(dc *models.DomainConfig) ([]*mode // on change or create, just build a new record set from our desired state chg.Action = sPtr("UPSERT") rrset = &r53.ResourceRecordSet{ - Name: sPtr(k.Name), + Name: sPtr(k.NameFQDN), Type: sPtr(k.Type), } for _, r := range recs {