This commit is contained in:
Andy Bursavich 2022-09-20 15:49:18 -07:00 committed by Alejandro J. Nuñez Madrazo
parent 480e7c0041
commit f6392be41e
No known key found for this signature in database
GPG Key ID: D8E13AE5AD7AAE3E
78 changed files with 330 additions and 425 deletions

View File

@ -31,7 +31,7 @@ func removeLinkPrefixInIndex() {
updatedContent := strings.ReplaceAll(string(content), "](./docs/", "](") updatedContent := strings.ReplaceAll(string(content), "](./docs/", "](")
updatedContent = strings.ReplaceAll(updatedContent, "](docs/", "](") updatedContent = strings.ReplaceAll(updatedContent, "](docs/", "](")
f, err := os.OpenFile("./docs/index.md", os.O_RDWR, 0644) f, err := os.OpenFile("./docs/index.md", os.O_RDWR, 0o644)
if err != nil { if err != nil {
log.Fatalf("Could not open index.md file to update content. Original error: %s", err) log.Fatalf("Could not open index.md file to update content. Original error: %s", err)
} }

View File

@ -23,10 +23,8 @@ import (
"strings" "strings"
) )
var (
// ErrInvalidHeritage is returned when heritage was not found, or different heritage is found // ErrInvalidHeritage is returned when heritage was not found, or different heritage is found
ErrInvalidHeritage = errors.New("heritage is unknown or not found") var ErrInvalidHeritage = errors.New("heritage is unknown or not found")
)
const ( const (
heritage = "external-dns" heritage = "external-dns"

View File

@ -1,3 +1,4 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated // +build !ignore_autogenerated
/* /*

View File

@ -37,10 +37,8 @@ const (
passwordMask = "******" passwordMask = "******"
) )
var (
// Version is the current version of the app, generated at build time // Version is the current version of the app, generated at build time
Version = "unknown" var Version = "unknown"
)
// Config is a project-wide configuration // Config is a project-wide configuration
type Config struct { type Config struct {

View File

@ -168,7 +168,7 @@ func TestValidateGoodRfc2136Config(t *testing.T) {
} }
func TestValidateBadRfc2136GssTsigConfig(t *testing.T) { func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
var invalidRfc2136GssTsigConfigs = []*externaldns.Config{ invalidRfc2136GssTsigConfigs := []*externaldns.Config{
{ {
LogFormat: "json", LogFormat: "json",
Sources: []string{"test-source"}, Sources: []string{"test-source"},
@ -258,7 +258,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
} }
func TestValidateGoodRfc2136GssTsigConfig(t *testing.T) { func TestValidateGoodRfc2136GssTsigConfig(t *testing.T) {
var validRfc2136GssTsigConfigs = []*externaldns.Config{ validRfc2136GssTsigConfigs := []*externaldns.Config{
{ {
LogFormat: "json", LogFormat: "json",
Sources: []string{"test-source"}, Sources: []string{"test-source"},

View File

@ -569,7 +569,6 @@ func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceReplace() {
// TODO: remove once multiple-target per endpoint is supported // TODO: remove once multiple-target per endpoint is supported
func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceRetain() { func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceRetain() {
current := []*endpoint.Endpoint{suite.fooV1Cname, suite.bar192A} current := []*endpoint.Endpoint{suite.fooV1Cname, suite.bar192A}
desired := []*endpoint.Endpoint{suite.fooV1Cname, suite.fooV3CnameSameResource} desired := []*endpoint.Endpoint{suite.fooV1Cname, suite.fooV3CnameSameResource}
expectedCreate := []*endpoint.Endpoint{} expectedCreate := []*endpoint.Endpoint{}
@ -592,7 +591,6 @@ func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceRetain() {
} }
func (suite *PlanTestSuite) TestMultipleRecordsSameNameDifferentSetIdentifier() { func (suite *PlanTestSuite) TestMultipleRecordsSameNameDifferentSetIdentifier() {
current := []*endpoint.Endpoint{suite.multiple1} current := []*endpoint.Endpoint{suite.multiple1}
desired := []*endpoint.Endpoint{suite.multiple2, suite.multiple3} desired := []*endpoint.Endpoint{suite.multiple2, suite.multiple3}
expectedCreate := []*endpoint.Endpoint{suite.multiple3} expectedCreate := []*endpoint.Endpoint{suite.multiple3}
@ -615,7 +613,6 @@ func (suite *PlanTestSuite) TestMultipleRecordsSameNameDifferentSetIdentifier()
} }
func (suite *PlanTestSuite) TestSetIdentifierUpdateCreatesAndDeletes() { func (suite *PlanTestSuite) TestSetIdentifierUpdateCreatesAndDeletes() {
current := []*endpoint.Endpoint{suite.multiple2} current := []*endpoint.Endpoint{suite.multiple2}
desired := []*endpoint.Endpoint{suite.multiple3} desired := []*endpoint.Endpoint{suite.multiple3}
expectedCreate := []*endpoint.Endpoint{suite.multiple3} expectedCreate := []*endpoint.Endpoint{suite.multiple3}
@ -638,7 +635,6 @@ func (suite *PlanTestSuite) TestSetIdentifierUpdateCreatesAndDeletes() {
} }
func (suite *PlanTestSuite) TestDomainFiltersInitial() { func (suite *PlanTestSuite) TestDomainFiltersInitial() {
current := []*endpoint.Endpoint{suite.domainFilterExcluded} current := []*endpoint.Endpoint{suite.domainFilterExcluded}
desired := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3} desired := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3}
expectedCreate := []*endpoint.Endpoint{suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3} expectedCreate := []*endpoint.Endpoint{suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3}
@ -662,7 +658,6 @@ func (suite *PlanTestSuite) TestDomainFiltersInitial() {
} }
func (suite *PlanTestSuite) TestDomainFiltersUpdate() { func (suite *PlanTestSuite) TestDomainFiltersUpdate() {
current := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2} current := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2}
desired := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3} desired := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3}
expectedCreate := []*endpoint.Endpoint{suite.domainFilterFiltered3} expectedCreate := []*endpoint.Endpoint{suite.domainFilterFiltered3}
@ -686,7 +681,6 @@ func (suite *PlanTestSuite) TestDomainFiltersUpdate() {
} }
func (suite *PlanTestSuite) TestMissing() { func (suite *PlanTestSuite) TestMissing() {
missing := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2, suite.domainFilterExcludedTXT} missing := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2, suite.domainFilterExcludedTXT}
expectedCreate := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2} expectedCreate := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2}
@ -893,7 +887,6 @@ func TestShouldUpdateProviderSpecific(tt *testing.T) {
} }
b := plan.shouldUpdateProviderSpecific(test.desired, test.current) b := plan.shouldUpdateProviderSpecific(test.desired, test.current)
assert.Equal(t, test.shouldUpdate, b) assert.Equal(t, test.shouldUpdate, b)
}) })
} }
} }

View File

@ -193,7 +193,6 @@ func (p AkamaiProvider) fetchZones() (akamaiZones, error) {
queryArgs.ContractIds = strings.Join(p.zoneIDFilter.ZoneIDs, ",") queryArgs.ContractIds = strings.Join(p.zoneIDFilter.ZoneIDs, ",")
} }
resp, err := p.client.ListZones(queryArgs) // retrieve all primary zones filtered by contract ids resp, err := p.client.ListZones(queryArgs) // retrieve all primary zones filtered by contract ids
if err != nil { if err != nil {
log.Errorf("Failed to fetch zones from Akamai") log.Errorf("Failed to fetch zones from Akamai")
return filteredZones, err return filteredZones, err
@ -242,7 +241,7 @@ func (p AkamaiProvider) Records(context.Context) (endpoints []*endpoint.Endpoint
continue continue
} }
var temp interface{} = int64(recordset.TTL) var temp interface{} = int64(recordset.TTL)
var ttl = endpoint.TTL(temp.(int64)) ttl := endpoint.TTL(temp.(int64))
endpoints = append(endpoints, endpoint.NewEndpointWithTTL(recordset.Name, endpoints = append(endpoints, endpoint.NewEndpointWithTTL(recordset.Name,
recordset.Type, recordset.Type,
ttl, ttl,
@ -359,7 +358,7 @@ func trimTxtRdata(rdata []string, rtype string) []string {
func ttlAsInt(src endpoint.TTL) int { func ttlAsInt(src endpoint.TTL) int {
var temp interface{} = int64(src) var temp interface{} = int64(src)
var temp64 = temp.(int64) temp64 := temp.(int64)
var ttl int = edgeDNSRecordTTL var ttl int = edgeDNSRecordTTL
if temp64 > 0 && temp64 <= int64(maxInt) { if temp64 > 0 && temp64 <= int64(maxInt) {
ttl = int(temp64) ttl = int(temp64)

View File

@ -19,9 +19,10 @@ package akamai
import ( import (
"context" "context"
"encoding/json" "encoding/json"
log "github.com/sirupsen/logrus"
"testing" "testing"
log "github.com/sirupsen/logrus"
dns "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v2" dns "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v2"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"sigs.k8s.io/external-dns/endpoint" "sigs.k8s.io/external-dns/endpoint"
@ -47,7 +48,6 @@ func newStub() *edgednsStub {
} }
func createAkamaiStubProvider(stub *edgednsStub, domfilter endpoint.DomainFilter, idfilter provider.ZoneIDFilter) (*AkamaiProvider, error) { func createAkamaiStubProvider(stub *edgednsStub, domfilter endpoint.DomainFilter, idfilter provider.ZoneIDFilter) (*AkamaiProvider, error) {
akamaiConfig := AkamaiConfig{ akamaiConfig := AkamaiConfig{
DomainFilter: domfilter, DomainFilter: domfilter,
ZoneIDFilter: idfilter, ZoneIDFilter: idfilter,
@ -63,7 +63,6 @@ func createAkamaiStubProvider(stub *edgednsStub, domfilter endpoint.DomainFilter
} }
func (r *edgednsStub) createStubDataEntry(objtype string) { func (r *edgednsStub) createStubDataEntry(objtype string) {
log.Debugf("Creating stub data entry") log.Debugf("Creating stub data entry")
if _, exists := r.stubData[objtype]; !exists { if _, exists := r.stubData[objtype]; !exists {
r.stubData[objtype] = edgednsStubData{objType: objtype} r.stubData[objtype] = edgednsStubData{objType: objtype}
@ -73,7 +72,6 @@ func (r *edgednsStub) createStubDataEntry(objtype string) {
} }
func (r *edgednsStub) setOutput(objtype string, output []interface{}) { func (r *edgednsStub) setOutput(objtype string, output []interface{}) {
log.Debugf("Setting output to %v", output) log.Debugf("Setting output to %v", output)
r.createStubDataEntry(objtype) r.createStubDataEntry(objtype)
stubdata := r.stubData[objtype] stubdata := r.stubData[objtype]
@ -84,7 +82,6 @@ func (r *edgednsStub) setOutput(objtype string, output []interface{}) {
} }
func (r *edgednsStub) setUpdateRecords(objtype string, records []interface{}) { func (r *edgednsStub) setUpdateRecords(objtype string, records []interface{}) {
log.Debugf("Setting updaterecords to %v", records) log.Debugf("Setting updaterecords to %v", records)
r.createStubDataEntry(objtype) r.createStubDataEntry(objtype)
stubdata := r.stubData[objtype] stubdata := r.stubData[objtype]
@ -95,7 +92,6 @@ func (r *edgednsStub) setUpdateRecords(objtype string, records []interface{}) {
} }
func (r *edgednsStub) setCreateRecords(objtype string, records []interface{}) { func (r *edgednsStub) setCreateRecords(objtype string, records []interface{}) {
log.Debugf("Setting createrecords to %v", records) log.Debugf("Setting createrecords to %v", records)
r.createStubDataEntry(objtype) r.createStubDataEntry(objtype)
stubdata := r.stubData[objtype] stubdata := r.stubData[objtype]
@ -106,7 +102,6 @@ func (r *edgednsStub) setCreateRecords(objtype string, records []interface{}) {
} }
func (r *edgednsStub) ListZones(queryArgs dns.ZoneListQueryArgs) (*dns.ZoneListResponse, error) { func (r *edgednsStub) ListZones(queryArgs dns.ZoneListQueryArgs) (*dns.ZoneListResponse, error) {
log.Debugf("Entering ListZones") log.Debugf("Entering ListZones")
// Ignore Metadata` // Ignore Metadata`
resp := &dns.ZoneListResponse{} resp := &dns.ZoneListResponse{}
@ -122,7 +117,6 @@ func (r *edgednsStub) ListZones(queryArgs dns.ZoneListQueryArgs) (*dns.ZoneListR
} }
func (r *edgednsStub) GetRecordsets(zone string, queryArgs dns.RecordsetQueryArgs) (*dns.RecordSetResponse, error) { func (r *edgednsStub) GetRecordsets(zone string, queryArgs dns.RecordsetQueryArgs) (*dns.RecordSetResponse, error) {
log.Debugf("Entering GetRecordsets") log.Debugf("Entering GetRecordsets")
// Ignore Metadata` // Ignore Metadata`
resp := &dns.RecordSetResponse{} resp := &dns.RecordSetResponse{}
@ -137,30 +131,25 @@ func (r *edgednsStub) GetRecordsets(zone string, queryArgs dns.RecordsetQueryArg
} }
func (r *edgednsStub) CreateRecordsets(recordsets *dns.Recordsets, zone string, reclock bool) error { func (r *edgednsStub) CreateRecordsets(recordsets *dns.Recordsets, zone string, reclock bool) error {
return nil return nil
} }
func (r *edgednsStub) GetRecord(zone string, name string, record_type string) (*dns.RecordBody, error) { func (r *edgednsStub) GetRecord(zone string, name string, record_type string) (*dns.RecordBody, error) {
resp := &dns.RecordBody{} resp := &dns.RecordBody{}
return resp, nil return resp, nil
} }
func (r *edgednsStub) DeleteRecord(record *dns.RecordBody, zone string, recLock bool) error { func (r *edgednsStub) DeleteRecord(record *dns.RecordBody, zone string, recLock bool) error {
return nil return nil
} }
func (r *edgednsStub) UpdateRecord(record *dns.RecordBody, zone string, recLock bool) error { func (r *edgednsStub) UpdateRecord(record *dns.RecordBody, zone string, recLock bool) error {
return nil return nil
} }
// Test FetchZones // Test FetchZones
func TestFetchZonesZoneIDFilter(t *testing.T) { func TestFetchZonesZoneIDFilter(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.NewZoneIDFilter([]string{"Test"}) idfilter := provider.NewZoneIDFilter([]string{"Test"})
@ -176,7 +165,6 @@ func TestFetchZonesZoneIDFilter(t *testing.T) {
} }
func TestFetchZonesEmpty(t *testing.T) { func TestFetchZonesEmpty(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.NewDomainFilter([]string{"Nonexistent"}) domfilter := endpoint.NewDomainFilter([]string{"Nonexistent"})
idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"}) idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"})
@ -193,7 +181,6 @@ func TestFetchZonesEmpty(t *testing.T) {
// TestAkamaiRecords tests record endpoint // TestAkamaiRecords tests record endpoint
func TestAkamaiRecords(t *testing.T) { func TestAkamaiRecords(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -229,7 +216,6 @@ func TestAkamaiRecords(t *testing.T) {
} }
func TestAkamaiRecordsEmpty(t *testing.T) { func TestAkamaiRecordsEmpty(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"}) idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"})
@ -244,7 +230,6 @@ func TestAkamaiRecordsEmpty(t *testing.T) {
} }
func TestAkamaiRecordsFilters(t *testing.T) { func TestAkamaiRecordsFilters(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.NewDomainFilter([]string{"www.exclude.me"}) domfilter := endpoint.NewDomainFilter([]string{"www.exclude.me"})
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -275,7 +260,6 @@ func TestAkamaiRecordsFilters(t *testing.T) {
// TestCreateRecords tests create function // TestCreateRecords tests create function
// (p AkamaiProvider) createRecordsets(zoneNameIDMapper provider.ZoneIDName, endpoints []*endpoint.Endpoint) error // (p AkamaiProvider) createRecordsets(zoneNameIDMapper provider.ZoneIDName, endpoints []*endpoint.Endpoint) error
func TestCreateRecords(t *testing.T) { func TestCreateRecords(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -292,7 +276,6 @@ func TestCreateRecords(t *testing.T) {
} }
func TestCreateRecordsDomainFilter(t *testing.T) { func TestCreateRecordsDomainFilter(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -311,7 +294,6 @@ func TestCreateRecordsDomainFilter(t *testing.T) {
// TestDeleteRecords validate delete // TestDeleteRecords validate delete
func TestDeleteRecords(t *testing.T) { func TestDeleteRecords(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -327,9 +309,7 @@ func TestDeleteRecords(t *testing.T) {
assert.Nil(t, err) assert.Nil(t, err)
} }
//
func TestDeleteRecordsDomainFilter(t *testing.T) { func TestDeleteRecordsDomainFilter(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.NewDomainFilter([]string{"example.com"}) domfilter := endpoint.NewDomainFilter([]string{"example.com"})
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -348,7 +328,6 @@ func TestDeleteRecordsDomainFilter(t *testing.T) {
// Test record update func // Test record update func
func TestUpdateRecords(t *testing.T) { func TestUpdateRecords(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.DomainFilter{} domfilter := endpoint.DomainFilter{}
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -364,9 +343,7 @@ func TestUpdateRecords(t *testing.T) {
assert.Nil(t, err) assert.Nil(t, err)
} }
//
func TestUpdateRecordsDomainFilter(t *testing.T) { func TestUpdateRecordsDomainFilter(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.NewDomainFilter([]string{"example.com"}) domfilter := endpoint.NewDomainFilter([]string{"example.com"})
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}
@ -384,7 +361,6 @@ func TestUpdateRecordsDomainFilter(t *testing.T) {
} }
func TestAkamaiApplyChanges(t *testing.T) { func TestAkamaiApplyChanges(t *testing.T) {
stub := newStub() stub := newStub()
domfilter := endpoint.NewDomainFilter([]string{"example.com"}) domfilter := endpoint.NewDomainFilter([]string{"example.com"})
idfilter := provider.ZoneIDFilter{} idfilter := provider.ZoneIDFilter{}

View File

@ -433,7 +433,6 @@ func (p *AlibabaCloudProvider) getDomainRecords(domainName string) ([]alidns.Rec
request.PageNumber = "1" request.PageNumber = "1"
for { for {
response, err := p.getDNSClient().DescribeDomainRecords(request) response, err := p.getDNSClient().DescribeDomainRecords(request)
if err != nil { if err != nil {
log.Errorf("Failed to describe domain records for Alibaba Cloud DNS: %v", err) log.Errorf("Failed to describe domain records for Alibaba Cloud DNS: %v", err)
return nil, err return nil, err
@ -761,7 +760,6 @@ func (p *AlibabaCloudProvider) getPrivateZones() (map[string]*alibabaPrivateZone
recordsCount := 0 recordsCount := 0
zones, err := p.privateZones() zones, err := p.privateZones()
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -776,7 +774,6 @@ func (p *AlibabaCloudProvider) getPrivateZones() (map[string]*alibabaPrivateZone
for { for {
response, err := p.getPvtzClient().DescribeZoneRecords(request) response, err := p.getPvtzClient().DescribeZoneRecords(request)
if err != nil { if err != nil {
log.Errorf("Failed to describe zone record '%s' in Alibaba Cloud DNS: %v", zone.ZoneId, err) log.Errorf("Failed to describe zone record '%s' in Alibaba Cloud DNS: %v", zone.ZoneId, err)
return nil, err return nil, err

View File

@ -435,7 +435,6 @@ func TestAlibabaCloudProvider_splitDNSName(t *testing.T) {
} }
func TestAlibabaCloudProvider_TXTEndpoint(t *testing.T) { func TestAlibabaCloudProvider_TXTEndpoint(t *testing.T) {
p := newTestAlibabaCloudProvider(false) p := newTestAlibabaCloudProvider(false)
const recordValue = "heritage=external-dns,external-dns/owner=default" const recordValue = "heritage=external-dns,external-dns/owner=default"
const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\"" const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\""
@ -450,7 +449,6 @@ func TestAlibabaCloudProvider_TXTEndpoint(t *testing.T) {
// TestAlibabaCloudProvider_TXTEndpoint_PrivateZone // TestAlibabaCloudProvider_TXTEndpoint_PrivateZone
func TestAlibabaCloudProvider_TXTEndpoint_PrivateZone(t *testing.T) { func TestAlibabaCloudProvider_TXTEndpoint_PrivateZone(t *testing.T) {
p := newTestAlibabaCloudProvider(true) p := newTestAlibabaCloudProvider(true)
const recordValue = "heritage=external-dns,external-dns/owner=default" const recordValue = "heritage=external-dns,external-dns/owner=default"
const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\"" const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\""

View File

@ -63,9 +63,8 @@ const (
sameZoneAlias = "same-zone" sameZoneAlias = "same-zone"
) )
var (
// see: https://docs.aws.amazon.com/general/latest/gr/elb.html // see: https://docs.aws.amazon.com/general/latest/gr/elb.html
canonicalHostedZones = map[string]string{ var canonicalHostedZones = map[string]string{
// Application Load Balancers and Classic Load Balancers // Application Load Balancers and Classic Load Balancers
"us-east-2.elb.amazonaws.com": "Z3AADJGX6KTTL2", "us-east-2.elb.amazonaws.com": "Z3AADJGX6KTTL2",
"us-east-1.elb.amazonaws.com": "Z35SXDOTRQ7X7K", "us-east-1.elb.amazonaws.com": "Z35SXDOTRQ7X7K",
@ -124,7 +123,6 @@ var (
// Cloudfront // Cloudfront
"cloudfront.net": "Z2FDTNDATAQYW2", "cloudfront.net": "Z2FDTNDATAQYW2",
} }
)
// Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly. // Route53API is the subset of the AWS Route53 API that we actually use. Add methods as required. Signatures must match exactly.
// mostly taken from: https://github.com/kubernetes/kubernetes/blob/853167624edb6bc0cfdcdfb88e746e178f5db36c/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go // mostly taken from: https://github.com/kubernetes/kubernetes/blob/853167624edb6bc0cfdcdfb88e746e178f5db36c/federation/pkg/dnsprovider/providers/aws/route53/stubs/route53api.go
@ -665,7 +663,7 @@ func (p *AWSProvider) newChange(action string, ep *endpoint.Endpoint) (*route53.
change.ResourceRecordSet.MultiValueAnswer = aws.Bool(true) change.ResourceRecordSet.MultiValueAnswer = aws.Bool(true)
} }
var geolocation = &route53.GeoLocation{} geolocation := &route53.GeoLocation{}
useGeolocation := false useGeolocation := false
if prop, ok := ep.GetProviderSpecificProperty(providerSpecificGeolocationContinentCode); ok { if prop, ok := ep.GetProviderSpecificProperty(providerSpecificGeolocationContinentCode); ok {
geolocation.ContinentCode = aws.String(prop.Value) geolocation.ContinentCode = aws.String(prop.Value)
@ -820,6 +818,7 @@ func changesByZone(zones map[string]*route53.HostedZone, changeSet []*route53.Ch
} }
// suitableZones returns all suitable private zones and the most suitable public zone // suitableZones returns all suitable private zones and the most suitable public zone
//
// for a given hostname and a set of zones. // for a given hostname and a set of zones.
func suitableZones(hostname string, zones map[string]*route53.HostedZone) []*route53.HostedZone { func suitableZones(hostname string, zones map[string]*route53.HostedZone) []*route53.HostedZone {
var matchingZones []*route53.HostedZone var matchingZones []*route53.HostedZone

View File

@ -1241,7 +1241,6 @@ func setupAWSRecords(t *testing.T, provider *AWSProvider, endpoints []*endpoint.
_, err = provider.Records(ctx) _, err = provider.Records(ctx)
require.NoError(t, err) require.NoError(t, err)
} }
func listAWSRecords(t *testing.T, client Route53API, zone string) []*route53.ResourceRecordSet { func listAWSRecords(t *testing.T, client Route53API, zone string) []*route53.ResourceRecordSet {
@ -1301,6 +1300,7 @@ func escapeAWSRecords(t *testing.T, provider *AWSProvider, zone string) {
require.NoError(t, err) require.NoError(t, err)
} }
} }
func newAWSProvider(t *testing.T, domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, zoneTypeFilter provider.ZoneTypeFilter, evaluateTargetHealth, dryRun bool, records []*endpoint.Endpoint) (*AWSProvider, *Route53APIStub) { func newAWSProvider(t *testing.T, domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, zoneTypeFilter provider.ZoneTypeFilter, evaluateTargetHealth, dryRun bool, records []*endpoint.Endpoint) (*AWSProvider, *Route53APIStub) {
return newAWSProviderWithTagFilter(t, domainFilter, zoneIDFilter, zoneTypeFilter, provider.NewZoneTagFilter([]string{}), evaluateTargetHealth, dryRun, records) return newAWSProviderWithTagFilter(t, domainFilter, zoneIDFilter, zoneTypeFilter, provider.NewZoneTagFilter([]string{}), evaluateTargetHealth, dryRun, records)
} }

View File

@ -18,13 +18,11 @@ package awssd
import ( import (
"context" "context"
"strings"
"crypto/sha256" "crypto/sha256"
"encoding/hex" "encoding/hex"
"fmt" "fmt"
"regexp" "regexp"
"strings"
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials/stscreds" "github.com/aws/aws-sdk-go/aws/credentials/stscreds"
@ -493,7 +491,9 @@ func (p *AWSSDProvider) UpdateService(service *sd.Service, ep *endpoint.Endpoint
Type: aws.String(srvType), Type: aws.String(srvType),
TTL: aws.Int64(ttl), TTL: aws.Int64(ttl),
}}, }},
}}}) },
},
})
if err != nil { if err != nil {
return err return err
} }

View File

@ -50,7 +50,6 @@ type AWSSDClientStub struct {
} }
func (s *AWSSDClientStub) CreateService(input *sd.CreateServiceInput) (*sd.CreateServiceOutput, error) { func (s *AWSSDClientStub) CreateService(input *sd.CreateServiceInput) (*sd.CreateServiceOutput, error) {
srv := &sd.Service{ srv := &sd.Service{
Id: aws.String(strconv.Itoa(rand.Intn(10000))), Id: aws.String(strconv.Itoa(rand.Intn(10000))),
DnsConfig: input.DnsConfig, DnsConfig: input.DnsConfig,
@ -150,7 +149,6 @@ func (s *AWSSDClientStub) ListServicesPages(input *sd.ListServicesInput, fn func
} }
func (s *AWSSDClientStub) RegisterInstance(input *sd.RegisterInstanceInput) (*sd.RegisterInstanceOutput, error) { func (s *AWSSDClientStub) RegisterInstance(input *sd.RegisterInstanceInput) (*sd.RegisterInstanceOutput, error) {
srvInstances, ok := s.instances[*input.ServiceId] srvInstances, ok := s.instances[*input.ServiceId]
if !ok { if !ok {
srvInstances = make(map[string]*sd.Instance) srvInstances = make(map[string]*sd.Instance)

View File

@ -139,12 +139,15 @@ func privateOthersRecordSetPropertiesGetter(values []string, ttl int64) *private
TTL: to.Int64Ptr(ttl), TTL: to.Int64Ptr(ttl),
} }
} }
func createPrivateMockRecordSet(name, recordType string, values ...string) privatedns.RecordSet { func createPrivateMockRecordSet(name, recordType string, values ...string) privatedns.RecordSet {
return createPrivateMockRecordSetMultiWithTTL(name, recordType, 0, values...) return createPrivateMockRecordSetMultiWithTTL(name, recordType, 0, values...)
} }
func createPrivateMockRecordSetWithTTL(name, recordType, value string, ttl int64) privatedns.RecordSet { func createPrivateMockRecordSetWithTTL(name, recordType, value string, ttl int64) privatedns.RecordSet {
return createPrivateMockRecordSetMultiWithTTL(name, recordType, ttl, value) return createPrivateMockRecordSetMultiWithTTL(name, recordType, ttl, value)
} }
func createPrivateMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) privatedns.RecordSet { func createPrivateMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) privatedns.RecordSet {
var getterFunc func(values []string, ttl int64) *privatedns.RecordSetProperties var getterFunc func(values []string, ttl int64) *privatedns.RecordSetProperties
@ -163,7 +166,6 @@ func createPrivateMockRecordSetMultiWithTTL(name, recordType string, ttl int64,
Type: to.StringPtr("Microsoft.Network/privateDnsZones/" + recordType), Type: to.StringPtr("Microsoft.Network/privateDnsZones/" + recordType),
RecordSetProperties: getterFunc(values, ttl), RecordSetProperties: getterFunc(values, ttl),
} }
} }
func (client *mockPrivateRecordSetsClient) ListComplete(ctx context.Context, resourceGroupName string, zoneName string, top *int32, recordSetNameSuffix string) (result privatedns.RecordSetListResultIterator, err error) { func (client *mockPrivateRecordSetsClient) ListComplete(ctx context.Context, resourceGroupName string, zoneName string, top *int32, recordSetNameSuffix string) (result privatedns.RecordSetListResultIterator, err error) {
@ -265,13 +267,11 @@ func TestAzurePrivateDNSRecord(t *testing.T) {
createPrivateMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL), createPrivateMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL),
createPrivateMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), createPrivateMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
actual, err := provider.Records(context.Background()) actual, err := provider.Records(context.Background())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -284,7 +284,6 @@ func TestAzurePrivateDNSRecord(t *testing.T) {
} }
validateAzureEndpoints(t, actual, expected) validateAzureEndpoints(t, actual, expected)
} }
func TestAzurePrivateDNSMultiRecord(t *testing.T) { func TestAzurePrivateDNSMultiRecord(t *testing.T) {
@ -301,13 +300,11 @@ func TestAzurePrivateDNSMultiRecord(t *testing.T) {
createPrivateMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL), createPrivateMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL),
createPrivateMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), createPrivateMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
actual, err := provider.Records(context.Background()) actual, err := provider.Records(context.Background())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -320,7 +317,6 @@ func TestAzurePrivateDNSMultiRecord(t *testing.T) {
} }
validateAzureEndpoints(t, actual, expected) validateAzureEndpoints(t, actual, expected)
} }
func TestAzurePrivateDNSApplyChanges(t *testing.T) { func TestAzurePrivateDNSApplyChanges(t *testing.T) {

View File

@ -138,12 +138,15 @@ func othersRecordSetPropertiesGetter(values []string, ttl int64) *dns.RecordSetP
TTL: to.Int64Ptr(ttl), TTL: to.Int64Ptr(ttl),
} }
} }
func createMockRecordSet(name, recordType string, values ...string) dns.RecordSet { func createMockRecordSet(name, recordType string, values ...string) dns.RecordSet {
return createMockRecordSetMultiWithTTL(name, recordType, 0, values...) return createMockRecordSetMultiWithTTL(name, recordType, 0, values...)
} }
func createMockRecordSetWithTTL(name, recordType, value string, ttl int64) dns.RecordSet { func createMockRecordSetWithTTL(name, recordType, value string, ttl int64) dns.RecordSet {
return createMockRecordSetMultiWithTTL(name, recordType, ttl, value) return createMockRecordSetMultiWithTTL(name, recordType, ttl, value)
} }
func createMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) dns.RecordSet { func createMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) dns.RecordSet {
var getterFunc func(values []string, ttl int64) *dns.RecordSetProperties var getterFunc func(values []string, ttl int64) *dns.RecordSetProperties
@ -162,7 +165,6 @@ func createMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values
Type: to.StringPtr("Microsoft.Network/dnszones/" + recordType), Type: to.StringPtr("Microsoft.Network/dnszones/" + recordType),
RecordSetProperties: getterFunc(values, ttl), RecordSetProperties: getterFunc(values, ttl),
} }
} }
func (client *mockRecordSetsClient) ListAllByDNSZoneComplete(ctx context.Context, resourceGroupName string, zoneName string, top *int32, recordSetNameSuffix string) (result dns.RecordSetListResultIterator, err error) { func (client *mockRecordSetsClient) ListAllByDNSZoneComplete(ctx context.Context, resourceGroupName string, zoneName string, top *int32, recordSetNameSuffix string) (result dns.RecordSetListResultIterator, err error) {
@ -270,14 +272,12 @@ func TestAzureRecord(t *testing.T) {
createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL), createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL),
createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
ctx := context.Background() ctx := context.Background()
actual, err := provider.Records(ctx) actual, err := provider.Records(ctx)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -290,7 +290,6 @@ func TestAzureRecord(t *testing.T) {
} }
validateAzureEndpoints(t, actual, expected) validateAzureEndpoints(t, actual, expected)
} }
func TestAzureMultiRecord(t *testing.T) { func TestAzureMultiRecord(t *testing.T) {
@ -307,14 +306,12 @@ func TestAzureMultiRecord(t *testing.T) {
createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL), createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL),
createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
ctx := context.Background() ctx := context.Background()
actual, err := provider.Records(ctx) actual, err := provider.Records(ctx)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -327,7 +324,6 @@ func TestAzureMultiRecord(t *testing.T) {
} }
validateAzureEndpoints(t, actual, expected) validateAzureEndpoints(t, actual, expected)
} }
func TestAzureApplyChanges(t *testing.T) { func TestAzureApplyChanges(t *testing.T) {
@ -461,14 +457,12 @@ func TestAzureNameFilter(t *testing.T) {
createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL), createMockRecordSetWithTTL("nginx", endpoint.RecordTypeTXT, "heritage=external-dns,external-dns/owner=default", recordTTL),
createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), createMockRecordSetWithTTL("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
ctx := context.Background() ctx := context.Background()
actual, err := provider.Records(ctx) actual, err := provider.Records(ctx)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -479,7 +473,6 @@ func TestAzureNameFilter(t *testing.T) {
} }
validateAzureEndpoints(t, actual, expected) validateAzureEndpoints(t, actual, expected)
} }
func TestAzureApplyChangesZoneName(t *testing.T) { func TestAzureApplyChangesZoneName(t *testing.T) {

View File

@ -109,7 +109,6 @@ func getAccessToken(cfg config, environment azure.Environment) (*adal.ServicePri
token, err := adal.NewServicePrincipalTokenFromManagedIdentity(environment.ServiceManagementEndpoint, &adal.ManagedIdentityOptions{ token, err := adal.NewServicePrincipalTokenFromManagedIdentity(environment.ServiceManagementEndpoint, &adal.ManagedIdentityOptions{
ClientID: cfg.UserAssignedIdentityID, ClientID: cfg.UserAssignedIdentityID,
}) })
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to create the managed service identity token: %v", err) return nil, fmt.Errorf("failed to create the managed service identity token: %v", err)
} }

View File

@ -18,11 +18,12 @@ package azure
import ( import (
"fmt" "fmt"
"github.com/Azure/go-autorest/autorest/azure"
"io/ioutil" "io/ioutil"
"os" "os"
"reflect" "reflect"
"testing" "testing"
"github.com/Azure/go-autorest/autorest/azure"
) )
func TestGetAzureEnvironmentConfig(t *testing.T) { func TestGetAzureEnvironmentConfig(t *testing.T) {

View File

@ -48,14 +48,17 @@ type Changes struct {
func (g mockGatewayClient) GetBluecatZones(zoneName string) ([]api.BluecatZone, error) { func (g mockGatewayClient) GetBluecatZones(zoneName string) ([]api.BluecatZone, error) {
return *g.mockBluecatZones, nil return *g.mockBluecatZones, nil
} }
func (g mockGatewayClient) GetHostRecords(zone string, records *[]api.BluecatHostRecord) error { func (g mockGatewayClient) GetHostRecords(zone string, records *[]api.BluecatHostRecord) error {
*records = *g.mockBluecatHosts *records = *g.mockBluecatHosts
return nil return nil
} }
func (g mockGatewayClient) GetCNAMERecords(zone string, records *[]api.BluecatCNAMERecord) error { func (g mockGatewayClient) GetCNAMERecords(zone string, records *[]api.BluecatCNAMERecord) error {
*records = *g.mockBluecatCNAMEs *records = *g.mockBluecatCNAMEs
return nil return nil
} }
func (g mockGatewayClient) GetHostRecord(name string, record *api.BluecatHostRecord) error { func (g mockGatewayClient) GetHostRecord(name string, record *api.BluecatHostRecord) error {
for _, currentRecord := range *g.mockBluecatHosts { for _, currentRecord := range *g.mockBluecatHosts {
if currentRecord.Name == strings.Split(name, ".")[0] { if currentRecord.Name == strings.Split(name, ".")[0] {
@ -65,6 +68,7 @@ func (g mockGatewayClient) GetHostRecord(name string, record *api.BluecatHostRec
} }
return nil return nil
} }
func (g mockGatewayClient) GetCNAMERecord(name string, record *api.BluecatCNAMERecord) error { func (g mockGatewayClient) GetCNAMERecord(name string, record *api.BluecatCNAMERecord) error {
for _, currentRecord := range *g.mockBluecatCNAMEs { for _, currentRecord := range *g.mockBluecatCNAMEs {
if currentRecord.Name == strings.Split(name, ".")[0] { if currentRecord.Name == strings.Split(name, ".")[0] {
@ -74,24 +78,30 @@ func (g mockGatewayClient) GetCNAMERecord(name string, record *api.BluecatCNAMER
} }
return nil return nil
} }
func (g mockGatewayClient) CreateHostRecord(zone string, req *api.BluecatCreateHostRecordRequest) (err error) { func (g mockGatewayClient) CreateHostRecord(zone string, req *api.BluecatCreateHostRecordRequest) (err error) {
return nil return nil
} }
func (g mockGatewayClient) CreateCNAMERecord(zone string, req *api.BluecatCreateCNAMERecordRequest) (err error) { func (g mockGatewayClient) CreateCNAMERecord(zone string, req *api.BluecatCreateCNAMERecordRequest) (err error) {
return nil return nil
} }
func (g mockGatewayClient) DeleteHostRecord(name string, zone string) (err error) { func (g mockGatewayClient) DeleteHostRecord(name string, zone string) (err error) {
*g.mockBluecatHosts = nil *g.mockBluecatHosts = nil
return nil return nil
} }
func (g mockGatewayClient) DeleteCNAMERecord(name string, zone string) (err error) { func (g mockGatewayClient) DeleteCNAMERecord(name string, zone string) (err error) {
*g.mockBluecatCNAMEs = nil *g.mockBluecatCNAMEs = nil
return nil return nil
} }
func (g mockGatewayClient) GetTXTRecords(zone string, records *[]api.BluecatTXTRecord) error { func (g mockGatewayClient) GetTXTRecords(zone string, records *[]api.BluecatTXTRecord) error {
*records = *g.mockBluecatTXTs *records = *g.mockBluecatTXTs
return nil return nil
} }
func (g mockGatewayClient) GetTXTRecord(name string, record *api.BluecatTXTRecord) error { func (g mockGatewayClient) GetTXTRecord(name string, record *api.BluecatTXTRecord) error {
for _, currentRecord := range *g.mockBluecatTXTs { for _, currentRecord := range *g.mockBluecatTXTs {
if currentRecord.Name == name { if currentRecord.Name == name {
@ -101,13 +111,16 @@ func (g mockGatewayClient) GetTXTRecord(name string, record *api.BluecatTXTRecor
} }
return nil return nil
} }
func (g mockGatewayClient) CreateTXTRecord(zone string, req *api.BluecatCreateTXTRecordRequest) error { func (g mockGatewayClient) CreateTXTRecord(zone string, req *api.BluecatCreateTXTRecordRequest) error {
return nil return nil
} }
func (g mockGatewayClient) DeleteTXTRecord(name string, zone string) error { func (g mockGatewayClient) DeleteTXTRecord(name string, zone string) error {
*g.mockBluecatTXTs = nil *g.mockBluecatTXTs = nil
return nil return nil
} }
func (g mockGatewayClient) ServerFullDeploy() error { func (g mockGatewayClient) ServerFullDeploy() error {
return nil return nil
} }
@ -271,6 +284,7 @@ func TestBluecatApplyChangesCreate(t *testing.T) {
validateEndpoints(t, actual, []*endpoint.Endpoint{}) validateEndpoints(t, actual, []*endpoint.Endpoint{})
} }
} }
func TestBluecatApplyChangesDelete(t *testing.T) { func TestBluecatApplyChangesDelete(t *testing.T) {
client := mockGatewayClient{ client := mockGatewayClient{
mockBluecatZones: &[]api.BluecatZone{ mockBluecatZones: &[]api.BluecatZone{
@ -354,7 +368,6 @@ func TestBluecatApplyChangesDeleteWithOwner(t *testing.T) {
} }
validateEndpoints(t, actual, []*endpoint.Endpoint{}) validateEndpoints(t, actual, []*endpoint.Endpoint{})
} }
} }
// TODO: ensure findZone method is tested // TODO: ensure findZone method is tested

View File

@ -176,7 +176,6 @@ func GetBluecatGatewayToken(cfg BluecatConfig) (string, http.Cookie, error) {
url := cfg.GatewayHost + "/rest_login" url := cfg.GatewayHost + "/rest_login"
response, err := executeHTTPRequest(cfg.SkipTLSVerify, http.MethodPost, url, "", bytes.NewBuffer(body), http.Cookie{}) response, err := executeHTTPRequest(cfg.SkipTLSVerify, http.MethodPost, url, "", bytes.NewBuffer(body), http.Cookie{})
if err != nil { if err != nil {
return "", http.Cookie{}, errors.Wrap(err, "error obtaining API token from bluecat gateway") return "", http.Cookie{}, errors.Wrap(err, "error obtaining API token from bluecat gateway")
} }

View File

@ -96,9 +96,11 @@ func (z zoneService) CreateDNSRecord(ctx context.Context, zoneID string, rr clou
func (z zoneService) DNSRecords(ctx context.Context, zoneID string, rr cloudflare.DNSRecord) ([]cloudflare.DNSRecord, error) { func (z zoneService) DNSRecords(ctx context.Context, zoneID string, rr cloudflare.DNSRecord) ([]cloudflare.DNSRecord, error) {
return z.service.DNSRecords(ctx, zoneID, rr) return z.service.DNSRecords(ctx, zoneID, rr)
} }
func (z zoneService) UpdateDNSRecord(ctx context.Context, zoneID, recordID string, rr cloudflare.DNSRecord) error { func (z zoneService) UpdateDNSRecord(ctx context.Context, zoneID, recordID string, rr cloudflare.DNSRecord) error {
return z.service.UpdateDNSRecord(ctx, zoneID, recordID, rr) return z.service.UpdateDNSRecord(ctx, zoneID, recordID, rr)
} }
func (z zoneService) DeleteDNSRecord(ctx context.Context, zoneID, recordID string) error { func (z zoneService) DeleteDNSRecord(ctx context.Context, zoneID, recordID string) error {
return z.service.DeleteDNSRecord(ctx, zoneID, recordID) return z.service.DeleteDNSRecord(ctx, zoneID, recordID)
} }

View File

@ -244,7 +244,6 @@ func AssertActions(t *testing.T, provider *CloudFlareProvider, endpoints []*endp
ctx := context.Background() ctx := context.Background()
records, err := provider.Records(ctx) records, err := provider.Records(ctx)
if err != nil { if err != nil {
t.Fatalf("cannot fetch records, %s", err) t.Fatalf("cannot fetch records, %s", err)
} }
@ -309,7 +308,6 @@ func TestCloudflareA(t *testing.T) {
}, },
[]string{endpoint.RecordTypeA, endpoint.RecordTypeCNAME}, []string{endpoint.RecordTypeA, endpoint.RecordTypeCNAME},
) )
} }
func TestCloudflareCname(t *testing.T) { func TestCloudflareCname(t *testing.T) {
@ -501,7 +499,7 @@ func TestCloudflareProxiedOverrideIllegal(t *testing.T) {
func TestCloudflareSetProxied(t *testing.T) { func TestCloudflareSetProxied(t *testing.T) {
var proxied *bool = proxyEnabled var proxied *bool = proxyEnabled
var notProxied *bool = proxyDisabled var notProxied *bool = proxyDisabled
var testCases = []struct { testCases := []struct {
recordType string recordType string
domain string domain string
proxiable *bool proxiable *bool
@ -674,7 +672,6 @@ func TestCloudflareApplyChanges(t *testing.T) {
Targets: endpoint.Targets{"target-new"}, Targets: endpoint.Targets{"target-new"},
}} }}
err := provider.ApplyChanges(context.Background(), changes) err := provider.ApplyChanges(context.Background(), changes)
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }
@ -1111,7 +1108,6 @@ func TestCloudflareComplexUpdate(t *testing.T) {
ctx := context.Background() ctx := context.Background()
records, err := provider.Records(ctx) records, err := provider.Records(ctx)
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }
@ -1146,7 +1142,7 @@ func TestCloudflareComplexUpdate(t *testing.T) {
} }
td.CmpDeeply(t, client.Actions, []MockAction{ td.CmpDeeply(t, client.Actions, []MockAction{
MockAction{ {
Name: "Create", Name: "Create",
ZoneId: "001", ZoneId: "001",
RecordData: cloudflare.DNSRecord{ RecordData: cloudflare.DNSRecord{
@ -1157,7 +1153,7 @@ func TestCloudflareComplexUpdate(t *testing.T) {
Proxied: proxyEnabled, Proxied: proxyEnabled,
}, },
}, },
MockAction{ {
Name: "Update", Name: "Update",
ZoneId: "001", ZoneId: "001",
RecordId: "1234567890", RecordId: "1234567890",
@ -1169,7 +1165,7 @@ func TestCloudflareComplexUpdate(t *testing.T) {
Proxied: proxyEnabled, Proxied: proxyEnabled,
}, },
}, },
MockAction{ {
Name: "Delete", Name: "Delete",
ZoneId: "001", ZoneId: "001",
RecordId: "2345678901", RecordId: "2345678901",
@ -1179,7 +1175,7 @@ func TestCloudflareComplexUpdate(t *testing.T) {
func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) { func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) {
client := NewMockCloudFlareClientWithRecords(map[string][]cloudflare.DNSRecord{ client := NewMockCloudFlareClientWithRecords(map[string][]cloudflare.DNSRecord{
"001": []cloudflare.DNSRecord{ "001": {
{ {
ID: "1234567890", ID: "1234567890",
ZoneID: "001", ZoneID: "001",
@ -1197,7 +1193,6 @@ func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) {
} }
records, err := provider.Records(context.Background()) records, err := provider.Records(context.Background())
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }

View File

@ -329,7 +329,6 @@ func TestDesignateCreateRecords(t *testing.T) {
} }
func testDesignateCreateRecords(t *testing.T, client *fakeDesignateClient) []*recordsets.RecordSet { func testDesignateCreateRecords(t *testing.T, client *fakeDesignateClient) []*recordsets.RecordSet {
for i, zoneName := range []string{"example.com.", "test.net."} { for i, zoneName := range []string{"example.com.", "test.net."} {
client.AddZone(zones.Zone{ client.AddZone(zones.Zone{
ID: fmt.Sprintf("zone-%d", i+1), ID: fmt.Sprintf("zone-%d", i+1),

View File

@ -75,9 +75,11 @@ func (m *mockDigitalOceanClient) CreateRecord(context.Context, string, *godo.Dom
func (m *mockDigitalOceanClient) Delete(context.Context, string) (*godo.Response, error) { func (m *mockDigitalOceanClient) Delete(context.Context, string) (*godo.Response, error) {
return nil, nil return nil, nil
} }
func (m *mockDigitalOceanClient) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) { func (m *mockDigitalOceanClient) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) {
return nil, nil return nil, nil
} }
func (m *mockDigitalOceanClient) EditRecord(ctx context.Context, domain string, id int, editRequest *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) { func (m *mockDigitalOceanClient) EditRecord(ctx context.Context, domain string, id int, editRequest *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) {
return &godo.DomainRecord{ID: 1}, nil, nil return &godo.DomainRecord{ID: 1}, nil, nil
} }
@ -157,9 +159,11 @@ func (m *mockDigitalOceanRecordsFail) CreateRecord(context.Context, string, *god
func (m *mockDigitalOceanRecordsFail) Delete(context.Context, string) (*godo.Response, error) { func (m *mockDigitalOceanRecordsFail) Delete(context.Context, string) (*godo.Response, error) {
return nil, nil return nil, nil
} }
func (m *mockDigitalOceanRecordsFail) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) { func (m *mockDigitalOceanRecordsFail) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) {
return nil, nil return nil, nil
} }
func (m *mockDigitalOceanRecordsFail) EditRecord(ctx context.Context, domain string, id int, editRequest *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) { func (m *mockDigitalOceanRecordsFail) EditRecord(ctx context.Context, domain string, id int, editRequest *godo.DomainRecordEditRequest) (*godo.DomainRecord, *godo.Response, error) {
return &godo.DomainRecord{ID: 1}, nil, nil return &godo.DomainRecord{ID: 1}, nil, nil
} }

View File

@ -32,9 +32,11 @@ import (
"sigs.k8s.io/external-dns/provider" "sigs.k8s.io/external-dns/provider"
) )
var mockProvider dnsimpleProvider var (
var dnsimpleListRecordsResponse dnsimple.ZoneRecordsResponse mockProvider dnsimpleProvider
var dnsimpleListZonesResponse dnsimple.ZonesResponse dnsimpleListRecordsResponse dnsimple.ZoneRecordsResponse
dnsimpleListZonesResponse dnsimple.ZonesResponse
)
func TestDnsimpleServices(t *testing.T) { func TestDnsimpleServices(t *testing.T) {
// Setup example responses // Setup example responses

View File

@ -321,7 +321,6 @@ func (d *dynProviderState) fetchZoneSerial(client *dynect.Client, zone string) (
var resp dynect.ZoneResponse var resp dynect.ZoneResponse
err := client.Do("GET", fmt.Sprintf("Zone/%s", zone), nil, &resp) err := client.Do("GET", fmt.Sprintf("Zone/%s", zone), nil, &resp)
if err != nil { if err != nil {
return 0, err return 0, err
} }
@ -368,7 +367,7 @@ func (d *dynProviderState) fetchAllRecordsInZone(zone string) (*dynsoap.GetAllRe
Fault_incompat: 0, Fault_incompat: 0,
} }
var records = &dynsoap.GetAllRecordsResponseType{} records := &dynsoap.GetAllRecordsResponseType{}
err = apiRetryLoop(func() error { err = apiRetryLoop(func() error {
records, err = service.GetAllRecords(&req) records, err = service.GetAllRecords(&req)
@ -388,7 +387,7 @@ func (d *dynProviderState) fetchAllRecordsInZone(zone string) (*dynsoap.GetAllRe
Fault_incompat: 0, Fault_incompat: 0,
} }
var jobResults = dynsoap.GetJobResponseType{} jobResults := dynsoap.GetJobResponseType{}
err = apiRetryLoop(func() error { err = apiRetryLoop(func() error {
jobResults, err := service.GetJob(&jobRequest) jobResults, err := service.GetJob(&jobRequest)
if strings.ToLower(jobResults.Status) == "incomplete" { if strings.ToLower(jobResults.Status) == "incomplete" {
@ -415,7 +414,7 @@ func (d *dynProviderState) buildLinkToRecord(ep *endpoint.Endpoint) string {
if ep == nil { if ep == nil {
return "" return ""
} }
var matchingZone = "" matchingZone := ""
for _, zone := range d.ZoneIDFilter.ZoneIDs { for _, zone := range d.ZoneIDFilter.ZoneIDs {
if strings.HasSuffix(ep.DNSName, zone) { if strings.HasSuffix(ep.DNSName, zone) {
matchingZone = zone matchingZone = zone
@ -448,10 +447,11 @@ func (d *dynProviderState) login() (*dynect.Client, error) {
} }
client := dynect.NewClient(d.CustomerName) client := dynect.NewClient(d.CustomerName)
var req = dynect.LoginBlock{ req := dynect.LoginBlock{
Username: d.Username, Username: d.Username,
Password: d.Password, Password: d.Password,
CustomerName: d.CustomerName} CustomerName: d.CustomerName,
}
var resp dynect.LoginResponse var resp dynect.LoginResponse

View File

@ -43,12 +43,13 @@ type updateRecordExoscale struct {
updateDNSRecord egoscale.UpdateDNSRecord updateDNSRecord egoscale.UpdateDNSRecord
} }
var createExoscale []createRecordExoscale var (
var deleteExoscale []deleteRecordExoscale createExoscale []createRecordExoscale
var updateExoscale []updateRecordExoscale deleteExoscale []deleteRecordExoscale
updateExoscale []updateRecordExoscale
)
type ExoscaleClientStub struct { type ExoscaleClientStub struct{}
}
func NewExoscaleClientStub() EgoscaleClientI { func NewExoscaleClientStub() EgoscaleClientI {
ep := &ExoscaleClientStub{} ep := &ExoscaleClientStub{}
@ -59,6 +60,7 @@ func (ep *ExoscaleClientStub) DeleteRecord(ctx context.Context, name string, rec
deleteExoscale = append(deleteExoscale, deleteRecordExoscale{name: name, recordID: recordID}) deleteExoscale = append(deleteExoscale, deleteRecordExoscale{name: name, recordID: recordID})
return nil return nil
} }
func (ep *ExoscaleClientStub) GetRecords(ctx context.Context, name string) ([]egoscale.DNSRecord, error) { func (ep *ExoscaleClientStub) GetRecords(ctx context.Context, name string) ([]egoscale.DNSRecord, error) {
init := []egoscale.DNSRecord{ init := []egoscale.DNSRecord{
{ID: 0, Name: "v4.barfoo.com", RecordType: "ALIAS"}, {ID: 0, Name: "v4.barfoo.com", RecordType: "ALIAS"},
@ -79,14 +81,17 @@ func (ep *ExoscaleClientStub) GetRecords(ctx context.Context, name string) ([]eg
return rec, nil return rec, nil
} }
func (ep *ExoscaleClientStub) UpdateRecord(ctx context.Context, name string, rec egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) { func (ep *ExoscaleClientStub) UpdateRecord(ctx context.Context, name string, rec egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) {
updateExoscale = append(updateExoscale, updateRecordExoscale{name: name, updateDNSRecord: rec}) updateExoscale = append(updateExoscale, updateRecordExoscale{name: name, updateDNSRecord: rec})
return nil, nil return nil, nil
} }
func (ep *ExoscaleClientStub) CreateRecord(ctx context.Context, name string, rec egoscale.DNSRecord) (*egoscale.DNSRecord, error) { func (ep *ExoscaleClientStub) CreateRecord(ctx context.Context, name string, rec egoscale.DNSRecord) (*egoscale.DNSRecord, error) {
createExoscale = append(createExoscale, createRecordExoscale{name: name, rec: rec}) createExoscale = append(createExoscale, createRecordExoscale{name: name, rec: rec})
return nil, nil return nil, nil
} }
func (ep *ExoscaleClientStub) GetDomains(ctx context.Context) ([]egoscale.DNSDomain, error) { func (ep *ExoscaleClientStub) GetDomains(ctx context.Context) ([]egoscale.DNSDomain, error) {
dom := []egoscale.DNSDomain{ dom := []egoscale.DNSDomain{
{ID: 1, Name: "foo.com"}, {ID: 1, Name: "foo.com"},

View File

@ -16,14 +16,14 @@ package gandi
import ( import (
"context" "context"
"fmt" "fmt"
"os"
"reflect"
"strings"
"testing"
"github.com/go-gandi/go-gandi/domain" "github.com/go-gandi/go-gandi/domain"
"github.com/go-gandi/go-gandi/livedns" "github.com/go-gandi/go-gandi/livedns"
"github.com/maxatome/go-testdeep/td" "github.com/maxatome/go-testdeep/td"
"strings"
"os"
"reflect"
"testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@ -62,9 +62,11 @@ func mockGandiClientNewWithFailure(functionToFail string) *mockGandiClient {
} }
} }
const domainUriPrefix = "https://api.gandi.net/v5/domain/domains/" const (
const exampleDotComUri = domainUriPrefix + "example.com" domainUriPrefix = "https://api.gandi.net/v5/domain/domains/"
const exampleDotNetUri = domainUriPrefix + "example.net" exampleDotComUri = domainUriPrefix + "example.com"
exampleDotNetUri = domainUriPrefix + "example.net"
)
func testRecords() []livedns.DomainRecord { func testRecords() []livedns.DomainRecord {
return []livedns.DomainRecord{ return []livedns.DomainRecord{
@ -286,7 +288,6 @@ func TestGandiProvider_TestData(t *testing.T) {
if !reflect.DeepEqual(expectedRecordsAnswer, testingRecordsAnswer) { if !reflect.DeepEqual(expectedRecordsAnswer, testingRecordsAnswer) {
t.Errorf("should be equal, %s", err) t.Errorf("should be equal, %s", err)
} }
} }
func TestGandiProvider_Records(t *testing.T) { func TestGandiProvider_Records(t *testing.T) {
@ -319,7 +320,6 @@ func TestGandiProvider_Records(t *testing.T) {
} }
func TestGandiProvider_RecordsAppliesDomainFilter(t *testing.T) { func TestGandiProvider_RecordsAppliesDomainFilter(t *testing.T) {
mockedClient := mockGandiClientNew() mockedClient := mockGandiClientNew()
mockedProvider := &GandiProvider{ mockedProvider := &GandiProvider{
@ -343,7 +343,6 @@ func TestGandiProvider_RecordsAppliesDomainFilter(t *testing.T) {
} }
func TestGandiProvider_RecordsErrorOnMultipleValues(t *testing.T) { func TestGandiProvider_RecordsErrorOnMultipleValues(t *testing.T) {
mockedClient := mockGandiClientNewWithRecords([]livedns.DomainRecord{ mockedClient := mockGandiClientNewWithRecords([]livedns.DomainRecord{
{ {
RrsetValues: []string{"foo", "bar"}, RrsetValues: []string{"foo", "bar"},

View File

@ -259,7 +259,7 @@ func (c *Client) CallAPI(method, path string, reqBody, resType interface{}, need
// - full serialized request body // - full serialized request body
// - server current time (takes time delta into account) // - server current time (takes time delta into account)
// //
// Context is used by http.Client to handle context cancelation // # Context is used by http.Client to handle context cancelation
// //
// Call will automatically assemble the target url from the endpoint // Call will automatically assemble the target url from the endpoint
// configured in the client instance and the path argument. If the reqBody // configured in the client instance and the path argument. If the reqBody

View File

@ -44,10 +44,8 @@ var actionNames = []string{
"delete", "delete",
} }
var (
// ErrRecordToMutateNotFound when ApplyChange has to update/delete and didn't found the record in the existing zone (Change with no record ID) // ErrRecordToMutateNotFound when ApplyChange has to update/delete and didn't found the record in the existing zone (Change with no record ID)
ErrRecordToMutateNotFound = errors.New("record to mutate not found in current zone") var ErrRecordToMutateNotFound = errors.New("record to mutate not found in current zone")
)
type gdClient interface { type gdClient interface {
Patch(string, interface{}, interface{}) error Patch(string, interface{}, interface{}) error
@ -141,7 +139,6 @@ func (z gdZoneIDName) findZoneRecord(hostname string) (suitableZoneID string, su
// NewGoDaddyProvider initializes a new GoDaddy DNS based Provider. // NewGoDaddyProvider initializes a new GoDaddy DNS based Provider.
func NewGoDaddyProvider(ctx context.Context, domainFilter endpoint.DomainFilter, ttl int64, apiKey, apiSecret string, useOTE, dryRun bool) (*GDProvider, error) { func NewGoDaddyProvider(ctx context.Context, domainFilter endpoint.DomainFilter, ttl int64, apiKey, apiSecret string, useOTE, dryRun bool) (*GDProvider, error) {
client, err := NewClient(useOTE, apiKey, apiSecret) client, err := NewClient(useOTE, apiKey, apiSecret)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -177,7 +174,6 @@ func (p *GDProvider) zones() ([]string, error) {
func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gdRecords, error) { func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gdRecords, error) {
var allRecords []gdRecords var allRecords []gdRecords
zones, err := p.zones() zones, err := p.zones()
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
@ -186,7 +182,6 @@ func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gd
allRecords = []gdRecords{} allRecords = []gdRecords{}
} else if len(zones) == 1 { } else if len(zones) == 1 {
record, err := p.records(&ctx, zones[0], all) record, err := p.records(&ctx, zones[0], all)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
} }
@ -201,7 +196,6 @@ func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gd
zone := zoneName zone := zoneName
eg.Go(func() error { eg.Go(func() error {
record, err := p.records(&ctx, zone, all) record, err := p.records(&ctx, zone, all)
if err != nil { if err != nil {
return err return err
} }
@ -316,7 +310,6 @@ func (p *GDProvider) groupByNameAndType(zoneRecords []gdRecords) []*endpoint.End
// Records returns the list of records in all relevant zones. // Records returns the list of records in all relevant zones.
func (p *GDProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) { func (p *GDProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) {
_, records, err := p.zonesRecords(ctx, false) _, records, err := p.zonesRecords(ctx, false)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -390,7 +383,6 @@ func (p *GDProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) er
} }
_, records, err := p.zonesRecords(ctx, true) _, records, err := p.zonesRecords(ctx, true)
if err != nil { if err != nil {
return err return err
} }
@ -549,7 +541,6 @@ func maxOf(vars ...int64) int64 {
func toString(obj interface{}) string { func toString(obj interface{}) string {
b, err := json.MarshalIndent(obj, "", " ") b, err := json.MarshalIndent(obj, "", " ")
if err != nil { if err != nil {
return fmt.Sprintf("<%v>", err) return fmt.Sprintf("<%v>", err)
} }

View File

@ -745,7 +745,6 @@ func newGoogleProviderZoneOverlap(t *testing.T, domainFilter endpoint.DomainFilt
provider.dryRun = dryRun provider.dryRun = dryRun
return provider return provider
} }
func newGoogleProvider(t *testing.T, domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool, records []*endpoint.Endpoint) *GoogleProvider { func newGoogleProvider(t *testing.T, domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool, records []*endpoint.Endpoint) *GoogleProvider {

View File

@ -156,7 +156,6 @@ func NewInfobloxProvider(ibStartupCfg StartupConfig) (*ProviderConfig, error) {
requestor := &ibclient.WapiHttpRequestor{} requestor := &ibclient.WapiHttpRequestor{}
client, err := ibclient.NewConnector(hostCfg, authCfg, transportConfig, requestBuilder, requestor) client, err := ibclient.NewConnector(hostCfg, authCfg, transportConfig, requestBuilder, requestor)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -419,7 +419,6 @@ func TestInfobloxRecords(t *testing.T) {
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, false, &client) providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, false, &client)
actual, err := providerCfg.Records(context.Background()) actual, err := providerCfg.Records(context.Background())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -471,7 +470,6 @@ func TestInfobloxAdjustEndpoints(t *testing.T) {
} }
func TestInfobloxRecordsReverse(t *testing.T) { func TestInfobloxRecordsReverse(t *testing.T) {
client := mockIBConnector{ client := mockIBConnector{
mockInfobloxZones: &[]ibclient.ZoneAuth{ mockInfobloxZones: &[]ibclient.ZoneAuth{
createMockInfobloxZone("10.0.0.0/24"), createMockInfobloxZone("10.0.0.0/24"),
@ -485,7 +483,6 @@ func TestInfobloxRecordsReverse(t *testing.T) {
providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"10.0.0.0/24"}), provider.NewZoneIDFilter([]string{""}), true, true, &client) providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"10.0.0.0/24"}), provider.NewZoneIDFilter([]string{""}), true, true, &client)
actual, err := providerCfg.Records(context.Background()) actual, err := providerCfg.Records(context.Background())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

View File

@ -29,9 +29,7 @@ import (
"sigs.k8s.io/external-dns/provider" "sigs.k8s.io/external-dns/provider"
) )
var ( var _ provider.Provider = &InMemoryProvider{}
_ provider.Provider = &InMemoryProvider{}
)
func TestInMemoryProvider(t *testing.T) { func TestInMemoryProvider(t *testing.T) {
t.Run("findByType", testInMemoryFindByType) t.Run("findByType", testInMemoryFindByType)
@ -684,20 +682,17 @@ func testInMemoryApplyChanges(t *testing.T) {
"org": { "org": {
"example.org": []*inMemoryRecord{ "example.org": []*inMemoryRecord{
{ {
Name: "example.org", Name: "example.org",
Target: "8.8.8.8", Target: "8.8.8.8",
Type: endpoint.RecordTypeA, Type: endpoint.RecordTypeA,
}, },
{ {
Name: "example.org", Name: "example.org",
Type: endpoint.RecordTypeTXT, Type: endpoint.RecordTypeTXT,
}, },
}, },
"foo.org": []*inMemoryRecord{ "foo.org": []*inMemoryRecord{
{ {
Name: "foo.org", Name: "foo.org",
Target: "4.4.4.4", Target: "4.4.4.4",
Type: endpoint.RecordTypeCNAME, Type: endpoint.RecordTypeCNAME,
@ -792,7 +787,6 @@ func testInMemoryApplyChanges(t *testing.T) {
}, },
} { } {
t.Run(ti.title, func(t *testing.T) { t.Run(ti.title, func(t *testing.T) {
im := NewInMemoryProvider() im := NewInMemoryProvider()
c := &inMemoryClient{} c := &inMemoryClient{}
c.zones = getInitData() c.zones = getInitData()

View File

@ -158,7 +158,6 @@ func (p *LinodeProvider) fetchZones(ctx context.Context) ([]linodego.Domain, err
var zones []linodego.Domain var zones []linodego.Domain
allZones, err := p.Client.ListDomains(ctx, linodego.NewListOptions(0, "")) allZones, err := p.Client.ListDomains(ctx, linodego.NewListOptions(0, ""))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -262,7 +261,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
recordsByZoneID := make(map[string][]linodego.DomainRecord) recordsByZoneID := make(map[string][]linodego.DomainRecord)
zones, err := p.fetchZones(ctx) zones, err := p.fetchZones(ctx)
if err != nil { if err != nil {
return err return err
} }
@ -279,7 +277,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
// Fetch records for each zone // Fetch records for each zone
for _, zone := range zones { for _, zone := range zones {
records, err := p.fetchRecords(ctx, zone.ID) records, err := p.fetchRecords(ctx, zone.ID)
if err != nil { if err != nil {
return err return err
} }
@ -322,7 +319,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
} }
recordType, err := convertRecordType(ep.RecordType) recordType, err := convertRecordType(ep.RecordType)
if err != nil { if err != nil {
return err return err
} }
@ -371,7 +367,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes
} }
recordType, err := convertRecordType(ep.RecordType) recordType, err := convertRecordType(ep.RecordType)
if err != nil { if err != nil {
return err return err
} }

View File

@ -43,14 +43,17 @@ func (m *MockDomainClient) ListDomains(ctx context.Context, opts *linodego.ListO
args := m.Called(ctx, opts) args := m.Called(ctx, opts)
return args.Get(0).([]linodego.Domain), args.Error(1) return args.Get(0).([]linodego.Domain), args.Error(1)
} }
func (m *MockDomainClient) CreateDomainRecord(ctx context.Context, domainID int, opts linodego.DomainRecordCreateOptions) (*linodego.DomainRecord, error) { func (m *MockDomainClient) CreateDomainRecord(ctx context.Context, domainID int, opts linodego.DomainRecordCreateOptions) (*linodego.DomainRecord, error) {
args := m.Called(ctx, domainID, opts) args := m.Called(ctx, domainID, opts)
return args.Get(0).(*linodego.DomainRecord), args.Error(1) return args.Get(0).(*linodego.DomainRecord), args.Error(1)
} }
func (m *MockDomainClient) DeleteDomainRecord(ctx context.Context, domainID int, recordID int) error { func (m *MockDomainClient) DeleteDomainRecord(ctx context.Context, domainID int, recordID int) error {
args := m.Called(ctx, domainID, recordID) args := m.Called(ctx, domainID, recordID)
return args.Error(0) return args.Error(0)
} }
func (m *MockDomainClient) UpdateDomainRecord(ctx context.Context, domainID int, recordID int, opts linodego.DomainRecordUpdateOptions) (*linodego.DomainRecord, error) { func (m *MockDomainClient) UpdateDomainRecord(ctx context.Context, domainID int, recordID int, opts linodego.DomainRecordUpdateOptions) (*linodego.DomainRecord, error) {
args := m.Called(ctx, domainID, recordID, opts) args := m.Called(ctx, domainID, recordID, opts)
return args.Get(0).(*linodego.DomainRecord), args.Error(1) return args.Get(0).(*linodego.DomainRecord), args.Error(1)

View File

@ -184,7 +184,7 @@ func (p *NS1Provider) ns1BuildRecord(zoneName string, change *ns1Change) *dns.Re
record.AddAnswer(dns.NewAnswer(strings.Split(v, " "))) record.AddAnswer(dns.NewAnswer(strings.Split(v, " ")))
} }
// set default ttl, but respect minTTLSeconds // set default ttl, but respect minTTLSeconds
var ttl = ns1DefaultTTL ttl := ns1DefaultTTL
if p.minTTLSeconds > ttl { if p.minTTLSeconds > ttl {
ttl = p.minTTLSeconds ttl = p.minTTLSeconds
} }

View File

@ -76,7 +76,8 @@ func (c *mockOCIDNSClient) GetZoneRecords(ctx context.Context, request dns.GetZo
}} }}
response.OpcNextPage = common.String("1") response.OpcNextPage = common.String("1")
} else { } else {
response.Items = []dns.Record{{Domain: common.String("bar.foo.com"), response.Items = []dns.Record{{
Domain: common.String("bar.foo.com"),
Rdata: common.String("bar.com."), Rdata: common.String("bar.com."),
Rtype: common.String(endpoint.RecordTypeCNAME), Rtype: common.String(endpoint.RecordTypeCNAME),
Ttl: common.Int(ociRecordTTL), Ttl: common.Int(ociRecordTTL),

View File

@ -257,7 +257,7 @@ func NewPDNSProvider(ctx context.Context, config PDNSConfig) (*PDNSProvider, err
func (p *PDNSProvider) convertRRSetToEndpoints(rr pgo.RrSet) (endpoints []*endpoint.Endpoint, _ error) { func (p *PDNSProvider) convertRRSetToEndpoints(rr pgo.RrSet) (endpoints []*endpoint.Endpoint, _ error) {
endpoints = []*endpoint.Endpoint{} endpoints = []*endpoint.Endpoint{}
var targets = []string{} targets := []string{}
for _, record := range rr.Records { for _, record := range rr.Records {
// If a record is "Disabled", it's not supposed to be "visible" // If a record is "Disabled", it's not supposed to be "visible"

View File

@ -540,18 +540,20 @@ var (
/******************************************************************************/ /******************************************************************************/
// API that returns a zone with multiple record types // API that returns a zone with multiple record types
type PDNSAPIClientStub struct { type PDNSAPIClientStub struct{}
}
func (c *PDNSAPIClientStub) ListZones() ([]pgo.Zone, *http.Response, error) { func (c *PDNSAPIClientStub) ListZones() ([]pgo.Zone, *http.Response, error) {
return []pgo.Zone{ZoneMixed}, nil, nil return []pgo.Zone{ZoneMixed}, nil, nil
} }
func (c *PDNSAPIClientStub) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { func (c *PDNSAPIClientStub) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) {
return zones, nil return zones, nil
} }
func (c *PDNSAPIClientStub) ListZone(zoneID string) (pgo.Zone, *http.Response, error) { func (c *PDNSAPIClientStub) ListZone(zoneID string) (pgo.Zone, *http.Response, error) {
return ZoneMixed, nil, nil return ZoneMixed, nil, nil
} }
func (c *PDNSAPIClientStub) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) { func (c *PDNSAPIClientStub) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) {
return nil, nil return nil, nil
} }
@ -566,11 +568,12 @@ type PDNSAPIClientStubEmptyZones struct {
func (c *PDNSAPIClientStubEmptyZones) ListZones() ([]pgo.Zone, *http.Response, error) { func (c *PDNSAPIClientStubEmptyZones) ListZones() ([]pgo.Zone, *http.Response, error) {
return []pgo.Zone{ZoneEmpty, ZoneEmptyLong, ZoneEmpty2}, nil, nil return []pgo.Zone{ZoneEmpty, ZoneEmptyLong, ZoneEmpty2}, nil, nil
} }
func (c *PDNSAPIClientStubEmptyZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { func (c *PDNSAPIClientStubEmptyZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) {
return zones, nil return zones, nil
} }
func (c *PDNSAPIClientStubEmptyZones) ListZone(zoneID string) (pgo.Zone, *http.Response, error) {
func (c *PDNSAPIClientStubEmptyZones) ListZone(zoneID string) (pgo.Zone, *http.Response, error) {
if strings.Contains(zoneID, "example.com") { if strings.Contains(zoneID, "example.com") {
return ZoneEmpty, nil, nil return ZoneEmpty, nil, nil
} else if strings.Contains(zoneID, "mock.test") { } else if strings.Contains(zoneID, "mock.test") {
@ -579,8 +582,8 @@ func (c *PDNSAPIClientStubEmptyZones) ListZone(zoneID string) (pgo.Zone, *http.R
return ZoneEmptyLong, nil, nil return ZoneEmptyLong, nil, nil
} }
return pgo.Zone{}, nil, nil return pgo.Zone{}, nil, nil
} }
func (c *PDNSAPIClientStubEmptyZones) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) { func (c *PDNSAPIClientStubEmptyZones) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) {
c.patchedZones = append(c.patchedZones, zoneStruct) c.patchedZones = append(c.patchedZones, zoneStruct)
return nil, nil return nil, nil
@ -608,7 +611,6 @@ type PDNSAPIClientStubListZoneFailure struct {
// Just overwrite the ListZone method to introduce a failure // Just overwrite the ListZone method to introduce a failure
func (c *PDNSAPIClientStubListZoneFailure) ListZone(zoneID string) (pgo.Zone, *http.Response, error) { func (c *PDNSAPIClientStubListZoneFailure) ListZone(zoneID string) (pgo.Zone, *http.Response, error) {
return pgo.Zone{}, nil, errors.New("Generic PDNS Error") return pgo.Zone{}, nil, errors.New("Generic PDNS Error")
} }
/******************************************************************************/ /******************************************************************************/
@ -635,7 +637,6 @@ func (c *PDNSAPIClientStubPartitionZones) ListZones() ([]pgo.Zone, *http.Respons
} }
func (c *PDNSAPIClientStubPartitionZones) ListZone(zoneID string) (pgo.Zone, *http.Response, error) { func (c *PDNSAPIClientStubPartitionZones) ListZone(zoneID string) (pgo.Zone, *http.Response, error) {
if strings.Contains(zoneID, "example.com") { if strings.Contains(zoneID, "example.com") {
return ZoneEmpty, nil, nil return ZoneEmpty, nil, nil
} else if strings.Contains(zoneID, "mock.test") { } else if strings.Contains(zoneID, "mock.test") {
@ -651,7 +652,6 @@ func (c *PDNSAPIClientStubPartitionZones) ListZone(zoneID string) (pgo.Zone, *ht
// Just overwrite the ListZones method to introduce a failure // Just overwrite the ListZones method to introduce a failure
func (c *PDNSAPIClientStubPartitionZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { func (c *PDNSAPIClientStubPartitionZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) {
return []pgo.Zone{ZoneEmpty}, []pgo.Zone{ZoneEmptyLong, ZoneEmpty2} return []pgo.Zone{ZoneEmpty}, []pgo.Zone{ZoneEmptyLong, ZoneEmpty2}
} }
/******************************************************************************/ /******************************************************************************/
@ -661,7 +661,6 @@ type NewPDNSProviderTestSuite struct {
} }
func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreate() { func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreate() {
_, err := NewPDNSProvider( _, err := NewPDNSProvider(
context.Background(), context.Background(),
PDNSConfig{ PDNSConfig{
@ -701,7 +700,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreate() {
} }
func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreateTLS() { func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreateTLS() {
_, err := NewPDNSProvider( _, err := NewPDNSProvider(
context.Background(), context.Background(),
PDNSConfig{ PDNSConfig{
@ -829,7 +827,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSRRSetToEndpoints() {
eps, err = p.convertRRSetToEndpoints(RRSetDisabledRecord) eps, err = p.convertRRSetToEndpoints(RRSetDisabledRecord)
assert.Nil(suite.T(), err) assert.Nil(suite.T(), err)
assert.Equal(suite.T(), endpointsDisabledRecord, eps) assert.Equal(suite.T(), endpointsDisabledRecord, eps)
} }
func (suite *NewPDNSProviderTestSuite) TestPDNSRecords() { func (suite *NewPDNSProviderTestSuite) TestPDNSRecords() {
@ -861,7 +858,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSRecords() {
} }
_, err = p.Records(ctx) _, err = p.Records(ctx)
assert.NotNil(suite.T(), err) assert.NotNil(suite.T(), err)
} }
func (suite *NewPDNSProviderTestSuite) TestPDNSConvertEndpointsToZones() { func (suite *NewPDNSProviderTestSuite) TestPDNSConvertEndpointsToZones() {
@ -996,7 +992,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSmutateRecords() {
// Check inserting endpoints from a single zone // Check inserting endpoints from a single zone
err = p.mutateRecords(endpointsSimpleRecord, pdnsChangeType("REPLACE")) err = p.mutateRecords(endpointsSimpleRecord, pdnsChangeType("REPLACE"))
assert.NotNil(suite.T(), err) assert.NotNil(suite.T(), err)
} }
func (suite *NewPDNSProviderTestSuite) TestPDNSClientPartitionZones() { func (suite *NewPDNSProviderTestSuite) TestPDNSClientPartitionZones() {

View File

@ -22,6 +22,7 @@ import (
"os" "os"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"sigs.k8s.io/external-dns/endpoint" "sigs.k8s.io/external-dns/endpoint"
"sigs.k8s.io/external-dns/plan" "sigs.k8s.io/external-dns/plan"
"sigs.k8s.io/external-dns/provider" "sigs.k8s.io/external-dns/provider"

View File

@ -70,7 +70,6 @@ func newPluralProvider(pluralDNSRecord []*DnsRecord) *PluralProvider {
} }
func TestPluralRecords(t *testing.T) { func TestPluralRecords(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
expectedEndpoints []*endpoint.Endpoint expectedEndpoints []*endpoint.Endpoint
@ -136,11 +135,9 @@ func TestPluralRecords(t *testing.T) {
validateEndpoints(t, actual, test.expectedEndpoints) validateEndpoints(t, actual, test.expectedEndpoints)
}) })
} }
} }
func TestPluralApplyChangesCreate(t *testing.T) { func TestPluralApplyChangesCreate(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
expectedEndpoints []*endpoint.Endpoint expectedEndpoints []*endpoint.Endpoint
@ -198,7 +195,6 @@ func TestPluralApplyChangesCreate(t *testing.T) {
} }
func TestPluralApplyChangesDelete(t *testing.T) { func TestPluralApplyChangesDelete(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
records []*DnsRecord records []*DnsRecord

View File

@ -34,8 +34,7 @@ type Provider interface {
GetDomainFilter() endpoint.DomainFilterInterface GetDomainFilter() endpoint.DomainFilterInterface
} }
type BaseProvider struct { type BaseProvider struct{}
}
func (b BaseProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint { func (b BaseProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint {
return endpoints return endpoints

View File

@ -47,7 +47,6 @@ type RcodeZeroProvider struct {
// Returns the provider or an error if a provider could not be created. // Returns the provider or an error if a provider could not be created.
func NewRcodeZeroProvider(domainFilter endpoint.DomainFilter, dryRun bool, txtEnc bool) (*RcodeZeroProvider, error) { func NewRcodeZeroProvider(domainFilter endpoint.DomainFilter, dryRun bool, txtEnc bool) (*RcodeZeroProvider, error) {
client, err := rc0.NewClient(os.Getenv("RC0_API_KEY")) client, err := rc0.NewClient(os.Getenv("RC0_API_KEY"))
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -106,7 +105,6 @@ func (p *RcodeZeroProvider) Records(ctx context.Context) ([]*endpoint.Endpoint,
for _, zone := range zones { for _, zone := range zones {
rrset, err := p.fetchRecords(zone.Domain) rrset, err := p.fetchRecords(zone.Domain)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -172,7 +170,6 @@ func (p *RcodeZeroProvider) fetchRecords(zoneName string) ([]*rc0.RRType, error)
for { for {
records, page, err := p.Client.RRSet.List(zoneName, listOptions) records, page, err := p.Client.RRSet.List(zoneName, listOptions)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -249,7 +246,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error {
switch change.ChangeType { switch change.ChangeType {
case rc0.ChangeTypeADD: case rc0.ChangeTypeADD:
sr, err := p.Client.RRSet.Create(zoneName, []*rc0.RRSetChange{change}) sr, err := p.Client.RRSet.Create(zoneName, []*rc0.RRSetChange{change})
if err != nil { if err != nil {
return err return err
} }
@ -260,7 +256,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error {
case rc0.ChangeTypeUPDATE: case rc0.ChangeTypeUPDATE:
sr, err := p.Client.RRSet.Edit(zoneName, []*rc0.RRSetChange{change}) sr, err := p.Client.RRSet.Edit(zoneName, []*rc0.RRSetChange{change})
if err != nil { if err != nil {
return err return err
} }
@ -271,7 +266,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error {
case rc0.ChangeTypeDELETE: case rc0.ChangeTypeDELETE:
sr, err := p.Client.RRSet.Delete(zoneName, []*rc0.RRSetChange{change}) sr, err := p.Client.RRSet.Delete(zoneName, []*rc0.RRSetChange{change})
if err != nil { if err != nil {
return err return err
} }

View File

@ -53,7 +53,6 @@ func (m *mockZoneManagementService) resetTestConditions() {
} }
func TestRcodeZeroProvider_Records(t *testing.T) { func TestRcodeZeroProvider_Records(t *testing.T) {
mockRRSetService := &mockRRSetService{} mockRRSetService := &mockRRSetService{}
mockZoneManagementService := &mockZoneManagementService{} mockZoneManagementService := &mockZoneManagementService{}
@ -67,7 +66,6 @@ func TestRcodeZeroProvider_Records(t *testing.T) {
ctx := context.Background() ctx := context.Background()
endpoints, err := provider.Records(ctx) // should return 6 rrs endpoints, err := provider.Records(ctx) // should return 6 rrs
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }
@ -79,11 +77,9 @@ func TestRcodeZeroProvider_Records(t *testing.T) {
if err == nil { if err == nil {
t.Errorf("expected to fail, %s", err) t.Errorf("expected to fail, %s", err)
} }
} }
func TestRcodeZeroProvider_ApplyChanges(t *testing.T) { func TestRcodeZeroProvider_ApplyChanges(t *testing.T) {
mockRRSetService := &mockRRSetService{} mockRRSetService := &mockRRSetService{}
mockZoneManagementService := &mockZoneManagementService{} mockZoneManagementService := &mockZoneManagementService{}
@ -98,15 +94,12 @@ func TestRcodeZeroProvider_ApplyChanges(t *testing.T) {
changes := mockChanges() changes := mockChanges()
err := provider.ApplyChanges(context.Background(), changes) err := provider.ApplyChanges(context.Background(), changes)
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }
} }
func TestRcodeZeroProvider_NewRcodezeroChanges(t *testing.T) { func TestRcodeZeroProvider_NewRcodezeroChanges(t *testing.T) {
provider := &RcodeZeroProvider{} provider := &RcodeZeroProvider{}
changes := mockChanges() changes := mockChanges()
@ -125,7 +118,6 @@ func TestRcodeZeroProvider_NewRcodezeroChanges(t *testing.T) {
} }
func TestRcodeZeroProvider_NewRcodezeroChange(t *testing.T) { func TestRcodeZeroProvider_NewRcodezeroChange(t *testing.T) {
_endpoint := &endpoint.Endpoint{ _endpoint := &endpoint.Endpoint{
RecordType: "A", RecordType: "A",
DNSName: "app." + testZoneOne, DNSName: "app." + testZoneOne,
@ -141,11 +133,9 @@ func TestRcodeZeroProvider_NewRcodezeroChange(t *testing.T) {
require.Equal(t, _endpoint.DNSName, rrsetChange.Name) require.Equal(t, _endpoint.DNSName, rrsetChange.Name)
require.Equal(t, _endpoint.Targets[0], rrsetChange.Records[0].Content) require.Equal(t, _endpoint.Targets[0], rrsetChange.Records[0].Content)
// require.Equal(t, endpoint.RecordTTL, rrsetChange.TTL) // require.Equal(t, endpoint.RecordTTL, rrsetChange.TTL)
} }
func Test_submitChanges(t *testing.T) { func Test_submitChanges(t *testing.T) {
mockRRSetService := &mockRRSetService{} mockRRSetService := &mockRRSetService{}
mockZoneManagementService := &mockZoneManagementService{} mockZoneManagementService := &mockZoneManagementService{}
@ -164,11 +154,9 @@ func Test_submitChanges(t *testing.T) {
if err == nil { if err == nil {
t.Errorf("expected to fail, %s", err) t.Errorf("expected to fail, %s", err)
} }
} }
func mockRRSetChanges(condition int) []*rc0.RRSetChange { func mockRRSetChanges(condition int) []*rc0.RRSetChange {
switch condition { switch condition {
case rrsetChangesUnsupportedChangeType: case rrsetChangesUnsupportedChangeType:
return []*rc0.RRSetChange{ return []*rc0.RRSetChange{
@ -185,7 +173,6 @@ func mockRRSetChanges(condition int) []*rc0.RRSetChange {
} }
func mockChanges() *plan.Changes { func mockChanges() *plan.Changes {
changes := &plan.Changes{} changes := &plan.Changes{}
changes.Create = []*endpoint.Endpoint{ changes.Create = []*endpoint.Endpoint{
@ -202,7 +189,6 @@ func mockChanges() *plan.Changes {
} }
func TestRcodeZeroProvider_Zones(t *testing.T) { func TestRcodeZeroProvider_Zones(t *testing.T) {
mockRRSetService := &mockRRSetService{} mockRRSetService := &mockRRSetService{}
mockZoneManagementService := &mockZoneManagementService{} mockZoneManagementService := &mockZoneManagementService{}
@ -216,7 +202,6 @@ func TestRcodeZeroProvider_Zones(t *testing.T) {
mockZoneManagementService.TestNilZonesReturned = true mockZoneManagementService.TestNilZonesReturned = true
zones, err := provider.Zones() zones, err := provider.Zones()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -229,14 +214,11 @@ func TestRcodeZeroProvider_Zones(t *testing.T) {
if err == nil { if err == nil {
t.Errorf("expected to fail, %s", err) t.Errorf("expected to fail, %s", err)
} }
} }
func TestNewRcodeZeroProvider(t *testing.T) { func TestNewRcodeZeroProvider(t *testing.T) {
_ = os.Setenv("RC0_API_KEY", "123") _ = os.Setenv("RC0_API_KEY", "123")
p, err := NewRcodeZeroProvider(endpoint.NewDomainFilter([]string{"ext-dns-test." + testZoneOne + "."}), true, true) p, err := NewRcodeZeroProvider(endpoint.NewDomainFilter([]string{"ext-dns-test." + testZoneOne + "."}), true, true)
if err != nil { if err != nil {
t.Errorf("should not fail, %s", err) t.Errorf("should not fail, %s", err)
} }
@ -262,13 +244,11 @@ func TestNewRcodeZeroProvider(t *testing.T) {
if err == nil { if err == nil {
t.Errorf("expected to fail") t.Errorf("expected to fail")
} }
} }
/* mocking mockRRSetServiceInterface */ /* mocking mockRRSetServiceInterface */
func (m *mockRRSetService) List(zone string, options *rc0.ListOptions) ([]*rc0.RRType, *rc0.Page, error) { func (m *mockRRSetService) List(zone string, options *rc0.ListOptions) ([]*rc0.RRType, *rc0.Page, error) {
if m.TestErrorReturned { if m.TestErrorReturned {
return nil, nil, fmt.Errorf("operation RRSet.List failed") return nil, nil, fmt.Errorf("operation RRSet.List failed")
} }
@ -341,20 +321,18 @@ func mockRRSet(zone string) []*rc0.RRType {
} }
func (m *mockRRSetService) Create(zone string, rrsetCreate []*rc0.RRSetChange) (*rc0.StatusResponse, error) { func (m *mockRRSetService) Create(zone string, rrsetCreate []*rc0.RRSetChange) (*rc0.StatusResponse, error) {
return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil
} }
func (m *mockRRSetService) Edit(zone string, rrsetEdit []*rc0.RRSetChange) (*rc0.StatusResponse, error) { func (m *mockRRSetService) Edit(zone string, rrsetEdit []*rc0.RRSetChange) (*rc0.StatusResponse, error) {
return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil
} }
func (m *mockRRSetService) Delete(zone string, rrsetDelete []*rc0.RRSetChange) (*rc0.StatusResponse, error) { func (m *mockRRSetService) Delete(zone string, rrsetDelete []*rc0.RRSetChange) (*rc0.StatusResponse, error) {
return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil
} }
func (m *mockRRSetService) SubmitChangeSet(zone string, changeSet []*rc0.RRSetChange) (*rc0.StatusResponse, error) {
func (m *mockRRSetService) SubmitChangeSet(zone string, changeSet []*rc0.RRSetChange) (*rc0.StatusResponse, error) {
return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil
} }
@ -365,7 +343,6 @@ func (m *mockRRSetService) DecryptTXT(key []byte, rrType *rc0.RRType) {}
/* mocking ZoneManagementServiceInterface */ /* mocking ZoneManagementServiceInterface */
func (m *mockZoneManagementService) List(options *rc0.ListOptions) ([]*rc0.Zone, *rc0.Page, error) { func (m *mockZoneManagementService) List(options *rc0.ListOptions) ([]*rc0.Zone, *rc0.Page, error) {
if m.TestNilZonesReturned { if m.TestNilZonesReturned {
return nil, nil, nil return nil, nil, nil
} }
@ -407,6 +384,7 @@ func (m *mockZoneManagementService) Get(zone string) (*rc0.Zone, error) { return
func (m *mockZoneManagementService) Create(zoneCreate *rc0.ZoneCreate) (*rc0.StatusResponse, error) { func (m *mockZoneManagementService) Create(zoneCreate *rc0.ZoneCreate) (*rc0.StatusResponse, error) {
return nil, nil return nil, nil
} }
func (m *mockZoneManagementService) Edit(zone string, zoneEdit *rc0.ZoneEdit) (*rc0.StatusResponse, error) { func (m *mockZoneManagementService) Edit(zone string, zoneEdit *rc0.ZoneEdit) (*rc0.StatusResponse, error) {
return nil, nil return nil, nil
} }

View File

@ -282,7 +282,6 @@ func TestRDNSApplyChanges(t *testing.T) {
} }
client.validateRecords(client.rs, expectedRecords3, t) client.validateRecords(client.rs, expectedRecords3, t)
} }
func (c fakeEtcdv3Client) aggregationRecords(result *clientv3.GetResponse) ([]RDNSRecord, error) { func (c fakeEtcdv3Client) aggregationRecords(result *clientv3.GetResponse) ([]RDNSRecord, error) {

View File

@ -19,7 +19,7 @@ package provider
import "testing" import "testing"
func TestRecordTypeFilter(t *testing.T) { func TestRecordTypeFilter(t *testing.T) {
var records = []struct { records := []struct {
rtype string rtype string
expect bool expect bool
}{ }{

View File

@ -69,9 +69,8 @@ type rfc2136Provider struct {
actions rfc2136Actions actions rfc2136Actions
} }
var (
// Map of supported TSIG algorithms // Map of supported TSIG algorithms
tsigAlgs = map[string]string{ var tsigAlgs = map[string]string{
"hmac-md5": dns.HmacMD5, "hmac-md5": dns.HmacMD5,
"hmac-sha1": dns.HmacSHA1, "hmac-sha1": dns.HmacSHA1,
"hmac-sha224": dns.HmacSHA224, "hmac-sha224": dns.HmacSHA224,
@ -79,7 +78,6 @@ var (
"hmac-sha384": dns.HmacSHA384, "hmac-sha384": dns.HmacSHA384,
"hmac-sha512": dns.HmacSHA512, "hmac-sha512": dns.HmacSHA512,
} }
)
type rfc2136Actions interface { type rfc2136Actions interface {
SendMessage(msg *dns.Msg) error SendMessage(msg *dns.Msg) error
@ -347,7 +345,7 @@ func (r rfc2136Provider) UpdateRecord(m *dns.Msg, oldEp *endpoint.Endpoint, newE
func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error { func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error {
log.Debugf("AddRecord.ep=%s", ep) log.Debugf("AddRecord.ep=%s", ep)
var ttl = int64(r.minTTL.Seconds()) ttl := int64(r.minTTL.Seconds())
if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl { if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl {
ttl = int64(ep.RecordTTL) ttl = int64(ep.RecordTTL)
} }

View File

@ -208,7 +208,6 @@ func TestRfc2136ApplyChanges(t *testing.T) {
assert.Equal(t, 2, len(stub.updateMsgs)) assert.Equal(t, 2, len(stub.updateMsgs))
assert.True(t, strings.Contains(stub.updateMsgs[0].String(), "v2.foo.com")) assert.True(t, strings.Contains(stub.updateMsgs[0].String(), "v2.foo.com"))
assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "v2.foobar.com")) assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "v2.foobar.com"))
} }
func TestRfc2136ApplyChangesWithDifferentTTLs(t *testing.T) { func TestRfc2136ApplyChangesWithDifferentTTLs(t *testing.T) {
@ -253,7 +252,6 @@ func TestRfc2136ApplyChangesWithDifferentTTLs(t *testing.T) {
assert.True(t, strings.Contains(createRecords[2], "v3.foo.com")) assert.True(t, strings.Contains(createRecords[2], "v3.foo.com"))
assert.True(t, strings.Contains(createRecords[2], "4.3.3.3")) assert.True(t, strings.Contains(createRecords[2], "4.3.3.3"))
assert.True(t, strings.Contains(createRecords[2], "300")) assert.True(t, strings.Contains(createRecords[2], "300"))
} }
func TestRfc2136ApplyChangesWithUpdate(t *testing.T) { func TestRfc2136ApplyChangesWithUpdate(t *testing.T) {
@ -331,7 +329,6 @@ func TestRfc2136ApplyChangesWithUpdate(t *testing.T) {
assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "v1.foobar.com")) assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "v1.foobar.com"))
assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "boom")) assert.True(t, strings.Contains(stub.updateMsgs[1].String(), "boom"))
} }
func TestChunkBy(t *testing.T) { func TestChunkBy(t *testing.T) {

View File

@ -272,11 +272,11 @@ func getCompleteZoneName(zone *domain.DNSZone) string {
func endpointToScalewayRecords(zoneName string, ep *endpoint.Endpoint) []*domain.Record { func endpointToScalewayRecords(zoneName string, ep *endpoint.Endpoint) []*domain.Record {
// no annotation results in a TTL of 0, default to 300 for consistency with other providers // no annotation results in a TTL of 0, default to 300 for consistency with other providers
var ttl = scalewyRecordTTL ttl := scalewyRecordTTL
if ep.RecordTTL.IsConfigured() { if ep.RecordTTL.IsConfigured() {
ttl = uint32(ep.RecordTTL) ttl = uint32(ep.RecordTTL)
} }
var priority = scalewayDefaultPriority priority := scalewayDefaultPriority
if prop, ok := ep.GetProviderSpecificProperty(scalewayPriorityKey); ok { if prop, ok := ep.GetProviderSpecificProperty(scalewayPriorityKey); ok {
prio, err := strconv.ParseUint(prop.Value, 10, 32) prio, err := strconv.ParseUint(prop.Value, 10, 32)
if err != nil { if err != nil {

View File

@ -18,13 +18,14 @@ package tencentcloud
import ( import (
"context" "context"
"testing"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
dnspod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323" dnspod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323"
"sigs.k8s.io/external-dns/endpoint" "sigs.k8s.io/external-dns/endpoint"
"sigs.k8s.io/external-dns/plan" "sigs.k8s.io/external-dns/plan"
"sigs.k8s.io/external-dns/provider" "sigs.k8s.io/external-dns/provider"
"sigs.k8s.io/external-dns/provider/tencentcloud/cloudapi" "sigs.k8s.io/external-dns/provider/tencentcloud/cloudapi"
"testing"
privatedns "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028" privatedns "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028"
) )

View File

@ -41,9 +41,12 @@ const (
// global variables // global variables
var sbPoolRunProbes = true var sbPoolRunProbes = true
var sbPoolActOnProbes = true
var ultradnsPoolType = "rdpool" var (
var accountName string sbPoolActOnProbes = true
ultradnsPoolType = "rdpool"
accountName string
)
// Setting custom headers for ultradns api calls // Setting custom headers for ultradns api calls
var customHeader = []udnssdk.CustomHeader{ var customHeader = []udnssdk.CustomHeader{
@ -145,7 +148,6 @@ func (p *UltraDNSProvider) Zones(ctx context.Context) ([]udnssdk.Zone, error) {
zoneKey.Zone = zone zoneKey.Zone = zone
zoneKey.AccountName = accountName zoneKey.AccountName = accountName
zones, err := p.fetchZones(ctx, zoneKey) zones, err := p.fetchZones(ctx, zoneKey)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -76,7 +76,6 @@ func (m *mockUltraDNSRecord) Select(k udnssdk.RRSetKey) ([]udnssdk.RRSet, error)
RData: []string{"1.1.1.1"}, RData: []string{"1.1.1.1"},
TTL: 86400, TTL: 86400,
}}, nil }}, nil
} }
func (m *mockUltraDNSRecord) SelectWithOffset(k udnssdk.RRSetKey, offset int) ([]udnssdk.RRSet, udnssdk.ResultInfo, *http.Response, error) { func (m *mockUltraDNSRecord) SelectWithOffset(k udnssdk.RRSetKey, offset int) ([]udnssdk.RRSet, udnssdk.ResultInfo, *http.Response, error) {
@ -136,7 +135,6 @@ func TestUltraDNSProvider_Zones(t *testing.T) {
zones, err := provider.Zones(context.Background()) zones, err := provider.Zones(context.Background())
assert.Nil(t, err) assert.Nil(t, err)
assert.Equal(t, reflect.DeepEqual(expected, zones), true) assert.Equal(t, reflect.DeepEqual(expected, zones), true)
} }
// Records function test case // Records function test case
@ -159,7 +157,6 @@ func TestUltraDNSProvider_Records(t *testing.T) {
assert.Equal(t, v.RecordType, expected[0].RRType) assert.Equal(t, v.RecordType, expected[0].RRType)
assert.Equal(t, int(v.RecordTTL), expected[0].TTL) assert.Equal(t, int(v.RecordTTL), expected[0].TTL)
} }
} }
// ApplyChanges function testcase // ApplyChanges function testcase
@ -233,11 +230,9 @@ func TestUltraDNSProvider_ApplyChangesCNAME(t *testing.T) {
// This will work if you would set the environment variables such as "ULTRADNS_INTEGRATION" and zone should be available "kubernetes-ultradns-provider-test.com" // This will work if you would set the environment variables such as "ULTRADNS_INTEGRATION" and zone should be available "kubernetes-ultradns-provider-test.com"
func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) { func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
providerUltradns, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) providerUltradns, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false)
@ -271,7 +266,8 @@ func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) {
changes = &plan.Changes{} changes = &plan.Changes{}
changes.UpdateNew = []*endpoint.Endpoint{ changes.UpdateNew = []*endpoint.Endpoint{
{DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.2.2"}, RecordType: "A", RecordTTL: 100}, {DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.2.2"}, RecordType: "A", RecordTTL: 100},
{DNSName: "ttl.kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"2001:0db8:85a3:0000:0000:8a2e:0370:7335"}, RecordType: "AAAA", RecordTTL: 100}} {DNSName: "ttl.kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"2001:0db8:85a3:0000:0000:8a2e:0370:7335"}, RecordType: "AAAA", RecordTTL: 100},
}
err = providerUltradns.ApplyChanges(context.Background(), changes) err = providerUltradns.ApplyChanges(context.Background(), changes)
assert.Nil(t, err) assert.Nil(t, err)
@ -296,7 +292,8 @@ func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) {
changes = &plan.Changes{} changes = &plan.Changes{}
changes.Delete = []*endpoint.Endpoint{ changes.Delete = []*endpoint.Endpoint{
{DNSName: "ttl.kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"2001:0db8:85a3:0000:0000:8a2e:0370:7335"}, RecordType: "AAAA", RecordTTL: 100}, {DNSName: "ttl.kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"2001:0db8:85a3:0000:0000:8a2e:0370:7335"}, RecordType: "AAAA", RecordTTL: 100},
{DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.2.2"}, RecordType: "A", RecordTTL: 100}} {DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.2.2"}, RecordType: "A", RecordTTL: 100},
}
err = providerUltradns.ApplyChanges(context.Background(), changes) err = providerUltradns.ApplyChanges(context.Background(), changes)
assert.Nil(t, err) assert.Nil(t, err)
@ -308,7 +305,6 @@ func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) {
assert.Equal(t, resp.Status, "404 Not Found") assert.Equal(t, resp.Status, "404 Not Found")
} }
} }
// This will work if you would set the environment variables such as "ULTRADNS_INTEGRATION" and zone should be available "kubernetes-ultradns-provider-test.com" for multiple target // This will work if you would set the environment variables such as "ULTRADNS_INTEGRATION" and zone should be available "kubernetes-ultradns-provider-test.com" for multiple target
@ -316,13 +312,13 @@ func TestUltraDNSProvider_ApplyChanges_MultipleTarget_integeration(t *testing.T)
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false)
changes := &plan.Changes{} changes := &plan.Changes{}
changes.Create = []*endpoint.Endpoint{ changes.Create = []*endpoint.Endpoint{
{DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.1.1", "1.1.2.2"}, RecordType: "A"}} {DNSName: "kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.1.1", "1.1.2.2"}, RecordType: "A"},
}
err = provider.ApplyChanges(context.Background(), changes) err = provider.ApplyChanges(context.Background(), changes)
assert.Nil(t, err) assert.Nil(t, err)
@ -404,7 +400,7 @@ func TestUltraDNSProvider_newSBPoolObjectCreation(t *testing.T) {
}, },
} }
for _, _ = range changesList.ResourceRecordSetUltraDNS.RData { for range changesList.ResourceRecordSetUltraDNS.RData {
rrdataInfo := udnssdk.SBRDataInfo{ rrdataInfo := udnssdk.SBRDataInfo{
RunProbes: true, RunProbes: true,
@ -428,7 +424,6 @@ func TestUltraDNSProvider_newSBPoolObjectCreation(t *testing.T) {
actualSBPoolObject, _ := provider.newSBPoolObjectCreation(context.Background(), changesList) actualSBPoolObject, _ := provider.newSBPoolObjectCreation(context.Background(), changesList)
assert.Equal(t, sbPoolObject, actualSBPoolObject) assert.Equal(t, sbPoolObject, actualSBPoolObject)
} }
// Testcase to check fail scenario for multiple AAAA targets // Testcase to check fail scenario for multiple AAAA targets
@ -436,7 +431,6 @@ func TestUltraDNSProvider_MultipleTargetAAAA(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
_ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool") _ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool")
@ -459,7 +453,6 @@ func TestUltraDNSProvider_MultipleTargetAAAARDPool(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
_ = os.Setenv("ULTRADNS_POOL_TYPE", "rdpool") _ = os.Setenv("ULTRADNS_POOL_TYPE", "rdpool")
provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false)
@ -491,7 +484,6 @@ func TestUltraDNSProvider_MultipleTargetCNAME(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false)
changes := &plan.Changes{} changes := &plan.Changes{}
@ -538,7 +530,6 @@ func TestUltraDNSProvider_newRDPoolObjectCreation(t *testing.T) {
actualRDPoolObject, _ := provider.newRDPoolObjectCreation(context.Background(), changesList) actualRDPoolObject, _ := provider.newRDPoolObjectCreation(context.Background(), changesList)
assert.Equal(t, rdPoolObject, actualRDPoolObject) assert.Equal(t, rdPoolObject, actualRDPoolObject)
} }
// Testing Failure scenarios over NewUltraDNS Provider // Testing Failure scenarios over NewUltraDNS Provider
@ -590,7 +581,6 @@ func TestNewUltraDNSProvider_FailCases(t *testing.T) {
_ = os.Unsetenv("ULTRADNS_POOL_TYPE") _ = os.Unsetenv("ULTRADNS_POOL_TYPE")
_, accounterr := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) _, accounterr := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true)
assert.Nil(t, accounterr) assert.Nil(t, accounterr)
} }
// Testing success scenarios for newly introduced environment variables // Testing success scenarios for newly introduced environment variables
@ -618,12 +608,10 @@ func TestNewUltraDNSProvider_NewEnvVariableSuccessCases(t *testing.T) {
_ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true") _ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true")
_, err2 := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) _, err2 := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true)
assert.Nilf(t, err2, "ActOnProbe given value is not working %s", "formatted") assert.Nilf(t, err2, "ActOnProbe given value is not working %s", "formatted")
} }
// Base64 Bad string decoding scenario // Base64 Bad string decoding scenario
func TestNewUltraDNSProvider_Base64DecodeFailcase(t *testing.T) { func TestNewUltraDNSProvider_Base64DecodeFailcase(t *testing.T) {
_ = os.Setenv("ULTRADNS_USERNAME", "") _ = os.Setenv("ULTRADNS_USERNAME", "")
_ = os.Setenv("ULTRADNS_PASSWORD", "12345") _ = os.Setenv("ULTRADNS_PASSWORD", "12345")
_ = os.Setenv("ULTRADNS_BASEURL", "") _ = os.Setenv("ULTRADNS_BASEURL", "")
@ -631,15 +619,12 @@ func TestNewUltraDNSProvider_Base64DecodeFailcase(t *testing.T) {
_ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true") _ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true")
_, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) _, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true)
assert.NotNilf(t, err, "Base64 decode should fail in this case %s", "formatted") assert.NotNilf(t, err, "Base64 decode should fail in this case %s", "formatted")
} }
func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { func TestUltraDNSProvider_PoolConversionCase(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
// Creating SBPool Record // Creating SBPool Record
_ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool") _ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool")
@ -683,11 +668,9 @@ func TestUltraDNSProvider_PoolConversionCase(t *testing.T) {
} }
func TestUltraDNSProvider_DomainFilter(t *testing.T) { func TestUltraDNSProvider_DomainFilter(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-ultradns-provider-test.com"}), true) provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-ultradns-provider-test.com"}), true)
zones, err := provider.Zones(context.Background()) zones, err := provider.Zones(context.Background())
@ -703,11 +686,9 @@ func TestUltraDNSProvider_DomainFilter(t *testing.T) {
} }
func TestUltraDNSProvider_DomainFiltersZonesFailCase(t *testing.T) { func TestUltraDNSProvider_DomainFiltersZonesFailCase(t *testing.T) {
_, ok := os.LookupEnv("ULTRADNS_INTEGRATION") _, ok := os.LookupEnv("ULTRADNS_INTEGRATION")
if !ok { if !ok {
log.Printf("Skipping test") log.Printf("Skipping test")
} else { } else {
provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-uldsvdsvadvvdsvadvstradns-provider-test.com"}), true) provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-uldsvdsvadvvdsvadvstradns-provider-test.com"}), true)
_, err := provider.Zones(context.Background()) _, err := provider.Zones(context.Background())
@ -772,5 +753,4 @@ func TestUltraDNSProvider_DomainFilterZonesMocked(t *testing.T) {
zones, err = provider.Zones(context.Background()) zones, err = provider.Zones(context.Background())
assert.Nil(t, err) assert.Nil(t, err)
assert.Equal(t, reflect.DeepEqual(expected, zones), true) assert.Equal(t, reflect.DeepEqual(expected, zones), true)
} }

View File

@ -231,7 +231,7 @@ func newVinylDNSChanges(action string, endpoints []*endpoint.Endpoint) []*vinyld
} }
func newVinylDNSChange(action string, endpoint *endpoint.Endpoint) *vinyldnsChange { func newVinylDNSChange(action string, endpoint *endpoint.Endpoint) *vinyldnsChange {
var ttl = vinyldnsRecordTTL ttl := vinyldnsRecordTTL
if endpoint.RecordTTL.IsConfigured() { if endpoint.RecordTTL.IsConfigured() {
ttl = int(endpoint.RecordTTL) ttl = int(endpoint.RecordTTL)
} }

View File

@ -37,9 +37,11 @@ type mockVinyldnsZoneInterface struct {
var mockVinylDNSProvider vinyldnsProvider var mockVinylDNSProvider vinyldnsProvider
var vinylDNSZones []vinyldns.Zone var (
var vinylDNSRecords []vinyldns.RecordSet vinylDNSZones []vinyldns.Zone
var vinylDNSRecordSetUpdateResponse *vinyldns.RecordSetUpdateResponse vinylDNSRecords []vinyldns.RecordSet
vinylDNSRecordSetUpdateResponse *vinyldns.RecordSetUpdateResponse
)
func TestVinylDNSServices(t *testing.T) { func TestVinylDNSServices(t *testing.T) {
firstZone := vinyldns.Zone{ firstZone := vinyldns.Zone{

View File

@ -72,7 +72,6 @@ func (m mockVultrDomain) GetDNSSec(ctx context.Context, domain string) ([]string
return nil, nil return nil, nil
} }
type mockVultrRecord struct { type mockVultrRecord struct {
client *govultr.Client client *govultr.Client
} }

View File

@ -343,6 +343,7 @@ func (pr affixNameMapper) dropAffixTemplate(name string) string {
func (pr affixNameMapper) isPrefix() bool { func (pr affixNameMapper) isPrefix() bool {
return len(pr.suffix) == 0 return len(pr.suffix) == 0
} }
func (pr affixNameMapper) isSuffix() bool { func (pr affixNameMapper) isSuffix() bool {
return len(pr.prefix) == 0 && len(pr.suffix) > 0 return len(pr.prefix) == 0 && len(pr.suffix) > 0
} }
@ -395,6 +396,7 @@ func (pr affixNameMapper) normalizeAffixTemplate(afix, recordType string) string
} }
return afix return afix
} }
func (pr affixNameMapper) toNewTXTName(endpointDNSName, recordType string) string { func (pr affixNameMapper) toNewTXTName(endpointDNSName, recordType string) string {
DNSName := strings.SplitN(endpointDNSName, ".", 2) DNSName := strings.SplitN(endpointDNSName, ".", 2)
recordType = strings.ToLower(recordType) recordType = strings.ToLower(recordType)

View File

@ -536,6 +536,7 @@ func testTXTRegistryApplyChangesWithTemplatedPrefix(t *testing.T) {
err := r.ApplyChanges(ctx, changes) err := r.ApplyChanges(ctx, changes)
require.NoError(t, err) require.NoError(t, err)
} }
func testTXTRegistryApplyChangesWithTemplatedSuffix(t *testing.T) { func testTXTRegistryApplyChangesWithTemplatedSuffix(t *testing.T) {
p := inmemory.NewInMemoryProvider() p := inmemory.NewInMemoryProvider()
p.CreateZone(testZone) p.CreateZone(testZone)
@ -579,6 +580,7 @@ func testTXTRegistryApplyChangesWithTemplatedSuffix(t *testing.T) {
err := r.ApplyChanges(ctx, changes) err := r.ApplyChanges(ctx, changes)
require.NoError(t, err) require.NoError(t, err)
} }
func testTXTRegistryApplyChangesWithSuffix(t *testing.T) { func testTXTRegistryApplyChangesWithSuffix(t *testing.T) {
p := inmemory.NewInMemoryProvider() p := inmemory.NewInMemoryProvider()
p.CreateZone(testZone) p.CreateZone(testZone)

View File

@ -66,7 +66,8 @@ func NewAmbassadorHostSource(
ctx context.Context, ctx context.Context,
dynamicKubeClient dynamic.Interface, dynamicKubeClient dynamic.Interface,
kubeClient kubernetes.Interface, kubeClient kubernetes.Interface,
namespace string) (Source, error) { namespace string,
) (Source, error) {
var err error var err error
// Use shared informer to listen for add/update/delete of Host in the specified namespace. // Use shared informer to listen for add/update/delete of Host in the specified namespace.

View File

@ -80,7 +80,6 @@ func TestAmbassadorHostSource(t *testing.T) {
t.Fatalf("could not collect ambassador source endpoints: %v", err) t.Fatalf("could not collect ambassador source endpoints: %v", err)
} }
} }
} }
func createAmbassadorHost(name, ambassadorService string) (*unstructured.Unstructured, error) { func createAmbassadorHost(name, ambassadorService string) (*unstructured.Unstructured, error) {

View File

@ -33,7 +33,6 @@ type ConnectorSuite struct {
} }
func (suite *ConnectorSuite) SetupTest() { func (suite *ConnectorSuite) SetupTest() {
} }
func startServerToServeTargets(t *testing.T, endpoints []*endpoint.Endpoint) net.Listener { func startServerToServeTargets(t *testing.T, endpoints []*endpoint.Endpoint) net.Listener {
@ -91,7 +90,8 @@ func testConnectorSourceEndpoints(t *testing.T) {
title: "valid remote server", title: "valid remote server",
server: true, server: true,
expected: []*endpoint.Endpoint{ expected: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -103,12 +103,14 @@ func testConnectorSourceEndpoints(t *testing.T) {
title: "valid remote server with multiple endpoints", title: "valid remote server with multiple endpoints",
server: true, server: true,
expected: []*endpoint.Endpoint{ expected: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
}, },
{DNSName: "xyz.example.org", {
DNSName: "xyz.example.org",
Targets: endpoint.Targets{"abc.example.org"}, Targets: endpoint.Targets{"abc.example.org"},
RecordType: endpoint.RecordTypeCNAME, RecordType: endpoint.RecordTypeCNAME,
RecordTTL: 180, RecordTTL: 180,

View File

@ -45,7 +45,6 @@ type CRDSuite struct {
} }
func (suite *CRDSuite) SetupTest() { func (suite *CRDSuite) SetupTest() {
} }
func defaultHeader() http.Header { func defaultHeader() http.Header {
@ -152,7 +151,8 @@ func testCRDSourceEndpoints(t *testing.T) {
registeredKind: "DNSEndpoint", registeredKind: "DNSEndpoint",
kind: "DNSEndpoint", kind: "DNSEndpoint",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -168,7 +168,8 @@ func testCRDSourceEndpoints(t *testing.T) {
registeredKind: "DNSEndpoint", registeredKind: "DNSEndpoint",
kind: "JustEndpoint", kind: "JustEndpoint",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -186,7 +187,8 @@ func testCRDSourceEndpoints(t *testing.T) {
namespace: "foo", namespace: "foo",
registeredNamespace: "foo", registeredNamespace: "foo",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -204,7 +206,8 @@ func testCRDSourceEndpoints(t *testing.T) {
namespace: "foo", namespace: "foo",
registeredNamespace: "bar", registeredNamespace: "bar",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -222,7 +225,8 @@ func testCRDSourceEndpoints(t *testing.T) {
namespace: "foo", namespace: "foo",
registeredNamespace: "foo", registeredNamespace: "foo",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{}, Targets: endpoint.Targets{},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -240,7 +244,8 @@ func testCRDSourceEndpoints(t *testing.T) {
namespace: "foo", namespace: "foo",
registeredNamespace: "foo", registeredNamespace: "foo",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -258,12 +263,14 @@ func testCRDSourceEndpoints(t *testing.T) {
namespace: "foo", namespace: "foo",
registeredNamespace: "foo", registeredNamespace: "foo",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
}, },
{DNSName: "xyz.example.org", {
DNSName: "xyz.example.org",
Targets: endpoint.Targets{"abc.example.org"}, Targets: endpoint.Targets{"abc.example.org"},
RecordType: endpoint.RecordTypeCNAME, RecordType: endpoint.RecordTypeCNAME,
RecordTTL: 180, RecordTTL: 180,
@ -283,7 +290,8 @@ func testCRDSourceEndpoints(t *testing.T) {
annotations: map[string]string{"test": "that"}, annotations: map[string]string{"test": "that"},
annotationFilter: "test=filter_something_else", annotationFilter: "test=filter_something_else",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -303,7 +311,8 @@ func testCRDSourceEndpoints(t *testing.T) {
annotations: map[string]string{"test": "that"}, annotations: map[string]string{"test": "that"},
annotationFilter: "test=that", annotationFilter: "test=that",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -323,7 +332,8 @@ func testCRDSourceEndpoints(t *testing.T) {
labels: map[string]string{"test": "that"}, labels: map[string]string{"test": "that"},
labelFilter: "test=filter_something_else", labelFilter: "test=filter_something_else",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -343,7 +353,8 @@ func testCRDSourceEndpoints(t *testing.T) {
labels: map[string]string{"test": "that"}, labels: map[string]string{"test": "that"},
labelFilter: "test=that", labelFilter: "test=that",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"1.2.3.4"}, Targets: endpoint.Targets{"1.2.3.4"},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
RecordTTL: 180, RecordTTL: 180,
@ -363,7 +374,8 @@ func testCRDSourceEndpoints(t *testing.T) {
labels: map[string]string{"test": "that"}, labels: map[string]string{"test": "that"},
labelFilter: "test=that", labelFilter: "test=that",
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
{DNSName: "abc.example.org", {
DNSName: "abc.example.org",
Targets: endpoint.Targets{"ns1.k8s.io", "ns2.k8s.io"}, Targets: endpoint.Targets{"ns1.k8s.io", "ns2.k8s.io"},
RecordType: endpoint.RecordTypeNS, RecordType: endpoint.RecordTypeNS,
RecordTTL: 180, RecordTTL: 180,

View File

@ -446,7 +446,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) {
Status: httpRouteStatus(gatewayParentRef("default", "test")), Status: httpRouteStatus(gatewayParentRef("default", "test")),
}}, }},
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, newTestEndpoint("foo.example.internal", "A", "1.2.3.4"),
},
}, },
{ {
title: "WildcardInRoute", title: "WildcardInRoute",
@ -472,7 +473,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) {
Status: httpRouteStatus(gatewayParentRef("default", "test")), Status: httpRouteStatus(gatewayParentRef("default", "test")),
}}, }},
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, newTestEndpoint("foo.example.internal", "A", "1.2.3.4"),
},
}, },
{ {
title: "WildcardInRouteAndGateway", title: "WildcardInRouteAndGateway",
@ -498,7 +500,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) {
Status: httpRouteStatus(gatewayParentRef("default", "test")), Status: httpRouteStatus(gatewayParentRef("default", "test")),
}}, }},
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
newTestEndpoint("*.example.internal", "A", "1.2.3.4")}, newTestEndpoint("*.example.internal", "A", "1.2.3.4"),
},
}, },
{ {
title: "NoRouteHostname", title: "NoRouteHostname",
@ -522,7 +525,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) {
Status: httpRouteStatus(gatewayParentRef("default", "test")), Status: httpRouteStatus(gatewayParentRef("default", "test")),
}}, }},
endpoints: []*endpoint.Endpoint{ endpoints: []*endpoint.Endpoint{
newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, newTestEndpoint("foo.example.internal", "A", "1.2.3.4"),
},
}, },
{ {
title: "NoGateways", title: "NoGateways",

View File

@ -94,13 +94,13 @@ var internalProxySvc = corev1.Service{
Status: corev1.ServiceStatus{ Status: corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{ LoadBalancer: corev1.LoadBalancerStatus{
Ingress: []corev1.LoadBalancerIngress{ Ingress: []corev1.LoadBalancerIngress{
corev1.LoadBalancerIngress{ {
IP: "203.0.113.1", IP: "203.0.113.1",
}, },
corev1.LoadBalancerIngress{ {
IP: "203.0.113.2", IP: "203.0.113.2",
}, },
corev1.LoadBalancerIngress{ {
IP: "203.0.113.3", IP: "203.0.113.3",
}, },
}, },
@ -181,13 +181,13 @@ var externalProxySvc = corev1.Service{
Status: corev1.ServiceStatus{ Status: corev1.ServiceStatus{
LoadBalancer: corev1.LoadBalancerStatus{ LoadBalancer: corev1.LoadBalancerStatus{
Ingress: []corev1.LoadBalancerIngress{ Ingress: []corev1.LoadBalancerIngress{
corev1.LoadBalancerIngress{ {
Hostname: "a.example.org", Hostname: "a.example.org",
}, },
corev1.LoadBalancerIngress{ {
Hostname: "b.example.org", Hostname: "b.example.org",
}, },
corev1.LoadBalancerIngress{ {
Hostname: "c.example.org", Hostname: "c.example.org",
}, },
}, },
@ -270,7 +270,7 @@ func TestGlooSource(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, endpoints, 5) assert.Len(t, endpoints, 5)
assert.ElementsMatch(t, endpoints, []*endpoint.Endpoint{ assert.ElementsMatch(t, endpoints, []*endpoint.Endpoint{
&endpoint.Endpoint{ {
DNSName: "a.test", DNSName: "a.test",
Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
@ -278,7 +278,7 @@ func TestGlooSource(t *testing.T) {
Labels: endpoint.Labels{}, Labels: endpoint.Labels{},
ProviderSpecific: endpoint.ProviderSpecific{}, ProviderSpecific: endpoint.ProviderSpecific{},
}, },
&endpoint.Endpoint{ {
DNSName: "b.test", DNSName: "b.test",
Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
@ -286,7 +286,7 @@ func TestGlooSource(t *testing.T) {
Labels: endpoint.Labels{}, Labels: endpoint.Labels{},
ProviderSpecific: endpoint.ProviderSpecific{}, ProviderSpecific: endpoint.ProviderSpecific{},
}, },
&endpoint.Endpoint{ {
DNSName: "c.test", DNSName: "c.test",
Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP},
RecordType: endpoint.RecordTypeA, RecordType: endpoint.RecordTypeA,
@ -300,7 +300,7 @@ func TestGlooSource(t *testing.T) {
}, },
}, },
}, },
&endpoint.Endpoint{ {
DNSName: "d.test", DNSName: "d.test",
Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname}, Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname},
RecordType: endpoint.RecordTypeCNAME, RecordType: endpoint.RecordTypeCNAME,
@ -308,7 +308,7 @@ func TestGlooSource(t *testing.T) {
Labels: endpoint.Labels{}, Labels: endpoint.Labels{},
ProviderSpecific: endpoint.ProviderSpecific{}, ProviderSpecific: endpoint.ProviderSpecific{},
}, },
&endpoint.Endpoint{ {
DNSName: "e.test", DNSName: "e.test",
Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname}, Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname},
RecordType: endpoint.RecordTypeCNAME, RecordType: endpoint.RecordTypeCNAME,

View File

@ -259,7 +259,6 @@ func newKongUnstructuredConverter() (*unstructuredConverter, error) {
// When trying to import them from the Kong repo as a dependency it required upgrading the k8s.io/client-go and k8s.io/apimachinery which seemed // When trying to import them from the Kong repo as a dependency it required upgrading the k8s.io/client-go and k8s.io/apimachinery which seemed
// cause several changes in how the mock clients were working that resulted in a bunch of failures in other tests // cause several changes in how the mock clients were working that resulted in a bunch of failures in other tests
// If that is dealt with at some point the below can be removed and replaced with an actual import // If that is dealt with at some point the below can be removed and replaced with an actual import
type TCPIngress struct { type TCPIngress struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"` metav1.ObjectMeta `json:"metadata,omitempty"`

View File

@ -490,7 +490,6 @@ func testOcpRouteSourceEndpoints(t *testing.T) {
title: "route without matching labels", title: "route without matching labels",
labelFilter: "app=web-external", labelFilter: "app=web-external",
ocpRoute: &routev1.Route{ ocpRoute: &routev1.Route{
Spec: routev1.RouteSpec{ Spec: routev1.RouteSpec{
Host: "my-annotation-domain.com", Host: "my-annotation-domain.com",
}, },

View File

@ -74,7 +74,6 @@ func NewPodSource(ctx context.Context, kubeClient kubernetes.Interface, namespac
} }
func (*podSource) AddEventHandler(ctx context.Context, handler func()) { func (*podSource) AddEventHandler(ctx context.Context, handler func()) {
} }
func (ps *podSource) Endpoints(ctx context.Context) ([]*endpoint.Endpoint, error) { func (ps *podSource) Endpoints(ctx context.Context) ([]*endpoint.Endpoint, error) {

View File

@ -686,7 +686,8 @@ func testServiceSourceEndpoints(t *testing.T) {
{DNSName: "internal.foo.example.org", Targets: endpoint.Targets{"1.2.3.4"}}, {DNSName: "internal.foo.example.org", Targets: endpoint.Targets{"1.2.3.4"}},
{DNSName: "internal.foo.example.org", Targets: endpoint.Targets{"lb.example.com"}}, {DNSName: "internal.foo.example.org", Targets: endpoint.Targets{"lb.example.com"}},
}, },
}, { },
{
title: "load balancer services annotated with DNS Controller annotations return an endpoint with both annotations in compatibility mode", title: "load balancer services annotated with DNS Controller annotations return an endpoint with both annotations in compatibility mode",
svcNamespace: "testing", svcNamespace: "testing",
svcName: "foo", svcName: "foo",

View File

@ -215,14 +215,14 @@ func TestEndpointsFromRouteGroups(t *testing.T) {
Targets: endpoint.Targets([]string{"lb.example.org"}), Targets: endpoint.Targets([]string{"lb.example.org"}),
}, },
}, },
}} { },
} {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
got := tt.source.endpointsFromRouteGroup(tt.rg) got := tt.source.endpointsFromRouteGroup(tt.rg)
validateEndpoints(t, got, tt.want) validateEndpoints(t, got, tt.want)
}) })
} }
} }
type fakeRouteGroupClient struct { type fakeRouteGroupClient struct {
@ -709,7 +709,8 @@ func TestRouteGroupsEndpoints(t *testing.T) {
Targets: endpoint.Targets([]string{"lb.example.org"}), Targets: endpoint.Targets([]string{"lb.example.org"}),
}, },
}, },
}} { },
} {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
if tt.fqdnTemplate != "" { if tt.fqdnTemplate != "" {
tmpl, err := parseTemplate(tt.fqdnTemplate) tmpl, err := parseTemplate(tt.fqdnTemplate)