diff --git a/provider/azure.go b/provider/azure.go index b1d083413..e044761d0 100644 --- a/provider/azure.go +++ b/provider/azure.go @@ -112,9 +112,9 @@ func NewAzureProvider(configFile string, domainFilter DomainFilter, zoneIDFilter return nil, fmt.Errorf("failed to create service principal token: %v", err) } - zonesClient := dns.NewZonesClient(cfg.SubscriptionID) + zonesClient := dns.NewZonesClientWithBaseURI(environment.ResourceManagerEndpoint, cfg.SubscriptionID) zonesClient.Authorizer = autorest.NewBearerAuthorizer(token) - recordsClient := dns.NewRecordSetsClient(cfg.SubscriptionID) + recordsClient := dns.NewRecordSetsClientWithBaseURI(environment.ResourceManagerEndpoint, cfg.SubscriptionID) recordsClient.Authorizer = autorest.NewBearerAuthorizer(token) provider := &AzureProvider{ diff --git a/provider/designate.go b/provider/designate.go index fa816019e..a43bef919 100644 --- a/provider/designate.go +++ b/provider/designate.go @@ -241,12 +241,24 @@ func NewDesignateProvider(domainFilter DomainFilter, dryRun bool) (Provider, err }, nil } -// converts domain name to FQDN -func canonicalizeDomainName(domain string) string { - if !strings.HasSuffix(domain, ".") { - domain += "." +// converts domain names to FQDN +func canonicalizeDomainNames(domains []string) []string { + var cDomains []string + for _, d := range domains { + if !strings.HasSuffix(d, ".") { + d += "." + cDomains = append(cDomains, strings.ToLower(d)) + } } - return strings.ToLower(domain) + return cDomains +} + +// converts domain name to FQDN +func canonicalizeDomainName(d string) string { + if !strings.HasSuffix(d, ".") { + d += "." + } + return strings.ToLower(d) } // returns ZoneID -> ZoneName mapping for zones that are managed by the Designate and match domain filter @@ -352,14 +364,14 @@ func addEndpoint(ep *endpoint.Endpoint, recordSets map[string]*recordSet, delete rs.names[rec] = true } } - - for _, target := range ep.Targets { - if ep.RecordType == endpoint.RecordTypeCNAME { - target = canonicalizeDomainName(target) - } - rs.names[target] = !delete - recordSets[key] = rs + targets := ep.Targets + if ep.RecordType == endpoint.RecordTypeCNAME { + targets = canonicalizeDomainNames(targets) } + for _, t := range targets { + rs.names[t] = !delete + } + recordSets[key] = rs } // ApplyChanges applies a given set of changes in a given zone. diff --git a/provider/designate_test.go b/provider/designate_test.go index acd1daf69..05e01f465 100644 --- a/provider/designate_test.go +++ b/provider/designate_test.go @@ -181,7 +181,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "www.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.1"}, + Targets: endpoint.Targets{"10.1.1.1"}, Labels: map[string]string{ designateRecordSetID: rs11ID, designateZoneID: zone1ID, @@ -191,7 +191,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "www.example.com", RecordType: endpoint.RecordTypeTXT, - Targets: []string{"text1"}, + Targets: endpoint.Targets{"text1"}, Labels: map[string]string{ designateRecordSetID: rs12ID, designateZoneID: zone1ID, @@ -201,7 +201,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "ftp.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.2"}, + Targets: endpoint.Targets{"10.1.1.2"}, Labels: map[string]string{ designateRecordSetID: rs14ID, designateZoneID: zone1ID, @@ -211,7 +211,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "srv.test.net", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.1"}, + Targets: endpoint.Targets{"10.2.1.1"}, Labels: map[string]string{ designateRecordSetID: rs21ID, designateZoneID: zone2ID, @@ -221,7 +221,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "srv.test.net", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.2"}, + Targets: endpoint.Targets{"10.2.1.2"}, Labels: map[string]string{ designateRecordSetID: rs21ID, designateZoneID: zone2ID, @@ -231,7 +231,7 @@ func TestDesignateRecords(t *testing.T) { { DNSName: "db.test.net", RecordType: endpoint.RecordTypeCNAME, - Targets: []string{"sql.test.net"}, + Targets: endpoint.Targets{"sql.test.net"}, Labels: map[string]string{ designateRecordSetID: rs22ID, designateZoneID: zone2ID, @@ -278,37 +278,37 @@ func testDesignateCreateRecords(t *testing.T, client *fakeDesignateClient) []*re { DNSName: "www.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.1"}, + Targets: endpoint.Targets{"10.1.1.1"}, Labels: map[string]string{}, }, { DNSName: "www.example.com", RecordType: endpoint.RecordTypeTXT, - Targets: []string{"text1"}, + Targets: endpoint.Targets{"text1"}, Labels: map[string]string{}, }, { DNSName: "ftp.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.2"}, + Targets: endpoint.Targets{"10.1.1.2"}, Labels: map[string]string{}, }, { DNSName: "srv.test.net", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.1"}, + Targets: endpoint.Targets{"10.2.1.1"}, Labels: map[string]string{}, }, { DNSName: "srv.test.net", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.2"}, + Targets: endpoint.Targets{"10.2.1.2"}, Labels: map[string]string{}, }, { DNSName: "db.test.net", RecordType: endpoint.RecordTypeCNAME, - Targets: []string{"sql.test.net"}, + Targets: endpoint.Targets{"sql.test.net"}, Labels: map[string]string{}, }, } @@ -389,7 +389,7 @@ func testDesignateUpdateRecords(t *testing.T, client *fakeDesignateClient) []*re { DNSName: "ftp.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.2"}, + Targets: endpoint.Targets{"10.1.1.2"}, Labels: map[string]string{ designateZoneID: "zone-1", designateRecordSetID: expected[2].ID, @@ -399,7 +399,7 @@ func testDesignateUpdateRecords(t *testing.T, client *fakeDesignateClient) []*re { DNSName: "srv.test.net.", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.2"}, + Targets: endpoint.Targets{"10.2.1.2"}, Labels: map[string]string{ designateZoneID: "zone-2", designateRecordSetID: expected[3].ID, @@ -411,7 +411,7 @@ func testDesignateUpdateRecords(t *testing.T, client *fakeDesignateClient) []*re { DNSName: "ftp.example.com", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.3.3.1"}, + Targets: endpoint.Targets{"10.3.3.1"}, Labels: map[string]string{ designateZoneID: "zone-1", designateRecordSetID: expected[2].ID, @@ -421,7 +421,7 @@ func testDesignateUpdateRecords(t *testing.T, client *fakeDesignateClient) []*re { DNSName: "srv.test.net.", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.3.3.2"}, + Targets: endpoint.Targets{"10.3.3.2"}, Labels: map[string]string{ designateZoneID: "zone-2", designateRecordSetID: expected[3].ID, @@ -472,7 +472,7 @@ func testDesignateDeleteRecords(t *testing.T, client *fakeDesignateClient) { { DNSName: "www.example.com.", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.1.1.1"}, + Targets: endpoint.Targets{"10.1.1.1"}, Labels: map[string]string{ designateZoneID: "zone-1", designateRecordSetID: expected[0].ID, @@ -482,7 +482,7 @@ func testDesignateDeleteRecords(t *testing.T, client *fakeDesignateClient) { { DNSName: "srv.test.net.", RecordType: endpoint.RecordTypeA, - Targets: []string{"10.2.1.1"}, + Targets: endpoint.Targets{"10.2.1.1"}, Labels: map[string]string{ designateZoneID: "zone-2", designateRecordSetID: expected[3].ID,