From f6392be41eca45126dafb28c3e08d3339ea65c44 Mon Sep 17 00:00:00 2001 From: Andy Bursavich Date: Tue, 20 Sep 2022 15:49:18 -0700 Subject: [PATCH] gofumpt --- docs/scripts/docs.go | 2 +- endpoint/labels.go | 6 +- endpoint/labels_test.go | 4 +- endpoint/zz_generated.deepcopy.go | 1 + main.go | 2 +- pkg/apis/externaldns/types.go | 6 +- .../externaldns/validation/validation_test.go | 4 +- plan/conflict_test.go | 4 +- plan/plan.go | 6 +- plan/plan_test.go | 13 +- provider/akamai/akamai.go | 7 +- provider/akamai/akamai_test.go | 28 +--- provider/alibabacloud/alibaba_cloud.go | 7 +- provider/alibabacloud/alibaba_cloud_test.go | 4 +- provider/aws/aws.go | 129 +++++++++--------- provider/aws/aws_test.go | 4 +- provider/awssd/aws_sd.go | 8 +- provider/awssd/aws_sd_test.go | 2 - provider/azure/azure_privatedns_test.go | 10 +- provider/azure/azure_test.go | 13 +- provider/azure/config.go | 1 - provider/azure/config_test.go | 3 +- provider/bluecat/bluecat_test.go | 15 +- provider/bluecat/gateway/api.go | 1 - provider/cloudflare/cloudflare.go | 4 +- provider/cloudflare/cloudflare_test.go | 15 +- provider/coredns/coredns.go | 2 +- provider/designate/designate_test.go | 1 - provider/digitalocean/digital_ocean_test.go | 4 + provider/dnsimple/dnsimple_test.go | 8 +- provider/dyn/dyn.go | 24 ++-- provider/exoscale/exoscale_test.go | 15 +- provider/gandi/gandi_test.go | 21 ++- provider/godaddy/client.go | 2 +- provider/godaddy/godaddy.go | 13 +- provider/google/google_test.go | 1 - provider/infoblox/infoblox.go | 1 - provider/infoblox/infoblox_test.go | 3 - provider/inmemory/inmemory_test.go | 8 +- provider/linode/linode.go | 5 - provider/linode/linode_test.go | 3 + provider/ns1/ns1.go | 2 +- provider/oci/oci_test.go | 9 +- provider/pdns/pdns.go | 2 +- provider/pdns/pdns_test.go | 19 +-- provider/plural/plural.go | 1 + provider/plural/plural_test.go | 4 - provider/provider.go | 3 +- provider/rcode0/rcode0.go | 6 - provider/rcode0/rcode0_test.go | 32 +---- provider/rdns/rdns_test.go | 1 - provider/recordfilter_test.go | 2 +- provider/rfc2136/rfc2136.go | 22 ++- provider/rfc2136/rfc2136_test.go | 3 - provider/scaleway/scaleway.go | 4 +- provider/tencentcloud/cloudapi/tencentapi.go | 2 +- provider/tencentcloud/tencent_cloud_test.go | 7 +- provider/ultradns/ultradns.go | 14 +- provider/ultradns/ultradns_test.go | 62 +++------ provider/vinyldns/vinyldns.go | 4 +- provider/vinyldns/vinyldns_test.go | 8 +- provider/vultr/vultr_test.go | 1 - provider/zone_type_filter_test.go | 12 +- registry/noop_test.go | 2 +- registry/registry.go | 2 +- registry/txt.go | 10 +- registry/txt_test.go | 2 + source/ambassador_host.go | 3 +- source/ambassador_host_test.go | 1 - source/connector_test.go | 10 +- source/crd_test.go | 40 ++++-- source/gateway_httproute_test.go | 12 +- source/gloo_proxy_test.go | 22 +-- source/kong_tcpingress.go | 9 +- source/openshift_route_test.go | 1 - source/pod.go | 1 - source/service_test.go | 3 +- source/skipper_routegroup_test.go | 7 +- 78 files changed, 330 insertions(+), 425 deletions(-) diff --git a/docs/scripts/docs.go b/docs/scripts/docs.go index 2a79b6f01..3482ee156 100644 --- a/docs/scripts/docs.go +++ b/docs/scripts/docs.go @@ -31,7 +31,7 @@ func removeLinkPrefixInIndex() { updatedContent := strings.ReplaceAll(string(content), "](./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 { log.Fatalf("Could not open index.md file to update content. Original error: %s", err) } diff --git a/endpoint/labels.go b/endpoint/labels.go index 26743ea3f..544eb3e7a 100644 --- a/endpoint/labels.go +++ b/endpoint/labels.go @@ -23,10 +23,8 @@ import ( "strings" ) -var ( - // ErrInvalidHeritage is returned when heritage was not found, or different heritage is found - ErrInvalidHeritage = errors.New("heritage is unknown or not found") -) +// ErrInvalidHeritage is returned when heritage was not found, or different heritage is found +var ErrInvalidHeritage = errors.New("heritage is unknown or not found") const ( heritage = "external-dns" diff --git a/endpoint/labels_test.go b/endpoint/labels_test.go index 05d57758e..9386a23e6 100644 --- a/endpoint/labels_test.go +++ b/endpoint/labels_test.go @@ -32,7 +32,7 @@ type LabelsSuite struct { barTextAsMap Labels noHeritageText string wrongHeritageText string - multipleHeritageText string //considered invalid + multipleHeritageText string // considered invalid } func (suite *LabelsSuite) SetupTest() { @@ -48,7 +48,7 @@ func (suite *LabelsSuite) SetupTest() { "resource": "bar-resource", "new-key": "bar-new-key", } - suite.barText = "heritage=external-dns,,external-dns/owner=bar-owner,external-dns/resource=bar-resource,external-dns/new-key=bar-new-key,random=stuff,no-equal-sign,," //also has some random gibberish + suite.barText = "heritage=external-dns,,external-dns/owner=bar-owner,external-dns/resource=bar-resource,external-dns/new-key=bar-new-key,random=stuff,no-equal-sign,," // also has some random gibberish suite.noHeritageText = "external-dns/owner=random-owner" suite.wrongHeritageText = "heritage=mate,external-dns/owner=random-owner" diff --git a/endpoint/zz_generated.deepcopy.go b/endpoint/zz_generated.deepcopy.go index fd75c7a3d..aaa69927d 100644 --- a/endpoint/zz_generated.deepcopy.go +++ b/endpoint/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/main.go b/main.go index 1d7b21625..8533807c2 100644 --- a/main.go +++ b/main.go @@ -341,7 +341,7 @@ func main() { p, err = safedns.NewSafeDNSProvider(domainFilter, cfg.DryRun) case "plural": p, err = plural.NewPluralProvider(cfg.PluralCluster, cfg.PluralProvider) - case "tencentcloud": + case "tencentcloud": p, err = tencentcloud.NewTencentCloudProvider(domainFilter, zoneIDFilter, cfg.TencentCloudConfigFile, cfg.TencentCloudZoneType, cfg.DryRun) default: log.Fatalf("unknown dns provider: %s", cfg.Provider) diff --git a/pkg/apis/externaldns/types.go b/pkg/apis/externaldns/types.go index 4b304f6bb..e55a490c6 100644 --- a/pkg/apis/externaldns/types.go +++ b/pkg/apis/externaldns/types.go @@ -37,10 +37,8 @@ const ( passwordMask = "******" ) -var ( - // Version is the current version of the app, generated at build time - Version = "unknown" -) +// Version is the current version of the app, generated at build time +var Version = "unknown" // Config is a project-wide configuration type Config struct { diff --git a/pkg/apis/externaldns/validation/validation_test.go b/pkg/apis/externaldns/validation/validation_test.go index 55f5e6354..8573aa6cf 100644 --- a/pkg/apis/externaldns/validation/validation_test.go +++ b/pkg/apis/externaldns/validation/validation_test.go @@ -168,7 +168,7 @@ func TestValidateGoodRfc2136Config(t *testing.T) { } func TestValidateBadRfc2136GssTsigConfig(t *testing.T) { - var invalidRfc2136GssTsigConfigs = []*externaldns.Config{ + invalidRfc2136GssTsigConfigs := []*externaldns.Config{ { LogFormat: "json", Sources: []string{"test-source"}, @@ -258,7 +258,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) { } func TestValidateGoodRfc2136GssTsigConfig(t *testing.T) { - var validRfc2136GssTsigConfigs = []*externaldns.Config{ + validRfc2136GssTsigConfigs := []*externaldns.Config{ { LogFormat: "json", Sources: []string{"test-source"}, diff --git a/plan/conflict_test.go b/plan/conflict_test.go index f40f7d4c3..491b42bff 100644 --- a/plan/conflict_test.go +++ b/plan/conflict_test.go @@ -84,7 +84,7 @@ func (suite *ResolverSuite) SetupTest() { endpoint.ResourceLabelKey: "ingress/default/bar-127", }, } - suite.bar127AAnother = &endpoint.Endpoint{ //TODO: remove this once we move to multiple targets under same endpoint + suite.bar127AAnother = &endpoint.Endpoint{ // TODO: remove this once we move to multiple targets under same endpoint DNSName: "bar", Targets: endpoint.Targets{"8.8.8.8"}, RecordType: "A", @@ -113,7 +113,7 @@ func (suite *ResolverSuite) TestStrictResolver() { suite.Equal(suite.fooA5, suite.perResource.ResolveCreate([]*endpoint.Endpoint{suite.fooA5, suite.fooV1Cname}), "should pick min one") suite.Equal(suite.fooV1Cname, suite.perResource.ResolveCreate([]*endpoint.Endpoint{suite.fooV2Cname, suite.fooV1Cname}), "should pick min one") - //test that perResource resolver preserves resource if it still exists + // test that perResource resolver preserves resource if it still exists suite.Equal(suite.bar127AAnother, suite.perResource.ResolveUpdate(suite.bar127A, []*endpoint.Endpoint{suite.bar127AAnother, suite.bar127A}), "should pick min for update when same resource endpoint occurs multiple times (remove after multiple-target support") // TODO:remove this test suite.Equal(suite.bar127A, suite.perResource.ResolveUpdate(suite.bar127A, []*endpoint.Endpoint{suite.bar192A, suite.bar127A}), "should pick existing resource") suite.Equal(suite.fooV2Cname, suite.perResource.ResolveUpdate(suite.fooV2Cname, []*endpoint.Endpoint{suite.fooV2Cname, suite.fooV2CnameDuplicate}), "should pick existing resource even if targets are same") diff --git a/plan/plan.go b/plan/plan.go index d16676452..d7bac7090 100644 --- a/plan/plan.go +++ b/plan/plan.go @@ -82,7 +82,7 @@ type planTable struct { resolver ConflictResolver } -func newPlanTable() planTable { //TODO: make resolver configurable +func newPlanTable() planTable { // TODO: make resolver configurable return planTable{map[string]map[string]*planTableRow{}, PerResource{}} } @@ -148,7 +148,7 @@ func (p *Plan) Calculate() *Plan { for _, topRow := range t.rows { for _, row := range topRow { - if row.current == nil { //dns name not taken + if row.current == nil { // dns name not taken changes.Create = append(changes.Create, t.resolver.ResolveCreate(row.candidates)) } if row.current != nil && len(row.candidates) == 0 { @@ -156,7 +156,7 @@ func (p *Plan) Calculate() *Plan { } // TODO: allows record type change, which might not be supported by all dns providers - if row.current != nil && len(row.candidates) > 0 { //dns name is taken + if row.current != nil && len(row.candidates) > 0 { // dns name is taken update := t.resolver.ResolveUpdate(row.current, row.candidates) // compare "update" to "current" to figure out if actual update is required if shouldUpdateTTL(update, row.current) || targetChanged(update, row.current) || p.shouldUpdateProviderSpecific(update, row.current) { diff --git a/plan/plan_test.go b/plan/plan_test.go index 42b0fb295..d34c93249 100644 --- a/plan/plan_test.go +++ b/plan/plan_test.go @@ -226,7 +226,7 @@ func (suite *PlanTestSuite) SetupTest() { func (suite *PlanTestSuite) TestSyncFirstRound() { current := []*endpoint.Endpoint{} desired := []*endpoint.Endpoint{suite.fooV1Cname, suite.fooV2Cname, suite.bar127A} - expectedCreate := []*endpoint.Endpoint{suite.fooV1Cname, suite.bar127A} //v1 is chosen because of resolver taking "min" + expectedCreate := []*endpoint.Endpoint{suite.fooV1Cname, suite.bar127A} // v1 is chosen because of resolver taking "min" expectedUpdateOld := []*endpoint.Endpoint{} expectedUpdateNew := []*endpoint.Endpoint{} expectedDelete := []*endpoint.Endpoint{} @@ -544,7 +544,7 @@ func (suite *PlanTestSuite) TestRemoveEndpointWithUpsert() { validateEntries(suite.T(), changes.Delete, expectedDelete) } -//TODO: remove once multiple-target per endpoint is supported +// TODO: remove once multiple-target per endpoint is supported func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceReplace() { current := []*endpoint.Endpoint{suite.fooV3CnameSameResource, suite.bar192A} desired := []*endpoint.Endpoint{suite.fooV1Cname, suite.fooV3CnameSameResource} @@ -567,9 +567,8 @@ func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceReplace() { validateEntries(suite.T(), changes.Delete, expectedDelete) } -//TODO: remove once multiple-target per endpoint is supported +// TODO: remove once multiple-target per endpoint is supported func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceRetain() { - current := []*endpoint.Endpoint{suite.fooV1Cname, suite.bar192A} desired := []*endpoint.Endpoint{suite.fooV1Cname, suite.fooV3CnameSameResource} expectedCreate := []*endpoint.Endpoint{} @@ -592,7 +591,6 @@ func (suite *PlanTestSuite) TestDuplicatedEndpointsForSameResourceRetain() { } func (suite *PlanTestSuite) TestMultipleRecordsSameNameDifferentSetIdentifier() { - current := []*endpoint.Endpoint{suite.multiple1} desired := []*endpoint.Endpoint{suite.multiple2, suite.multiple3} expectedCreate := []*endpoint.Endpoint{suite.multiple3} @@ -615,7 +613,6 @@ func (suite *PlanTestSuite) TestMultipleRecordsSameNameDifferentSetIdentifier() } func (suite *PlanTestSuite) TestSetIdentifierUpdateCreatesAndDeletes() { - current := []*endpoint.Endpoint{suite.multiple2} desired := []*endpoint.Endpoint{suite.multiple3} expectedCreate := []*endpoint.Endpoint{suite.multiple3} @@ -638,7 +635,6 @@ func (suite *PlanTestSuite) TestSetIdentifierUpdateCreatesAndDeletes() { } func (suite *PlanTestSuite) TestDomainFiltersInitial() { - current := []*endpoint.Endpoint{suite.domainFilterExcluded} desired := []*endpoint.Endpoint{suite.domainFilterExcluded, 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() { - current := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2} desired := []*endpoint.Endpoint{suite.domainFilterExcluded, suite.domainFilterFiltered1, suite.domainFilterFiltered2, suite.domainFilterFiltered3} expectedCreate := []*endpoint.Endpoint{suite.domainFilterFiltered3} @@ -686,7 +681,6 @@ func (suite *PlanTestSuite) TestDomainFiltersUpdate() { } func (suite *PlanTestSuite) TestMissing() { - missing := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2, suite.domainFilterExcludedTXT} expectedCreate := []*endpoint.Endpoint{suite.domainFilterFilteredTXT1, suite.domainFilterFilteredTXT2} @@ -893,7 +887,6 @@ func TestShouldUpdateProviderSpecific(tt *testing.T) { } b := plan.shouldUpdateProviderSpecific(test.desired, test.current) assert.Equal(t, test.shouldUpdate, b) - }) } } diff --git a/provider/akamai/akamai.go b/provider/akamai/akamai.go index 730cf15da..6547edce0 100644 --- a/provider/akamai/akamai.go +++ b/provider/akamai/akamai.go @@ -193,7 +193,6 @@ func (p AkamaiProvider) fetchZones() (akamaiZones, error) { queryArgs.ContractIds = strings.Join(p.zoneIDFilter.ZoneIDs, ",") } resp, err := p.client.ListZones(queryArgs) // retrieve all primary zones filtered by contract ids - if err != nil { log.Errorf("Failed to fetch zones from Akamai") return filteredZones, err @@ -215,7 +214,7 @@ func (p AkamaiProvider) fetchZones() (akamaiZones, error) { return filteredZones, nil } -//Records returns the list of records in a given zone. +// Records returns the list of records in a given zone. func (p AkamaiProvider) Records(context.Context) (endpoints []*endpoint.Endpoint, err error) { zones, err := p.fetchZones() // returns a filtered set of zones if err != nil { @@ -242,7 +241,7 @@ func (p AkamaiProvider) Records(context.Context) (endpoints []*endpoint.Endpoint continue } var temp interface{} = int64(recordset.TTL) - var ttl = endpoint.TTL(temp.(int64)) + ttl := endpoint.TTL(temp.(int64)) endpoints = append(endpoints, endpoint.NewEndpointWithTTL(recordset.Name, recordset.Type, ttl, @@ -359,7 +358,7 @@ func trimTxtRdata(rdata []string, rtype string) []string { func ttlAsInt(src endpoint.TTL) int { var temp interface{} = int64(src) - var temp64 = temp.(int64) + temp64 := temp.(int64) var ttl int = edgeDNSRecordTTL if temp64 > 0 && temp64 <= int64(maxInt) { ttl = int(temp64) diff --git a/provider/akamai/akamai_test.go b/provider/akamai/akamai_test.go index 0edc07872..0e602097d 100644 --- a/provider/akamai/akamai_test.go +++ b/provider/akamai/akamai_test.go @@ -19,9 +19,10 @@ package akamai import ( "context" "encoding/json" - log "github.com/sirupsen/logrus" "testing" + log "github.com/sirupsen/logrus" + dns "github.com/akamai/AkamaiOPEN-edgegrid-golang/configdns-v2" "github.com/stretchr/testify/assert" "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) { - akamaiConfig := AkamaiConfig{ DomainFilter: domfilter, ZoneIDFilter: idfilter, @@ -63,7 +63,6 @@ func createAkamaiStubProvider(stub *edgednsStub, domfilter endpoint.DomainFilter } func (r *edgednsStub) createStubDataEntry(objtype string) { - log.Debugf("Creating stub data entry") if _, exists := r.stubData[objtype]; !exists { r.stubData[objtype] = edgednsStubData{objType: objtype} @@ -73,7 +72,6 @@ func (r *edgednsStub) createStubDataEntry(objtype string) { } func (r *edgednsStub) setOutput(objtype string, output []interface{}) { - log.Debugf("Setting output to %v", output) r.createStubDataEntry(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{}) { - log.Debugf("Setting updaterecords to %v", records) r.createStubDataEntry(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{}) { - log.Debugf("Setting createrecords to %v", records) r.createStubDataEntry(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) { - log.Debugf("Entering ListZones") // Ignore Metadata` 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) { - log.Debugf("Entering GetRecordsets") // Ignore Metadata` 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 { - return nil } func (r *edgednsStub) GetRecord(zone string, name string, record_type string) (*dns.RecordBody, error) { - resp := &dns.RecordBody{} return resp, nil } func (r *edgednsStub) DeleteRecord(record *dns.RecordBody, zone string, recLock bool) error { - return nil } func (r *edgednsStub) UpdateRecord(record *dns.RecordBody, zone string, recLock bool) error { - return nil } // Test FetchZones func TestFetchZonesZoneIDFilter(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.NewZoneIDFilter([]string{"Test"}) @@ -176,7 +165,6 @@ func TestFetchZonesZoneIDFilter(t *testing.T) { } func TestFetchZonesEmpty(t *testing.T) { - stub := newStub() domfilter := endpoint.NewDomainFilter([]string{"Nonexistent"}) idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"}) @@ -193,7 +181,6 @@ func TestFetchZonesEmpty(t *testing.T) { // TestAkamaiRecords tests record endpoint func TestAkamaiRecords(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.ZoneIDFilter{} @@ -229,7 +216,6 @@ func TestAkamaiRecords(t *testing.T) { } func TestAkamaiRecordsEmpty(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.NewZoneIDFilter([]string{"Nonexistent"}) @@ -244,7 +230,6 @@ func TestAkamaiRecordsEmpty(t *testing.T) { } func TestAkamaiRecordsFilters(t *testing.T) { - stub := newStub() domfilter := endpoint.NewDomainFilter([]string{"www.exclude.me"}) idfilter := provider.ZoneIDFilter{} @@ -275,7 +260,6 @@ func TestAkamaiRecordsFilters(t *testing.T) { // TestCreateRecords tests create function // (p AkamaiProvider) createRecordsets(zoneNameIDMapper provider.ZoneIDName, endpoints []*endpoint.Endpoint) error func TestCreateRecords(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.ZoneIDFilter{} @@ -292,7 +276,6 @@ func TestCreateRecords(t *testing.T) { } func TestCreateRecordsDomainFilter(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.ZoneIDFilter{} @@ -311,7 +294,6 @@ func TestCreateRecordsDomainFilter(t *testing.T) { // TestDeleteRecords validate delete func TestDeleteRecords(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.ZoneIDFilter{} @@ -327,9 +309,7 @@ func TestDeleteRecords(t *testing.T) { assert.Nil(t, err) } -// func TestDeleteRecordsDomainFilter(t *testing.T) { - stub := newStub() domfilter := endpoint.NewDomainFilter([]string{"example.com"}) idfilter := provider.ZoneIDFilter{} @@ -348,7 +328,6 @@ func TestDeleteRecordsDomainFilter(t *testing.T) { // Test record update func func TestUpdateRecords(t *testing.T) { - stub := newStub() domfilter := endpoint.DomainFilter{} idfilter := provider.ZoneIDFilter{} @@ -364,9 +343,7 @@ func TestUpdateRecords(t *testing.T) { assert.Nil(t, err) } -// func TestUpdateRecordsDomainFilter(t *testing.T) { - stub := newStub() domfilter := endpoint.NewDomainFilter([]string{"example.com"}) idfilter := provider.ZoneIDFilter{} @@ -384,7 +361,6 @@ func TestUpdateRecordsDomainFilter(t *testing.T) { } func TestAkamaiApplyChanges(t *testing.T) { - stub := newStub() domfilter := endpoint.NewDomainFilter([]string{"example.com"}) idfilter := provider.ZoneIDFilter{} diff --git a/provider/alibabacloud/alibaba_cloud.go b/provider/alibabacloud/alibaba_cloud.go index 54b3fd7b4..d64c94779 100644 --- a/provider/alibabacloud/alibaba_cloud.go +++ b/provider/alibabacloud/alibaba_cloud.go @@ -433,7 +433,6 @@ func (p *AlibabaCloudProvider) getDomainRecords(domainName string) ([]alidns.Rec request.PageNumber = "1" for { response, err := p.getDNSClient().DescribeDomainRecords(request) - if err != nil { log.Errorf("Failed to describe domain records for Alibaba Cloud DNS: %v", err) return nil, err @@ -449,7 +448,7 @@ func (p *AlibabaCloudProvider) getDomainRecords(domainName string) ([]alidns.Rec if !provider.SupportedRecordType(recordType) { continue } - //TODO filter Locked record + // TODO filter Locked record results = append(results, record) } nextPage := getNextPageNumber(response.PageNumber, defaultAlibabaCloudPageSize, response.TotalCount) @@ -761,7 +760,6 @@ func (p *AlibabaCloudProvider) getPrivateZones() (map[string]*alibabaPrivateZone recordsCount := 0 zones, err := p.privateZones() - if err != nil { return nil, err } @@ -776,7 +774,6 @@ func (p *AlibabaCloudProvider) getPrivateZones() (map[string]*alibabaPrivateZone for { response, err := p.getPvtzClient().DescribeZoneRecords(request) - if err != nil { log.Errorf("Failed to describe zone record '%s' in Alibaba Cloud DNS: %v", zone.ZoneId, err) return nil, err @@ -789,7 +786,7 @@ func (p *AlibabaCloudProvider) getPrivateZones() (map[string]*alibabaPrivateZone continue } - //TODO filter Locked + // TODO filter Locked records = append(records, record) } nextPage := getNextPageNumber(int64(response.PageNumber), defaultAlibabaCloudPageSize, int64(response.TotalItems)) diff --git a/provider/alibabacloud/alibaba_cloud_test.go b/provider/alibabacloud/alibaba_cloud_test.go index 6e78b6b1a..2e0fc8652 100644 --- a/provider/alibabacloud/alibaba_cloud_test.go +++ b/provider/alibabacloud/alibaba_cloud_test.go @@ -435,7 +435,6 @@ func TestAlibabaCloudProvider_splitDNSName(t *testing.T) { } func TestAlibabaCloudProvider_TXTEndpoint(t *testing.T) { - p := newTestAlibabaCloudProvider(false) const recordValue = "heritage=external-dns,external-dns/owner=default" const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\"" @@ -448,9 +447,8 @@ func TestAlibabaCloudProvider_TXTEndpoint(t *testing.T) { } } -//TestAlibabaCloudProvider_TXTEndpoint_PrivateZone +// TestAlibabaCloudProvider_TXTEndpoint_PrivateZone func TestAlibabaCloudProvider_TXTEndpoint_PrivateZone(t *testing.T) { - p := newTestAlibabaCloudProvider(true) const recordValue = "heritage=external-dns,external-dns/owner=default" const endpointTarget = "\"heritage=external-dns,external-dns/owner=default\"" diff --git a/provider/aws/aws.go b/provider/aws/aws.go index e15ee1f8b..448c8d80b 100644 --- a/provider/aws/aws.go +++ b/provider/aws/aws.go @@ -63,68 +63,66 @@ const ( sameZoneAlias = "same-zone" ) -var ( - // see: https://docs.aws.amazon.com/general/latest/gr/elb.html - canonicalHostedZones = map[string]string{ - // Application Load Balancers and Classic Load Balancers - "us-east-2.elb.amazonaws.com": "Z3AADJGX6KTTL2", - "us-east-1.elb.amazonaws.com": "Z35SXDOTRQ7X7K", - "us-west-1.elb.amazonaws.com": "Z368ELLRRE2KJ0", - "us-west-2.elb.amazonaws.com": "Z1H1FL5HABSF5", - "ca-central-1.elb.amazonaws.com": "ZQSVJUPU6J1EY", - "ap-east-1.elb.amazonaws.com": "Z3DQVH9N71FHZ0", - "ap-south-1.elb.amazonaws.com": "ZP97RAFLXTNZK", - "ap-northeast-2.elb.amazonaws.com": "ZWKZPGTI48KDX", - "ap-northeast-3.elb.amazonaws.com": "Z5LXEXXYW11ES", - "ap-southeast-1.elb.amazonaws.com": "Z1LMS91P8CMLE5", - "ap-southeast-2.elb.amazonaws.com": "Z1GM3OXH4ZPM65", - "ap-southeast-3.elb.amazonaws.com": "Z08888821HLRG5A9ZRTER", - "ap-northeast-1.elb.amazonaws.com": "Z14GRHDCWA56QT", - "eu-central-1.elb.amazonaws.com": "Z215JYRZR1TBD5", - "eu-west-1.elb.amazonaws.com": "Z32O12XQLNTSW2", - "eu-west-2.elb.amazonaws.com": "ZHURV8PSTC4K8", - "eu-west-3.elb.amazonaws.com": "Z3Q77PNBQS71R4", - "eu-north-1.elb.amazonaws.com": "Z23TAZ6LKFMNIO", - "eu-south-1.elb.amazonaws.com": "Z3ULH7SSC9OV64", - "sa-east-1.elb.amazonaws.com": "Z2P70J7HTTTPLU", - "cn-north-1.elb.amazonaws.com.cn": "Z1GDH35T77C1KE", - "cn-northwest-1.elb.amazonaws.com.cn": "ZM7IZAIOVVDZF", - "us-gov-west-1.elb.amazonaws.com": "Z33AYJ8TM3BH4J", - "us-gov-east-1.elb.amazonaws.com": "Z166TLBEWOO7G0", - "me-south-1.elb.amazonaws.com": "ZS929ML54UICD", - "af-south-1.elb.amazonaws.com": "Z268VQBMOI5EKX", - // Network Load Balancers - "elb.us-east-2.amazonaws.com": "ZLMOA37VPKANP", - "elb.us-east-1.amazonaws.com": "Z26RNL4JYFTOTI", - "elb.us-west-1.amazonaws.com": "Z24FKFUX50B4VW", - "elb.us-west-2.amazonaws.com": "Z18D5FSROUN65G", - "elb.ca-central-1.amazonaws.com": "Z2EPGBW3API2WT", - "elb.ap-east-1.amazonaws.com": "Z12Y7K3UBGUAD1", - "elb.ap-south-1.amazonaws.com": "ZVDDRBQ08TROA", - "elb.ap-northeast-2.amazonaws.com": "ZIBE1TIR4HY56", - "elb.ap-southeast-1.amazonaws.com": "ZKVM4W9LS7TM", - "elb.ap-southeast-2.amazonaws.com": "ZCT6FZBF4DROD", - "elb.ap-southeast-3.amazonaws.com": "Z01971771FYVNCOVWJU1G", - "elb.ap-northeast-1.amazonaws.com": "Z31USIVHYNEOWT", - "elb.eu-central-1.amazonaws.com": "Z3F0SRJ5LGBH90", - "elb.eu-west-1.amazonaws.com": "Z2IFOLAFXWLO4F", - "elb.eu-west-2.amazonaws.com": "ZD4D7Y8KGAS4G", - "elb.eu-west-3.amazonaws.com": "Z1CMS0P5QUZ6D5", - "elb.eu-north-1.amazonaws.com": "Z1UDT6IFJ4EJM", - "elb.eu-south-1.amazonaws.com": "Z23146JA1KNAFP", - "elb.sa-east-1.amazonaws.com": "ZTK26PT1VY4CU", - "elb.cn-north-1.amazonaws.com.cn": "Z3QFB96KMJ7ED6", - "elb.cn-northwest-1.amazonaws.com.cn": "ZQEIKTCZ8352D", - "elb.us-gov-west-1.amazonaws.com": "ZMG1MZ2THAWF1", - "elb.us-gov-east-1.amazonaws.com": "Z1ZSMQQ6Q24QQ8", - "elb.me-south-1.amazonaws.com": "Z3QSRYVP46NYYV", - "elb.af-south-1.amazonaws.com": "Z203XCE67M25HM", - // Global Accelerator - "awsglobalaccelerator.com": "Z2BJ6XQ5FK7U4H", - // Cloudfront - "cloudfront.net": "Z2FDTNDATAQYW2", - } -) +// see: https://docs.aws.amazon.com/general/latest/gr/elb.html +var canonicalHostedZones = map[string]string{ + // Application Load Balancers and Classic Load Balancers + "us-east-2.elb.amazonaws.com": "Z3AADJGX6KTTL2", + "us-east-1.elb.amazonaws.com": "Z35SXDOTRQ7X7K", + "us-west-1.elb.amazonaws.com": "Z368ELLRRE2KJ0", + "us-west-2.elb.amazonaws.com": "Z1H1FL5HABSF5", + "ca-central-1.elb.amazonaws.com": "ZQSVJUPU6J1EY", + "ap-east-1.elb.amazonaws.com": "Z3DQVH9N71FHZ0", + "ap-south-1.elb.amazonaws.com": "ZP97RAFLXTNZK", + "ap-northeast-2.elb.amazonaws.com": "ZWKZPGTI48KDX", + "ap-northeast-3.elb.amazonaws.com": "Z5LXEXXYW11ES", + "ap-southeast-1.elb.amazonaws.com": "Z1LMS91P8CMLE5", + "ap-southeast-2.elb.amazonaws.com": "Z1GM3OXH4ZPM65", + "ap-southeast-3.elb.amazonaws.com": "Z08888821HLRG5A9ZRTER", + "ap-northeast-1.elb.amazonaws.com": "Z14GRHDCWA56QT", + "eu-central-1.elb.amazonaws.com": "Z215JYRZR1TBD5", + "eu-west-1.elb.amazonaws.com": "Z32O12XQLNTSW2", + "eu-west-2.elb.amazonaws.com": "ZHURV8PSTC4K8", + "eu-west-3.elb.amazonaws.com": "Z3Q77PNBQS71R4", + "eu-north-1.elb.amazonaws.com": "Z23TAZ6LKFMNIO", + "eu-south-1.elb.amazonaws.com": "Z3ULH7SSC9OV64", + "sa-east-1.elb.amazonaws.com": "Z2P70J7HTTTPLU", + "cn-north-1.elb.amazonaws.com.cn": "Z1GDH35T77C1KE", + "cn-northwest-1.elb.amazonaws.com.cn": "ZM7IZAIOVVDZF", + "us-gov-west-1.elb.amazonaws.com": "Z33AYJ8TM3BH4J", + "us-gov-east-1.elb.amazonaws.com": "Z166TLBEWOO7G0", + "me-south-1.elb.amazonaws.com": "ZS929ML54UICD", + "af-south-1.elb.amazonaws.com": "Z268VQBMOI5EKX", + // Network Load Balancers + "elb.us-east-2.amazonaws.com": "ZLMOA37VPKANP", + "elb.us-east-1.amazonaws.com": "Z26RNL4JYFTOTI", + "elb.us-west-1.amazonaws.com": "Z24FKFUX50B4VW", + "elb.us-west-2.amazonaws.com": "Z18D5FSROUN65G", + "elb.ca-central-1.amazonaws.com": "Z2EPGBW3API2WT", + "elb.ap-east-1.amazonaws.com": "Z12Y7K3UBGUAD1", + "elb.ap-south-1.amazonaws.com": "ZVDDRBQ08TROA", + "elb.ap-northeast-2.amazonaws.com": "ZIBE1TIR4HY56", + "elb.ap-southeast-1.amazonaws.com": "ZKVM4W9LS7TM", + "elb.ap-southeast-2.amazonaws.com": "ZCT6FZBF4DROD", + "elb.ap-southeast-3.amazonaws.com": "Z01971771FYVNCOVWJU1G", + "elb.ap-northeast-1.amazonaws.com": "Z31USIVHYNEOWT", + "elb.eu-central-1.amazonaws.com": "Z3F0SRJ5LGBH90", + "elb.eu-west-1.amazonaws.com": "Z2IFOLAFXWLO4F", + "elb.eu-west-2.amazonaws.com": "ZD4D7Y8KGAS4G", + "elb.eu-west-3.amazonaws.com": "Z1CMS0P5QUZ6D5", + "elb.eu-north-1.amazonaws.com": "Z1UDT6IFJ4EJM", + "elb.eu-south-1.amazonaws.com": "Z23146JA1KNAFP", + "elb.sa-east-1.amazonaws.com": "ZTK26PT1VY4CU", + "elb.cn-north-1.amazonaws.com.cn": "Z3QFB96KMJ7ED6", + "elb.cn-northwest-1.amazonaws.com.cn": "ZQEIKTCZ8352D", + "elb.us-gov-west-1.amazonaws.com": "ZMG1MZ2THAWF1", + "elb.us-gov-east-1.amazonaws.com": "Z1ZSMQQ6Q24QQ8", + "elb.me-south-1.amazonaws.com": "Z3QSRYVP46NYYV", + "elb.af-south-1.amazonaws.com": "Z203XCE67M25HM", + // Global Accelerator + "awsglobalaccelerator.com": "Z2BJ6XQ5FK7U4H", + // Cloudfront + "cloudfront.net": "Z2FDTNDATAQYW2", +} // 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 @@ -528,7 +526,7 @@ func (p *AWSProvider) submitChanges(ctx context.Context, changes []*route53.Chan if _, err := p.client.ChangeResourceRecordSetsWithContext(ctx, params); err != nil { log.Errorf("Failure in zone %s [Id: %s]", aws.StringValue(zones[z].Name), z) - log.Error(err) //TODO(ideahitme): consider changing the interface in cases when this error might be a concern for other components + log.Error(err) // TODO(ideahitme): consider changing the interface in cases when this error might be a concern for other components failedUpdate = true } else { // z is the R53 Hosted Zone ID already as aws.StringValue @@ -665,7 +663,7 @@ func (p *AWSProvider) newChange(action string, ep *endpoint.Endpoint) (*route53. change.ResourceRecordSet.MultiValueAnswer = aws.Bool(true) } - var geolocation = &route53.GeoLocation{} + geolocation := &route53.GeoLocation{} useGeolocation := false if prop, ok := ep.GetProviderSpecificProperty(providerSpecificGeolocationContinentCode); ok { geolocation.ContinentCode = aws.String(prop.Value) @@ -820,7 +818,8 @@ func changesByZone(zones map[string]*route53.HostedZone, changeSet []*route53.Ch } // 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 { var matchingZones []*route53.HostedZone var publicZone *route53.HostedZone diff --git a/provider/aws/aws_test.go b/provider/aws/aws_test.go index 590f35358..0a0e5a39a 100644 --- a/provider/aws/aws_test.go +++ b/provider/aws/aws_test.go @@ -62,7 +62,7 @@ type Route53APIStub struct { // MockMethod starts a description of an expectation of the specified method // being called. // -// Route53APIStub.MockMethod("MyMethod", arg1, arg2) +// Route53APIStub.MockMethod("MyMethod", arg1, arg2) func (r *Route53APIStub) MockMethod(method string, args ...interface{}) *mock.Call { return r.m.On(method, args...) } @@ -1241,7 +1241,6 @@ func setupAWSRecords(t *testing.T, provider *AWSProvider, endpoints []*endpoint. _, err = provider.Records(ctx) require.NoError(t, err) - } 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) } } + 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) } diff --git a/provider/awssd/aws_sd.go b/provider/awssd/aws_sd.go index a87a8411d..144a0e297 100644 --- a/provider/awssd/aws_sd.go +++ b/provider/awssd/aws_sd.go @@ -18,13 +18,11 @@ package awssd import ( "context" - "strings" - "crypto/sha256" "encoding/hex" "fmt" - "regexp" + "strings" "github.com/aws/aws-sdk-go/aws" "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), TTL: aws.Int64(ttl), }}, - }}}) + }, + }, + }) if err != nil { return err } diff --git a/provider/awssd/aws_sd_test.go b/provider/awssd/aws_sd_test.go index 982100379..ad73b07f9 100644 --- a/provider/awssd/aws_sd_test.go +++ b/provider/awssd/aws_sd_test.go @@ -50,7 +50,6 @@ type AWSSDClientStub struct { } func (s *AWSSDClientStub) CreateService(input *sd.CreateServiceInput) (*sd.CreateServiceOutput, error) { - srv := &sd.Service{ Id: aws.String(strconv.Itoa(rand.Intn(10000))), 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) { - srvInstances, ok := s.instances[*input.ServiceId] if !ok { srvInstances = make(map[string]*sd.Instance) diff --git a/provider/azure/azure_privatedns_test.go b/provider/azure/azure_privatedns_test.go index 7f232430e..f35720154 100644 --- a/provider/azure/azure_privatedns_test.go +++ b/provider/azure/azure_privatedns_test.go @@ -139,12 +139,15 @@ func privateOthersRecordSetPropertiesGetter(values []string, ttl int64) *private TTL: to.Int64Ptr(ttl), } } + func createPrivateMockRecordSet(name, recordType string, values ...string) privatedns.RecordSet { return createPrivateMockRecordSetMultiWithTTL(name, recordType, 0, values...) } + func createPrivateMockRecordSetWithTTL(name, recordType, value string, ttl int64) privatedns.RecordSet { return createPrivateMockRecordSetMultiWithTTL(name, recordType, ttl, value) } + func createPrivateMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) privatedns.RecordSet { 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), RecordSetProperties: getterFunc(values, ttl), } - } 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("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), }) - if err != nil { t.Fatal(err) } actual, err := provider.Records(context.Background()) - if err != nil { t.Fatal(err) } @@ -284,7 +284,6 @@ func TestAzurePrivateDNSRecord(t *testing.T) { } validateAzureEndpoints(t, actual, expected) - } 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("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), }) - if err != nil { t.Fatal(err) } actual, err := provider.Records(context.Background()) - if err != nil { t.Fatal(err) } @@ -320,7 +317,6 @@ func TestAzurePrivateDNSMultiRecord(t *testing.T) { } validateAzureEndpoints(t, actual, expected) - } func TestAzurePrivateDNSApplyChanges(t *testing.T) { diff --git a/provider/azure/azure_test.go b/provider/azure/azure_test.go index a45defd14..0598dd4f3 100644 --- a/provider/azure/azure_test.go +++ b/provider/azure/azure_test.go @@ -138,12 +138,15 @@ func othersRecordSetPropertiesGetter(values []string, ttl int64) *dns.RecordSetP TTL: to.Int64Ptr(ttl), } } + func createMockRecordSet(name, recordType string, values ...string) dns.RecordSet { return createMockRecordSetMultiWithTTL(name, recordType, 0, values...) } + func createMockRecordSetWithTTL(name, recordType, value string, ttl int64) dns.RecordSet { return createMockRecordSetMultiWithTTL(name, recordType, ttl, value) } + func createMockRecordSetMultiWithTTL(name, recordType string, ttl int64, values ...string) dns.RecordSet { 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), RecordSetProperties: getterFunc(values, ttl), } - } 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("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), }) - if err != nil { t.Fatal(err) } ctx := context.Background() actual, err := provider.Records(ctx) - if err != nil { t.Fatal(err) } @@ -290,7 +290,6 @@ func TestAzureRecord(t *testing.T) { } validateAzureEndpoints(t, actual, expected) - } 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("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), }) - if err != nil { t.Fatal(err) } ctx := context.Background() actual, err := provider.Records(ctx) - if err != nil { t.Fatal(err) } @@ -327,7 +324,6 @@ func TestAzureMultiRecord(t *testing.T) { } validateAzureEndpoints(t, actual, expected) - } 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("hack", endpoint.RecordTypeCNAME, "hack.azurewebsites.net", 10), }) - if err != nil { t.Fatal(err) } ctx := context.Background() actual, err := provider.Records(ctx) - if err != nil { t.Fatal(err) } @@ -479,7 +473,6 @@ func TestAzureNameFilter(t *testing.T) { } validateAzureEndpoints(t, actual, expected) - } func TestAzureApplyChangesZoneName(t *testing.T) { diff --git a/provider/azure/config.go b/provider/azure/config.go index 5b282af8b..67baed947 100644 --- a/provider/azure/config.go +++ b/provider/azure/config.go @@ -109,7 +109,6 @@ func getAccessToken(cfg config, environment azure.Environment) (*adal.ServicePri token, err := adal.NewServicePrincipalTokenFromManagedIdentity(environment.ServiceManagementEndpoint, &adal.ManagedIdentityOptions{ ClientID: cfg.UserAssignedIdentityID, }) - if err != nil { return nil, fmt.Errorf("failed to create the managed service identity token: %v", err) } diff --git a/provider/azure/config_test.go b/provider/azure/config_test.go index bf591b0fc..a2129113a 100644 --- a/provider/azure/config_test.go +++ b/provider/azure/config_test.go @@ -18,11 +18,12 @@ package azure import ( "fmt" - "github.com/Azure/go-autorest/autorest/azure" "io/ioutil" "os" "reflect" "testing" + + "github.com/Azure/go-autorest/autorest/azure" ) func TestGetAzureEnvironmentConfig(t *testing.T) { diff --git a/provider/bluecat/bluecat_test.go b/provider/bluecat/bluecat_test.go index a5cc8787b..ed7c0de04 100644 --- a/provider/bluecat/bluecat_test.go +++ b/provider/bluecat/bluecat_test.go @@ -48,14 +48,17 @@ type Changes struct { func (g mockGatewayClient) GetBluecatZones(zoneName string) ([]api.BluecatZone, error) { return *g.mockBluecatZones, nil } + func (g mockGatewayClient) GetHostRecords(zone string, records *[]api.BluecatHostRecord) error { *records = *g.mockBluecatHosts return nil } + func (g mockGatewayClient) GetCNAMERecords(zone string, records *[]api.BluecatCNAMERecord) error { *records = *g.mockBluecatCNAMEs return nil } + func (g mockGatewayClient) GetHostRecord(name string, record *api.BluecatHostRecord) error { for _, currentRecord := range *g.mockBluecatHosts { if currentRecord.Name == strings.Split(name, ".")[0] { @@ -65,6 +68,7 @@ func (g mockGatewayClient) GetHostRecord(name string, record *api.BluecatHostRec } return nil } + func (g mockGatewayClient) GetCNAMERecord(name string, record *api.BluecatCNAMERecord) error { for _, currentRecord := range *g.mockBluecatCNAMEs { if currentRecord.Name == strings.Split(name, ".")[0] { @@ -74,24 +78,30 @@ func (g mockGatewayClient) GetCNAMERecord(name string, record *api.BluecatCNAMER } return nil } + func (g mockGatewayClient) CreateHostRecord(zone string, req *api.BluecatCreateHostRecordRequest) (err error) { return nil } + func (g mockGatewayClient) CreateCNAMERecord(zone string, req *api.BluecatCreateCNAMERecordRequest) (err error) { return nil } + func (g mockGatewayClient) DeleteHostRecord(name string, zone string) (err error) { *g.mockBluecatHosts = nil return nil } + func (g mockGatewayClient) DeleteCNAMERecord(name string, zone string) (err error) { *g.mockBluecatCNAMEs = nil return nil } + func (g mockGatewayClient) GetTXTRecords(zone string, records *[]api.BluecatTXTRecord) error { *records = *g.mockBluecatTXTs return nil } + func (g mockGatewayClient) GetTXTRecord(name string, record *api.BluecatTXTRecord) error { for _, currentRecord := range *g.mockBluecatTXTs { if currentRecord.Name == name { @@ -101,13 +111,16 @@ func (g mockGatewayClient) GetTXTRecord(name string, record *api.BluecatTXTRecor } return nil } + func (g mockGatewayClient) CreateTXTRecord(zone string, req *api.BluecatCreateTXTRecordRequest) error { return nil } + func (g mockGatewayClient) DeleteTXTRecord(name string, zone string) error { *g.mockBluecatTXTs = nil return nil } + func (g mockGatewayClient) ServerFullDeploy() error { return nil } @@ -271,6 +284,7 @@ func TestBluecatApplyChangesCreate(t *testing.T) { validateEndpoints(t, actual, []*endpoint.Endpoint{}) } } + func TestBluecatApplyChangesDelete(t *testing.T) { client := mockGatewayClient{ mockBluecatZones: &[]api.BluecatZone{ @@ -354,7 +368,6 @@ func TestBluecatApplyChangesDeleteWithOwner(t *testing.T) { } validateEndpoints(t, actual, []*endpoint.Endpoint{}) } - } // TODO: ensure findZone method is tested diff --git a/provider/bluecat/gateway/api.go b/provider/bluecat/gateway/api.go index 2f4389540..8cd593462 100644 --- a/provider/bluecat/gateway/api.go +++ b/provider/bluecat/gateway/api.go @@ -176,7 +176,6 @@ func GetBluecatGatewayToken(cfg BluecatConfig) (string, http.Cookie, error) { url := cfg.GatewayHost + "/rest_login" response, err := executeHTTPRequest(cfg.SkipTLSVerify, http.MethodPost, url, "", bytes.NewBuffer(body), http.Cookie{}) - if err != nil { return "", http.Cookie{}, errors.Wrap(err, "error obtaining API token from bluecat gateway") } diff --git a/provider/cloudflare/cloudflare.go b/provider/cloudflare/cloudflare.go index 411139fe2..7fd5b2d42 100644 --- a/provider/cloudflare/cloudflare.go +++ b/provider/cloudflare/cloudflare.go @@ -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) { return z.service.DNSRecords(ctx, zoneID, rr) } + func (z zoneService) UpdateDNSRecord(ctx context.Context, zoneID, recordID string, rr cloudflare.DNSRecord) error { return z.service.UpdateDNSRecord(ctx, zoneID, recordID, rr) } + func (z zoneService) DeleteDNSRecord(ctx context.Context, zoneID, recordID string) error { return z.service.DeleteDNSRecord(ctx, zoneID, recordID) } @@ -145,7 +147,7 @@ func NewCloudFlareProvider(domainFilter endpoint.DomainFilter, zoneIDFilter prov return nil, fmt.Errorf("failed to initialize cloudflare provider: %v", err) } provider := &CloudFlareProvider{ - //Client: config, + // Client: config, Client: zoneService{config}, domainFilter: domainFilter, zoneIDFilter: zoneIDFilter, diff --git a/provider/cloudflare/cloudflare_test.go b/provider/cloudflare/cloudflare_test.go index 4a5ec3b07..4d676fabc 100644 --- a/provider/cloudflare/cloudflare_test.go +++ b/provider/cloudflare/cloudflare_test.go @@ -244,7 +244,6 @@ func AssertActions(t *testing.T, provider *CloudFlareProvider, endpoints []*endp ctx := context.Background() records, err := provider.Records(ctx) - if err != nil { t.Fatalf("cannot fetch records, %s", err) } @@ -309,7 +308,6 @@ func TestCloudflareA(t *testing.T) { }, []string{endpoint.RecordTypeA, endpoint.RecordTypeCNAME}, ) - } func TestCloudflareCname(t *testing.T) { @@ -501,7 +499,7 @@ func TestCloudflareProxiedOverrideIllegal(t *testing.T) { func TestCloudflareSetProxied(t *testing.T) { var proxied *bool = proxyEnabled var notProxied *bool = proxyDisabled - var testCases = []struct { + testCases := []struct { recordType string domain string proxiable *bool @@ -674,7 +672,6 @@ func TestCloudflareApplyChanges(t *testing.T) { Targets: endpoint.Targets{"target-new"}, }} err := provider.ApplyChanges(context.Background(), changes) - if err != nil { t.Errorf("should not fail, %s", err) } @@ -1111,7 +1108,6 @@ func TestCloudflareComplexUpdate(t *testing.T) { ctx := context.Background() records, err := provider.Records(ctx) - if err != nil { t.Errorf("should not fail, %s", err) } @@ -1146,7 +1142,7 @@ func TestCloudflareComplexUpdate(t *testing.T) { } td.CmpDeeply(t, client.Actions, []MockAction{ - MockAction{ + { Name: "Create", ZoneId: "001", RecordData: cloudflare.DNSRecord{ @@ -1157,7 +1153,7 @@ func TestCloudflareComplexUpdate(t *testing.T) { Proxied: proxyEnabled, }, }, - MockAction{ + { Name: "Update", ZoneId: "001", RecordId: "1234567890", @@ -1169,7 +1165,7 @@ func TestCloudflareComplexUpdate(t *testing.T) { Proxied: proxyEnabled, }, }, - MockAction{ + { Name: "Delete", ZoneId: "001", RecordId: "2345678901", @@ -1179,7 +1175,7 @@ func TestCloudflareComplexUpdate(t *testing.T) { func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) { client := NewMockCloudFlareClientWithRecords(map[string][]cloudflare.DNSRecord{ - "001": []cloudflare.DNSRecord{ + "001": { { ID: "1234567890", ZoneID: "001", @@ -1197,7 +1193,6 @@ func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) { } records, err := provider.Records(context.Background()) - if err != nil { t.Errorf("should not fail, %s", err) } diff --git a/provider/coredns/coredns.go b/provider/coredns/coredns.go index f4d16755c..520dc5450 100644 --- a/provider/coredns/coredns.go +++ b/provider/coredns/coredns.go @@ -232,7 +232,7 @@ func getETCDConfig() (*etcdcv3.Config, error) { } } -//newETCDClient is an etcd client constructor +// newETCDClient is an etcd client constructor func newETCDClient() (coreDNSClient, error) { cfg, err := getETCDConfig() if err != nil { diff --git a/provider/designate/designate_test.go b/provider/designate/designate_test.go index 290ee295d..0afc72fa6 100644 --- a/provider/designate/designate_test.go +++ b/provider/designate/designate_test.go @@ -329,7 +329,6 @@ func TestDesignateCreateRecords(t *testing.T) { } func testDesignateCreateRecords(t *testing.T, client *fakeDesignateClient) []*recordsets.RecordSet { - for i, zoneName := range []string{"example.com.", "test.net."} { client.AddZone(zones.Zone{ ID: fmt.Sprintf("zone-%d", i+1), diff --git a/provider/digitalocean/digital_ocean_test.go b/provider/digitalocean/digital_ocean_test.go index 22c6849d9..ab53ca49c 100644 --- a/provider/digitalocean/digital_ocean_test.go +++ b/provider/digitalocean/digital_ocean_test.go @@ -75,9 +75,11 @@ func (m *mockDigitalOceanClient) CreateRecord(context.Context, string, *godo.Dom func (m *mockDigitalOceanClient) Delete(context.Context, string) (*godo.Response, error) { return nil, nil } + func (m *mockDigitalOceanClient) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) { return nil, nil } + 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 } @@ -157,9 +159,11 @@ func (m *mockDigitalOceanRecordsFail) CreateRecord(context.Context, string, *god func (m *mockDigitalOceanRecordsFail) Delete(context.Context, string) (*godo.Response, error) { return nil, nil } + func (m *mockDigitalOceanRecordsFail) DeleteRecord(ctx context.Context, domain string, id int) (*godo.Response, error) { return nil, nil } + 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 } diff --git a/provider/dnsimple/dnsimple_test.go b/provider/dnsimple/dnsimple_test.go index ed3032edd..892cbe0e8 100644 --- a/provider/dnsimple/dnsimple_test.go +++ b/provider/dnsimple/dnsimple_test.go @@ -32,9 +32,11 @@ import ( "sigs.k8s.io/external-dns/provider" ) -var mockProvider dnsimpleProvider -var dnsimpleListRecordsResponse dnsimple.ZoneRecordsResponse -var dnsimpleListZonesResponse dnsimple.ZonesResponse +var ( + mockProvider dnsimpleProvider + dnsimpleListRecordsResponse dnsimple.ZoneRecordsResponse + dnsimpleListZonesResponse dnsimple.ZonesResponse +) func TestDnsimpleServices(t *testing.T) { // Setup example responses diff --git a/provider/dyn/dyn.go b/provider/dyn/dyn.go index 49da03651..4b5725392 100644 --- a/provider/dyn/dyn.go +++ b/provider/dyn/dyn.go @@ -252,9 +252,9 @@ func apiRetryLoop(f func() error) error { func (d *dynProviderState) allRecordsToEndpoints(records *dynsoap.GetAllRecordsResponseType) []*endpoint.Endpoint { result := []*endpoint.Endpoint{} - //Convert each record to an endpoint + // Convert each record to an endpoint - //Process A Records + // Process A Records for _, rec := range records.Data.A_records { ep := &endpoint.Endpoint{ DNSName: rec.Fqdn, @@ -266,7 +266,7 @@ func (d *dynProviderState) allRecordsToEndpoints(records *dynsoap.GetAllRecordsR result = append(result, ep) } - //Process CNAME Records + // Process CNAME Records for _, rec := range records.Data.Cname_records { ep := &endpoint.Endpoint{ DNSName: rec.Fqdn, @@ -278,7 +278,7 @@ func (d *dynProviderState) allRecordsToEndpoints(records *dynsoap.GetAllRecordsR result = append(result, ep) } - //Process TXT Records + // Process TXT Records for _, rec := range records.Data.Txt_records { ep := &endpoint.Endpoint{ DNSName: rec.Fqdn, @@ -321,7 +321,6 @@ func (d *dynProviderState) fetchZoneSerial(client *dynect.Client, zone string) ( var resp dynect.ZoneResponse err := client.Do("GET", fmt.Sprintf("Zone/%s", zone), nil, &resp) - if err != nil { return 0, err } @@ -329,7 +328,7 @@ func (d *dynProviderState) fetchZoneSerial(client *dynect.Client, zone string) ( return resp.Data.Serial, nil } -//Use SOAP to fetch all records with a single call +// Use SOAP to fetch all records with a single call func (d *dynProviderState) fetchAllRecordsInZone(zone string) (*dynsoap.GetAllRecordsResponseType, error) { var err error @@ -368,7 +367,7 @@ func (d *dynProviderState) fetchAllRecordsInZone(zone string) (*dynsoap.GetAllRe Fault_incompat: 0, } - var records = &dynsoap.GetAllRecordsResponseType{} + records := &dynsoap.GetAllRecordsResponseType{} err = apiRetryLoop(func() error { records, err = service.GetAllRecords(&req) @@ -388,7 +387,7 @@ func (d *dynProviderState) fetchAllRecordsInZone(zone string) (*dynsoap.GetAllRe Fault_incompat: 0, } - var jobResults = dynsoap.GetJobResponseType{} + jobResults := dynsoap.GetJobResponseType{} err = apiRetryLoop(func() error { jobResults, err := service.GetJob(&jobRequest) if strings.ToLower(jobResults.Status) == "incomplete" { @@ -415,7 +414,7 @@ func (d *dynProviderState) buildLinkToRecord(ep *endpoint.Endpoint) string { if ep == nil { return "" } - var matchingZone = "" + matchingZone := "" for _, zone := range d.ZoneIDFilter.ZoneIDs { if strings.HasSuffix(ep.DNSName, zone) { matchingZone = zone @@ -448,10 +447,11 @@ func (d *dynProviderState) login() (*dynect.Client, error) { } client := dynect.NewClient(d.CustomerName) - var req = dynect.LoginBlock{ + req := dynect.LoginBlock{ Username: d.Username, Password: d.Password, - CustomerName: d.CustomerName} + CustomerName: d.CustomerName, + } var resp dynect.LoginResponse @@ -618,7 +618,7 @@ func (d *dynProviderState) Records(ctx context.Context) ([]*endpoint.Endpoint, e continue } - //Fetch All Records + // Fetch All Records records, err := d.fetchAllRecordsInZone(zone) if err != nil { return nil, err diff --git a/provider/exoscale/exoscale_test.go b/provider/exoscale/exoscale_test.go index d82d0d7cd..b4ac332ab 100644 --- a/provider/exoscale/exoscale_test.go +++ b/provider/exoscale/exoscale_test.go @@ -43,12 +43,13 @@ type updateRecordExoscale struct { updateDNSRecord egoscale.UpdateDNSRecord } -var createExoscale []createRecordExoscale -var deleteExoscale []deleteRecordExoscale -var updateExoscale []updateRecordExoscale +var ( + createExoscale []createRecordExoscale + deleteExoscale []deleteRecordExoscale + updateExoscale []updateRecordExoscale +) -type ExoscaleClientStub struct { -} +type ExoscaleClientStub struct{} func NewExoscaleClientStub() EgoscaleClientI { ep := &ExoscaleClientStub{} @@ -59,6 +60,7 @@ func (ep *ExoscaleClientStub) DeleteRecord(ctx context.Context, name string, rec deleteExoscale = append(deleteExoscale, deleteRecordExoscale{name: name, recordID: recordID}) return nil } + func (ep *ExoscaleClientStub) GetRecords(ctx context.Context, name string) ([]egoscale.DNSRecord, error) { init := []egoscale.DNSRecord{ {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 } + func (ep *ExoscaleClientStub) UpdateRecord(ctx context.Context, name string, rec egoscale.UpdateDNSRecord) (*egoscale.DNSRecord, error) { updateExoscale = append(updateExoscale, updateRecordExoscale{name: name, updateDNSRecord: rec}) return nil, nil } + func (ep *ExoscaleClientStub) CreateRecord(ctx context.Context, name string, rec egoscale.DNSRecord) (*egoscale.DNSRecord, error) { createExoscale = append(createExoscale, createRecordExoscale{name: name, rec: rec}) return nil, nil } + func (ep *ExoscaleClientStub) GetDomains(ctx context.Context) ([]egoscale.DNSDomain, error) { dom := []egoscale.DNSDomain{ {ID: 1, Name: "foo.com"}, diff --git a/provider/gandi/gandi_test.go b/provider/gandi/gandi_test.go index 64be77116..cd9529f05 100644 --- a/provider/gandi/gandi_test.go +++ b/provider/gandi/gandi_test.go @@ -16,14 +16,14 @@ package gandi import ( "context" "fmt" + "os" + "reflect" + "strings" + "testing" + "github.com/go-gandi/go-gandi/domain" "github.com/go-gandi/go-gandi/livedns" "github.com/maxatome/go-testdeep/td" - "strings" - - "os" - "reflect" - "testing" "github.com/stretchr/testify/assert" @@ -62,9 +62,11 @@ func mockGandiClientNewWithFailure(functionToFail string) *mockGandiClient { } } -const domainUriPrefix = "https://api.gandi.net/v5/domain/domains/" -const exampleDotComUri = domainUriPrefix + "example.com" -const exampleDotNetUri = domainUriPrefix + "example.net" +const ( + domainUriPrefix = "https://api.gandi.net/v5/domain/domains/" + exampleDotComUri = domainUriPrefix + "example.com" + exampleDotNetUri = domainUriPrefix + "example.net" +) func testRecords() []livedns.DomainRecord { return []livedns.DomainRecord{ @@ -286,7 +288,6 @@ func TestGandiProvider_TestData(t *testing.T) { if !reflect.DeepEqual(expectedRecordsAnswer, testingRecordsAnswer) { t.Errorf("should be equal, %s", err) } - } func TestGandiProvider_Records(t *testing.T) { @@ -319,7 +320,6 @@ func TestGandiProvider_Records(t *testing.T) { } func TestGandiProvider_RecordsAppliesDomainFilter(t *testing.T) { - mockedClient := mockGandiClientNew() mockedProvider := &GandiProvider{ @@ -343,7 +343,6 @@ func TestGandiProvider_RecordsAppliesDomainFilter(t *testing.T) { } func TestGandiProvider_RecordsErrorOnMultipleValues(t *testing.T) { - mockedClient := mockGandiClientNewWithRecords([]livedns.DomainRecord{ { RrsetValues: []string{"foo", "bar"}, diff --git a/provider/godaddy/client.go b/provider/godaddy/client.go index 3631387b1..d4be96a32 100644 --- a/provider/godaddy/client.go +++ b/provider/godaddy/client.go @@ -259,7 +259,7 @@ func (c *Client) CallAPI(method, path string, reqBody, resType interface{}, need // - full serialized request body // - 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 // configured in the client instance and the path argument. If the reqBody diff --git a/provider/godaddy/godaddy.go b/provider/godaddy/godaddy.go index fcc7a2cbd..76b052076 100644 --- a/provider/godaddy/godaddy.go +++ b/provider/godaddy/godaddy.go @@ -44,10 +44,8 @@ var actionNames = []string{ "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 = errors.New("record to mutate not found in current zone") -) +// ErrRecordToMutateNotFound when ApplyChange has to update/delete and didn't found the record in the existing zone (Change with no record ID) +var ErrRecordToMutateNotFound = errors.New("record to mutate not found in current zone") type gdClient interface { 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. func NewGoDaddyProvider(ctx context.Context, domainFilter endpoint.DomainFilter, ttl int64, apiKey, apiSecret string, useOTE, dryRun bool) (*GDProvider, error) { client, err := NewClient(useOTE, apiKey, apiSecret) - if err != nil { 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) { var allRecords []gdRecords zones, err := p.zones() - if err != nil { return nil, nil, err } @@ -186,7 +182,6 @@ func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gd allRecords = []gdRecords{} } else if len(zones) == 1 { record, err := p.records(&ctx, zones[0], all) - if err != nil { return nil, nil, err } @@ -201,7 +196,6 @@ func (p *GDProvider) zonesRecords(ctx context.Context, all bool) ([]string, []gd zone := zoneName eg.Go(func() error { record, err := p.records(&ctx, zone, all) - if err != nil { return err } @@ -316,7 +310,6 @@ func (p *GDProvider) groupByNameAndType(zoneRecords []gdRecords) []*endpoint.End // Records returns the list of records in all relevant zones. func (p *GDProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) { _, records, err := p.zonesRecords(ctx, false) - if err != nil { return nil, err } @@ -390,7 +383,6 @@ func (p *GDProvider) ApplyChanges(ctx context.Context, changes *plan.Changes) er } _, records, err := p.zonesRecords(ctx, true) - if err != nil { return err } @@ -549,7 +541,6 @@ func maxOf(vars ...int64) int64 { func toString(obj interface{}) string { b, err := json.MarshalIndent(obj, "", " ") - if err != nil { return fmt.Sprintf("<%v>", err) } diff --git a/provider/google/google_test.go b/provider/google/google_test.go index 9037326c8..3fe610091 100644 --- a/provider/google/google_test.go +++ b/provider/google/google_test.go @@ -745,7 +745,6 @@ func newGoogleProviderZoneOverlap(t *testing.T, domainFilter endpoint.DomainFilt provider.dryRun = dryRun return provider - } func newGoogleProvider(t *testing.T, domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, dryRun bool, records []*endpoint.Endpoint) *GoogleProvider { diff --git a/provider/infoblox/infoblox.go b/provider/infoblox/infoblox.go index 851799e33..38e7fe858 100644 --- a/provider/infoblox/infoblox.go +++ b/provider/infoblox/infoblox.go @@ -156,7 +156,6 @@ func NewInfobloxProvider(ibStartupCfg StartupConfig) (*ProviderConfig, error) { requestor := &ibclient.WapiHttpRequestor{} client, err := ibclient.NewConnector(hostCfg, authCfg, transportConfig, requestBuilder, requestor) - if err != nil { return nil, err } diff --git a/provider/infoblox/infoblox_test.go b/provider/infoblox/infoblox_test.go index 6edaeece3..521b3f8f8 100644 --- a/provider/infoblox/infoblox_test.go +++ b/provider/infoblox/infoblox_test.go @@ -419,7 +419,6 @@ func TestInfobloxRecords(t *testing.T) { providerCfg := newInfobloxProvider(endpoint.NewDomainFilter([]string{"example.com"}), provider.NewZoneIDFilter([]string{""}), true, false, &client) actual, err := providerCfg.Records(context.Background()) - if err != nil { t.Fatal(err) } @@ -471,7 +470,6 @@ func TestInfobloxAdjustEndpoints(t *testing.T) { } func TestInfobloxRecordsReverse(t *testing.T) { - client := mockIBConnector{ mockInfobloxZones: &[]ibclient.ZoneAuth{ 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) actual, err := providerCfg.Records(context.Background()) - if err != nil { t.Fatal(err) } diff --git a/provider/inmemory/inmemory_test.go b/provider/inmemory/inmemory_test.go index 9c2b842e7..2772afed6 100644 --- a/provider/inmemory/inmemory_test.go +++ b/provider/inmemory/inmemory_test.go @@ -29,9 +29,7 @@ import ( "sigs.k8s.io/external-dns/provider" ) -var ( - _ provider.Provider = &InMemoryProvider{} -) +var _ provider.Provider = &InMemoryProvider{} func TestInMemoryProvider(t *testing.T) { t.Run("findByType", testInMemoryFindByType) @@ -684,20 +682,17 @@ func testInMemoryApplyChanges(t *testing.T) { "org": { "example.org": []*inMemoryRecord{ { - Name: "example.org", Target: "8.8.8.8", Type: endpoint.RecordTypeA, }, { - Name: "example.org", Type: endpoint.RecordTypeTXT, }, }, "foo.org": []*inMemoryRecord{ { - Name: "foo.org", Target: "4.4.4.4", Type: endpoint.RecordTypeCNAME, @@ -792,7 +787,6 @@ func testInMemoryApplyChanges(t *testing.T) { }, } { t.Run(ti.title, func(t *testing.T) { - im := NewInMemoryProvider() c := &inMemoryClient{} c.zones = getInitData() diff --git a/provider/linode/linode.go b/provider/linode/linode.go index 3ecd2e55f..75e2aac21 100644 --- a/provider/linode/linode.go +++ b/provider/linode/linode.go @@ -158,7 +158,6 @@ func (p *LinodeProvider) fetchZones(ctx context.Context) ([]linodego.Domain, err var zones []linodego.Domain allZones, err := p.Client.ListDomains(ctx, linodego.NewListOptions(0, "")) - if err != nil { return nil, err } @@ -262,7 +261,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes recordsByZoneID := make(map[string][]linodego.DomainRecord) zones, err := p.fetchZones(ctx) - if err != nil { return err } @@ -279,7 +277,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes // Fetch records for each zone for _, zone := range zones { records, err := p.fetchRecords(ctx, zone.ID) - if err != nil { return err } @@ -322,7 +319,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes } recordType, err := convertRecordType(ep.RecordType) - if err != nil { return err } @@ -371,7 +367,6 @@ func (p *LinodeProvider) ApplyChanges(ctx context.Context, changes *plan.Changes } recordType, err := convertRecordType(ep.RecordType) - if err != nil { return err } diff --git a/provider/linode/linode_test.go b/provider/linode/linode_test.go index b55e3762d..8af9c2b26 100644 --- a/provider/linode/linode_test.go +++ b/provider/linode/linode_test.go @@ -43,14 +43,17 @@ func (m *MockDomainClient) ListDomains(ctx context.Context, opts *linodego.ListO args := m.Called(ctx, opts) return args.Get(0).([]linodego.Domain), args.Error(1) } + func (m *MockDomainClient) CreateDomainRecord(ctx context.Context, domainID int, opts linodego.DomainRecordCreateOptions) (*linodego.DomainRecord, error) { args := m.Called(ctx, domainID, opts) return args.Get(0).(*linodego.DomainRecord), args.Error(1) } + func (m *MockDomainClient) DeleteDomainRecord(ctx context.Context, domainID int, recordID int) error { args := m.Called(ctx, domainID, recordID) return args.Error(0) } + func (m *MockDomainClient) UpdateDomainRecord(ctx context.Context, domainID int, recordID int, opts linodego.DomainRecordUpdateOptions) (*linodego.DomainRecord, error) { args := m.Called(ctx, domainID, recordID, opts) return args.Get(0).(*linodego.DomainRecord), args.Error(1) diff --git a/provider/ns1/ns1.go b/provider/ns1/ns1.go index c0e3adde0..8845daa96 100644 --- a/provider/ns1/ns1.go +++ b/provider/ns1/ns1.go @@ -184,7 +184,7 @@ func (p *NS1Provider) ns1BuildRecord(zoneName string, change *ns1Change) *dns.Re record.AddAnswer(dns.NewAnswer(strings.Split(v, " "))) } // set default ttl, but respect minTTLSeconds - var ttl = ns1DefaultTTL + ttl := ns1DefaultTTL if p.minTTLSeconds > ttl { ttl = p.minTTLSeconds } diff --git a/provider/oci/oci_test.go b/provider/oci/oci_test.go index 5f890a4b5..01bed1d97 100644 --- a/provider/oci/oci_test.go +++ b/provider/oci/oci_test.go @@ -76,10 +76,11 @@ func (c *mockOCIDNSClient) GetZoneRecords(ctx context.Context, request dns.GetZo }} response.OpcNextPage = common.String("1") } else { - response.Items = []dns.Record{{Domain: common.String("bar.foo.com"), - Rdata: common.String("bar.com."), - Rtype: common.String(endpoint.RecordTypeCNAME), - Ttl: common.Int(ociRecordTTL), + response.Items = []dns.Record{{ + Domain: common.String("bar.foo.com"), + Rdata: common.String("bar.com."), + Rtype: common.String(endpoint.RecordTypeCNAME), + Ttl: common.Int(ociRecordTTL), }} } case "ocid1.dns-zone.oc1..502aeddba262b92fd13ed7874f6f1404": diff --git a/provider/pdns/pdns.go b/provider/pdns/pdns.go index cf8132b7f..6f9ca0266 100644 --- a/provider/pdns/pdns.go +++ b/provider/pdns/pdns.go @@ -257,7 +257,7 @@ func NewPDNSProvider(ctx context.Context, config PDNSConfig) (*PDNSProvider, err func (p *PDNSProvider) convertRRSetToEndpoints(rr pgo.RrSet) (endpoints []*endpoint.Endpoint, _ error) { endpoints = []*endpoint.Endpoint{} - var targets = []string{} + targets := []string{} for _, record := range rr.Records { // If a record is "Disabled", it's not supposed to be "visible" diff --git a/provider/pdns/pdns_test.go b/provider/pdns/pdns_test.go index d9fd9b401..5e7eeb365 100644 --- a/provider/pdns/pdns_test.go +++ b/provider/pdns/pdns_test.go @@ -540,18 +540,20 @@ var ( /******************************************************************************/ // API that returns a zone with multiple record types -type PDNSAPIClientStub struct { -} +type PDNSAPIClientStub struct{} func (c *PDNSAPIClientStub) ListZones() ([]pgo.Zone, *http.Response, error) { return []pgo.Zone{ZoneMixed}, nil, nil } + func (c *PDNSAPIClientStub) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { return zones, nil } + func (c *PDNSAPIClientStub) ListZone(zoneID string) (pgo.Zone, *http.Response, error) { return ZoneMixed, nil, nil } + func (c *PDNSAPIClientStub) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) { return nil, nil } @@ -566,11 +568,12 @@ type PDNSAPIClientStubEmptyZones struct { func (c *PDNSAPIClientStubEmptyZones) ListZones() ([]pgo.Zone, *http.Response, error) { return []pgo.Zone{ZoneEmpty, ZoneEmptyLong, ZoneEmpty2}, nil, nil } + func (c *PDNSAPIClientStubEmptyZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { 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") { return ZoneEmpty, nil, nil } 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 pgo.Zone{}, nil, nil - } + func (c *PDNSAPIClientStubEmptyZones) PatchZone(zoneID string, zoneStruct pgo.Zone) (*http.Response, error) { c.patchedZones = append(c.patchedZones, zoneStruct) return nil, nil @@ -608,7 +611,6 @@ type PDNSAPIClientStubListZoneFailure struct { // Just overwrite the ListZone method to introduce a failure func (c *PDNSAPIClientStubListZoneFailure) ListZone(zoneID string) (pgo.Zone, *http.Response, 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) { - if strings.Contains(zoneID, "example.com") { return ZoneEmpty, nil, nil } 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 func (c *PDNSAPIClientStubPartitionZones) PartitionZones(zones []pgo.Zone) ([]pgo.Zone, []pgo.Zone) { return []pgo.Zone{ZoneEmpty}, []pgo.Zone{ZoneEmptyLong, ZoneEmpty2} - } /******************************************************************************/ @@ -661,7 +661,6 @@ type NewPDNSProviderTestSuite struct { } func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreate() { - _, err := NewPDNSProvider( context.Background(), PDNSConfig{ @@ -701,7 +700,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreate() { } func (suite *NewPDNSProviderTestSuite) TestPDNSProviderCreateTLS() { - _, err := NewPDNSProvider( context.Background(), PDNSConfig{ @@ -829,7 +827,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSRRSetToEndpoints() { eps, err = p.convertRRSetToEndpoints(RRSetDisabledRecord) assert.Nil(suite.T(), err) assert.Equal(suite.T(), endpointsDisabledRecord, eps) - } func (suite *NewPDNSProviderTestSuite) TestPDNSRecords() { @@ -861,7 +858,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSRecords() { } _, err = p.Records(ctx) assert.NotNil(suite.T(), err) - } func (suite *NewPDNSProviderTestSuite) TestPDNSConvertEndpointsToZones() { @@ -996,7 +992,6 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSmutateRecords() { // Check inserting endpoints from a single zone err = p.mutateRecords(endpointsSimpleRecord, pdnsChangeType("REPLACE")) assert.NotNil(suite.T(), err) - } func (suite *NewPDNSProviderTestSuite) TestPDNSClientPartitionZones() { diff --git a/provider/plural/plural.go b/provider/plural/plural.go index 71934f430..c4dba70cc 100644 --- a/provider/plural/plural.go +++ b/provider/plural/plural.go @@ -22,6 +22,7 @@ import ( "os" log "github.com/sirupsen/logrus" + "sigs.k8s.io/external-dns/endpoint" "sigs.k8s.io/external-dns/plan" "sigs.k8s.io/external-dns/provider" diff --git a/provider/plural/plural_test.go b/provider/plural/plural_test.go index cf68d489c..cc693d9cb 100644 --- a/provider/plural/plural_test.go +++ b/provider/plural/plural_test.go @@ -70,7 +70,6 @@ func newPluralProvider(pluralDNSRecord []*DnsRecord) *PluralProvider { } func TestPluralRecords(t *testing.T) { - tests := []struct { name string expectedEndpoints []*endpoint.Endpoint @@ -136,11 +135,9 @@ func TestPluralRecords(t *testing.T) { validateEndpoints(t, actual, test.expectedEndpoints) }) } - } func TestPluralApplyChangesCreate(t *testing.T) { - tests := []struct { name string expectedEndpoints []*endpoint.Endpoint @@ -198,7 +195,6 @@ func TestPluralApplyChangesCreate(t *testing.T) { } func TestPluralApplyChangesDelete(t *testing.T) { - tests := []struct { name string records []*DnsRecord diff --git a/provider/provider.go b/provider/provider.go index ff9c40210..06791204d 100644 --- a/provider/provider.go +++ b/provider/provider.go @@ -34,8 +34,7 @@ type Provider interface { GetDomainFilter() endpoint.DomainFilterInterface } -type BaseProvider struct { -} +type BaseProvider struct{} func (b BaseProvider) AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint { return endpoints diff --git a/provider/rcode0/rcode0.go b/provider/rcode0/rcode0.go index 571857c21..03edc73c3 100644 --- a/provider/rcode0/rcode0.go +++ b/provider/rcode0/rcode0.go @@ -47,7 +47,6 @@ type RcodeZeroProvider struct { // Returns the provider or an error if a provider could not be created. func NewRcodeZeroProvider(domainFilter endpoint.DomainFilter, dryRun bool, txtEnc bool) (*RcodeZeroProvider, error) { client, err := rc0.NewClient(os.Getenv("RC0_API_KEY")) - if err != nil { return nil, err } @@ -106,7 +105,6 @@ func (p *RcodeZeroProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, for _, zone := range zones { rrset, err := p.fetchRecords(zone.Domain) - if err != nil { return nil, err } @@ -172,7 +170,6 @@ func (p *RcodeZeroProvider) fetchRecords(zoneName string) ([]*rc0.RRType, error) for { records, page, err := p.Client.RRSet.List(zoneName, listOptions) - if err != nil { return nil, err } @@ -249,7 +246,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error { switch change.ChangeType { case rc0.ChangeTypeADD: sr, err := p.Client.RRSet.Create(zoneName, []*rc0.RRSetChange{change}) - if err != nil { return err } @@ -260,7 +256,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error { case rc0.ChangeTypeUPDATE: sr, err := p.Client.RRSet.Edit(zoneName, []*rc0.RRSetChange{change}) - if err != nil { return err } @@ -271,7 +266,6 @@ func (p *RcodeZeroProvider) submitChanges(changes []*rc0.RRSetChange) error { case rc0.ChangeTypeDELETE: sr, err := p.Client.RRSet.Delete(zoneName, []*rc0.RRSetChange{change}) - if err != nil { return err } diff --git a/provider/rcode0/rcode0_test.go b/provider/rcode0/rcode0_test.go index 597c53163..2887c8980 100644 --- a/provider/rcode0/rcode0_test.go +++ b/provider/rcode0/rcode0_test.go @@ -53,7 +53,6 @@ func (m *mockZoneManagementService) resetTestConditions() { } func TestRcodeZeroProvider_Records(t *testing.T) { - mockRRSetService := &mockRRSetService{} mockZoneManagementService := &mockZoneManagementService{} @@ -67,7 +66,6 @@ func TestRcodeZeroProvider_Records(t *testing.T) { ctx := context.Background() endpoints, err := provider.Records(ctx) // should return 6 rrs - if err != nil { t.Errorf("should not fail, %s", err) } @@ -79,11 +77,9 @@ func TestRcodeZeroProvider_Records(t *testing.T) { if err == nil { t.Errorf("expected to fail, %s", err) } - } func TestRcodeZeroProvider_ApplyChanges(t *testing.T) { - mockRRSetService := &mockRRSetService{} mockZoneManagementService := &mockZoneManagementService{} @@ -98,15 +94,12 @@ func TestRcodeZeroProvider_ApplyChanges(t *testing.T) { changes := mockChanges() err := provider.ApplyChanges(context.Background(), changes) - if err != nil { t.Errorf("should not fail, %s", err) } - } func TestRcodeZeroProvider_NewRcodezeroChanges(t *testing.T) { - provider := &RcodeZeroProvider{} changes := mockChanges() @@ -125,7 +118,6 @@ func TestRcodeZeroProvider_NewRcodezeroChanges(t *testing.T) { } func TestRcodeZeroProvider_NewRcodezeroChange(t *testing.T) { - _endpoint := &endpoint.Endpoint{ RecordType: "A", DNSName: "app." + testZoneOne, @@ -140,12 +132,10 @@ func TestRcodeZeroProvider_NewRcodezeroChange(t *testing.T) { require.Equal(t, _endpoint.RecordType, rrsetChange.Type) require.Equal(t, _endpoint.DNSName, rrsetChange.Name) 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) { - mockRRSetService := &mockRRSetService{} mockZoneManagementService := &mockZoneManagementService{} @@ -164,11 +154,9 @@ func Test_submitChanges(t *testing.T) { if err == nil { t.Errorf("expected to fail, %s", err) } - } func mockRRSetChanges(condition int) []*rc0.RRSetChange { - switch condition { case rrsetChangesUnsupportedChangeType: return []*rc0.RRSetChange{ @@ -185,7 +173,6 @@ func mockRRSetChanges(condition int) []*rc0.RRSetChange { } func mockChanges() *plan.Changes { - changes := &plan.Changes{} changes.Create = []*endpoint.Endpoint{ @@ -202,7 +189,6 @@ func mockChanges() *plan.Changes { } func TestRcodeZeroProvider_Zones(t *testing.T) { - mockRRSetService := &mockRRSetService{} mockZoneManagementService := &mockZoneManagementService{} @@ -216,7 +202,6 @@ func TestRcodeZeroProvider_Zones(t *testing.T) { mockZoneManagementService.TestNilZonesReturned = true zones, err := provider.Zones() - if err != nil { t.Fatal(err) } @@ -229,14 +214,11 @@ func TestRcodeZeroProvider_Zones(t *testing.T) { if err == nil { t.Errorf("expected to fail, %s", err) } - } func TestNewRcodeZeroProvider(t *testing.T) { - _ = os.Setenv("RC0_API_KEY", "123") p, err := NewRcodeZeroProvider(endpoint.NewDomainFilter([]string{"ext-dns-test." + testZoneOne + "."}), true, true) - if err != nil { t.Errorf("should not fail, %s", err) } @@ -262,13 +244,11 @@ func TestNewRcodeZeroProvider(t *testing.T) { if err == nil { t.Errorf("expected to fail") } - } /* mocking mockRRSetServiceInterface */ func (m *mockRRSetService) List(zone string, options *rc0.ListOptions) ([]*rc0.RRType, *rc0.Page, error) { - if m.TestErrorReturned { 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) { - return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil - } + func (m *mockRRSetService) Edit(zone string, rrsetEdit []*rc0.RRSetChange) (*rc0.StatusResponse, error) { - return &rc0.StatusResponse{Status: "ok", Message: "pass"}, nil } + func (m *mockRRSetService) Delete(zone string, rrsetDelete []*rc0.RRSetChange) (*rc0.StatusResponse, error) { - 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 } @@ -365,7 +343,6 @@ func (m *mockRRSetService) DecryptTXT(key []byte, rrType *rc0.RRType) {} /* mocking ZoneManagementServiceInterface */ func (m *mockZoneManagementService) List(options *rc0.ListOptions) ([]*rc0.Zone, *rc0.Page, error) { - if m.TestNilZonesReturned { 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) { return nil, nil } + func (m *mockZoneManagementService) Edit(zone string, zoneEdit *rc0.ZoneEdit) (*rc0.StatusResponse, error) { return nil, nil } diff --git a/provider/rdns/rdns_test.go b/provider/rdns/rdns_test.go index 4bfed1ab9..99358f4ce 100644 --- a/provider/rdns/rdns_test.go +++ b/provider/rdns/rdns_test.go @@ -282,7 +282,6 @@ func TestRDNSApplyChanges(t *testing.T) { } client.validateRecords(client.rs, expectedRecords3, t) - } func (c fakeEtcdv3Client) aggregationRecords(result *clientv3.GetResponse) ([]RDNSRecord, error) { diff --git a/provider/recordfilter_test.go b/provider/recordfilter_test.go index fc8835819..d55e07deb 100644 --- a/provider/recordfilter_test.go +++ b/provider/recordfilter_test.go @@ -19,7 +19,7 @@ package provider import "testing" func TestRecordTypeFilter(t *testing.T) { - var records = []struct { + records := []struct { rtype string expect bool }{ diff --git a/provider/rfc2136/rfc2136.go b/provider/rfc2136/rfc2136.go index 3f8a591dd..c7d5684a0 100644 --- a/provider/rfc2136/rfc2136.go +++ b/provider/rfc2136/rfc2136.go @@ -69,17 +69,15 @@ type rfc2136Provider struct { actions rfc2136Actions } -var ( - // Map of supported TSIG algorithms - tsigAlgs = map[string]string{ - "hmac-md5": dns.HmacMD5, - "hmac-sha1": dns.HmacSHA1, - "hmac-sha224": dns.HmacSHA224, - "hmac-sha256": dns.HmacSHA256, - "hmac-sha384": dns.HmacSHA384, - "hmac-sha512": dns.HmacSHA512, - } -) +// Map of supported TSIG algorithms +var tsigAlgs = map[string]string{ + "hmac-md5": dns.HmacMD5, + "hmac-sha1": dns.HmacSHA1, + "hmac-sha224": dns.HmacSHA224, + "hmac-sha256": dns.HmacSHA256, + "hmac-sha384": dns.HmacSHA384, + "hmac-sha512": dns.HmacSHA512, +} type rfc2136Actions interface { 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 { 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 { ttl = int64(ep.RecordTTL) } diff --git a/provider/rfc2136/rfc2136_test.go b/provider/rfc2136/rfc2136_test.go index bc8a7106f..38220e042 100644 --- a/provider/rfc2136/rfc2136_test.go +++ b/provider/rfc2136/rfc2136_test.go @@ -208,7 +208,6 @@ func TestRfc2136ApplyChanges(t *testing.T) { 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[1].String(), "v2.foobar.com")) - } 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], "4.3.3.3")) assert.True(t, strings.Contains(createRecords[2], "300")) - } 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(), "boom")) - } func TestChunkBy(t *testing.T) { diff --git a/provider/scaleway/scaleway.go b/provider/scaleway/scaleway.go index 614c877c8..29969fb2c 100644 --- a/provider/scaleway/scaleway.go +++ b/provider/scaleway/scaleway.go @@ -272,11 +272,11 @@ func getCompleteZoneName(zone *domain.DNSZone) string { 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 - var ttl = scalewyRecordTTL + ttl := scalewyRecordTTL if ep.RecordTTL.IsConfigured() { ttl = uint32(ep.RecordTTL) } - var priority = scalewayDefaultPriority + priority := scalewayDefaultPriority if prop, ok := ep.GetProviderSpecificProperty(scalewayPriorityKey); ok { prio, err := strconv.ParseUint(prop.Value, 10, 32) if err != nil { diff --git a/provider/tencentcloud/cloudapi/tencentapi.go b/provider/tencentcloud/cloudapi/tencentapi.go index 6004cf9cd..95f119c7c 100644 --- a/provider/tencentcloud/cloudapi/tencentapi.go +++ b/provider/tencentcloud/cloudapi/tencentapi.go @@ -265,7 +265,7 @@ func APIRecord(apiAction Action, request string, response string) { message := fmt.Sprintf("APIRecord API: %s/%s Request: %s, Response: %s", apiAction.Service, apiAction.Name, request, response) if apiAction.ReadOnly { - //log.Infof(message) + // log.Infof(message) } else { log.Infof(message) } diff --git a/provider/tencentcloud/tencent_cloud_test.go b/provider/tencentcloud/tencent_cloud_test.go index f5b29093b..b9ee48579 100644 --- a/provider/tencentcloud/tencent_cloud_test.go +++ b/provider/tencentcloud/tencent_cloud_test.go @@ -18,21 +18,22 @@ package tencentcloud import ( "context" + "testing" + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" dnspod "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323" "sigs.k8s.io/external-dns/endpoint" "sigs.k8s.io/external-dns/plan" "sigs.k8s.io/external-dns/provider" "sigs.k8s.io/external-dns/provider/tencentcloud/cloudapi" - "testing" privatedns "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028" ) func NewMockTencentCloudProvider(domainFilter endpoint.DomainFilter, zoneIDFilter provider.ZoneIDFilter, zoneType string) *TencentCloudProvider { cfg := tencentCloudConfig{ - //SecretId: "", - //SecretKey: "", + // SecretId: "", + // SecretKey: "", RegionId: "ap-shanghai", VPCId: "vpc-abcdefg", } diff --git a/provider/ultradns/ultradns.go b/provider/ultradns/ultradns.go index d18c636ff..6208f7a69 100644 --- a/provider/ultradns/ultradns.go +++ b/provider/ultradns/ultradns.go @@ -41,11 +41,14 @@ const ( // global variables var sbPoolRunProbes = true -var sbPoolActOnProbes = true -var ultradnsPoolType = "rdpool" -var accountName string -//Setting custom headers for ultradns api calls +var ( + sbPoolActOnProbes = true + ultradnsPoolType = "rdpool" + accountName string +) + +// Setting custom headers for ultradns api calls var customHeader = []udnssdk.CustomHeader{ { Key: "UltraClient", @@ -145,7 +148,6 @@ func (p *UltraDNSProvider) Zones(ctx context.Context) ([]udnssdk.Zone, error) { zoneKey.Zone = zone zoneKey.AccountName = accountName zones, err := p.fetchZones(ctx, zoneKey) - if err != nil { return nil, err } @@ -489,7 +491,7 @@ func (p *UltraDNSProvider) newSBPoolObjectCreation(ctx context.Context, change * return sbPoolObject, nil } -//Creation of RDPoolObject +// Creation of RDPoolObject func (p *UltraDNSProvider) newRDPoolObjectCreation(ctx context.Context, change *UltraDNSChanges) (rdPool udnssdk.RDPoolProfile, err error) { rdPoolObject := udnssdk.RDPoolProfile{ Context: udnssdk.RDPoolSchema, diff --git a/provider/ultradns/ultradns_test.go b/provider/ultradns/ultradns_test.go index 587d5f4c6..2d027cccc 100644 --- a/provider/ultradns/ultradns_test.go +++ b/provider/ultradns/ultradns_test.go @@ -76,7 +76,6 @@ func (m *mockUltraDNSRecord) Select(k udnssdk.RRSetKey) ([]udnssdk.RRSet, error) RData: []string{"1.1.1.1"}, TTL: 86400, }}, nil - } func (m *mockUltraDNSRecord) SelectWithOffset(k udnssdk.RRSetKey, offset int) ([]udnssdk.RRSet, udnssdk.ResultInfo, *http.Response, error) { @@ -117,7 +116,7 @@ func TestNewUltraDNSProvider(t *testing.T) { assert.NotNilf(t, err, "Expected to fail %s", "formatted") } -//zones function test scenario +// zones function test scenario func TestUltraDNSProvider_Zones(t *testing.T) { mocked := mockUltraDNSZone{} provider := &UltraDNSProvider{ @@ -136,10 +135,9 @@ func TestUltraDNSProvider_Zones(t *testing.T) { zones, err := provider.Zones(context.Background()) assert.Nil(t, err) assert.Equal(t, reflect.DeepEqual(expected, zones), true) - } -//Records function test case +// Records function test case func TestUltraDNSProvider_Records(t *testing.T) { mocked := mockUltraDNSRecord{} mockedDomain := mockUltraDNSZone{} @@ -159,10 +157,9 @@ func TestUltraDNSProvider_Records(t *testing.T) { assert.Equal(t, v.RecordType, expected[0].RRType) assert.Equal(t, int(v.RecordTTL), expected[0].TTL) } - } -//ApplyChanges function testcase +// ApplyChanges function testcase func TestUltraDNSProvider_ApplyChanges(t *testing.T) { changes := &plan.Changes{} mocked := mockUltraDNSRecord{nil} @@ -209,7 +206,7 @@ func TestUltraDNSProvider_getSpecificRecord(t *testing.T) { assert.Nil(t, err) } -//Fail case scenario testing where CNAME and TXT Record name are same +// Fail case scenario testing where CNAME and TXT Record name are same func TestUltraDNSProvider_ApplyChangesCNAME(t *testing.T) { changes := &plan.Changes{} mocked := mockUltraDNSRecord{nil} @@ -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" func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) { - _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { 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.UpdateNew = []*endpoint.Endpoint{ {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) assert.Nil(t, err) @@ -296,7 +292,8 @@ func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) { changes = &plan.Changes{} 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: "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) assert.Nil(t, err) @@ -308,7 +305,6 @@ func TestUltraDNSProvider_ApplyChanges_Integration(t *testing.T) { 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 @@ -316,13 +312,13 @@ func TestUltraDNSProvider_ApplyChanges_MultipleTarget_integeration(t *testing.T) _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) changes := &plan.Changes{} 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) 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{ RunProbes: true, @@ -428,15 +424,13 @@ func TestUltraDNSProvider_newSBPoolObjectCreation(t *testing.T) { actualSBPoolObject, _ := provider.newSBPoolObjectCreation(context.Background(), changesList) assert.Equal(t, sbPoolObject, actualSBPoolObject) - } -//Testcase to check fail scenario for multiple AAAA targets +// Testcase to check fail scenario for multiple AAAA targets func TestUltraDNSProvider_MultipleTargetAAAA(t *testing.T) { _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { _ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool") @@ -454,12 +448,11 @@ func TestUltraDNSProvider_MultipleTargetAAAA(t *testing.T) { } } -//Testcase to check fail scenario for multiple AAAA targets +// Testcase to check fail scenario for multiple AAAA targets func TestUltraDNSProvider_MultipleTargetAAAARDPool(t *testing.T) { _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { _ = os.Setenv("ULTRADNS_POOL_TYPE", "rdpool") 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") if !ok { log.Printf("Skipping test") - } else { provider, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) changes := &plan.Changes{} @@ -508,7 +500,7 @@ func TestUltraDNSProvider_MultipleTargetCNAME(t *testing.T) { } } -//Testing creation of RD Pool +// Testing creation of RD Pool func TestUltraDNSProvider_newRDPoolObjectCreation(t *testing.T) { mocked := mockUltraDNSRecord{nil} mockedDomain := mockUltraDNSZone{nil} @@ -538,10 +530,9 @@ func TestUltraDNSProvider_newRDPoolObjectCreation(t *testing.T) { actualRDPoolObject, _ := provider.newRDPoolObjectCreation(context.Background(), changesList) assert.Equal(t, rdPoolObject, actualRDPoolObject) - } -//Testing Failure scenarios over NewUltraDNS Provider +// Testing Failure scenarios over NewUltraDNS Provider func TestNewUltraDNSProvider_FailCases(t *testing.T) { _ = os.Setenv("ULTRADNS_USERNAME", "") _ = os.Setenv("ULTRADNS_PASSWORD", "") @@ -590,7 +581,6 @@ func TestNewUltraDNSProvider_FailCases(t *testing.T) { _ = os.Unsetenv("ULTRADNS_POOL_TYPE") _, accounterr := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) assert.Nil(t, accounterr) - } // Testing success scenarios for newly introduced environment variables @@ -618,12 +608,10 @@ func TestNewUltraDNSProvider_NewEnvVariableSuccessCases(t *testing.T) { _ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true") _, err2 := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) assert.Nilf(t, err2, "ActOnProbe given value is not working %s", "formatted") - } // Base64 Bad string decoding scenario func TestNewUltraDNSProvider_Base64DecodeFailcase(t *testing.T) { - _ = os.Setenv("ULTRADNS_USERNAME", "") _ = os.Setenv("ULTRADNS_PASSWORD", "12345") _ = os.Setenv("ULTRADNS_BASEURL", "") @@ -631,17 +619,14 @@ func TestNewUltraDNSProvider_Base64DecodeFailcase(t *testing.T) { _ = os.Setenv("ULTRADNS_ENABLE_ACTONPROBE", "true") _, err := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"test-ultradns-provider.com"}), true) assert.NotNilf(t, err, "Base64 decode should fail in this case %s", "formatted") - } func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { - _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { - //Creating SBPool Record + // Creating SBPool Record _ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool") provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) changes := &plan.Changes{} @@ -652,7 +637,7 @@ func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { resp, _ := provider.client.Do("GET", "zones/kubernetes-ultradns-provider-test.com./rrsets/A/ttl.kubernetes-ultradns-provider-test.com.", nil, udnssdk.RRSetListDTO{}) assert.Equal(t, resp.Status, "200 OK") - //Converting to RD Pool + // Converting to RD Pool _ = os.Setenv("ULTRADNS_POOL_TYPE", "rdpool") provider, _ = NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) changes = &plan.Changes{} @@ -662,7 +647,7 @@ func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { resp, _ = provider.client.Do("GET", "zones/kubernetes-ultradns-provider-test.com./rrsets/A/ttl.kubernetes-ultradns-provider-test.com.", nil, udnssdk.RRSetListDTO{}) assert.Equal(t, resp.Status, "200 OK") - //Converting back to SB Pool + // Converting back to SB Pool _ = os.Setenv("ULTRADNS_POOL_TYPE", "sbpool") provider, _ = NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com"}), false) changes = &plan.Changes{} @@ -672,7 +657,7 @@ func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { resp, _ = provider.client.Do("GET", "zones/kubernetes-ultradns-provider-test.com./rrsets/A/ttl.kubernetes-ultradns-provider-test.com.", nil, udnssdk.RRSetListDTO{}) assert.Equal(t, resp.Status, "200 OK") - //Deleting Record + // Deleting Record changes = &plan.Changes{} changes.Delete = []*endpoint.Endpoint{{DNSName: "ttl.kubernetes-ultradns-provider-test.com", Targets: endpoint.Targets{"1.1.1.1", "1.2.3.4"}, RecordType: "A"}} err = provider.ApplyChanges(context.Background(), changes) @@ -683,11 +668,9 @@ func TestUltraDNSProvider_PoolConversionCase(t *testing.T) { } func TestUltraDNSProvider_DomainFilter(t *testing.T) { - _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-ultradns-provider-test.com"}), true) zones, err := provider.Zones(context.Background()) @@ -703,11 +686,9 @@ func TestUltraDNSProvider_DomainFilter(t *testing.T) { } func TestUltraDNSProvider_DomainFiltersZonesFailCase(t *testing.T) { - _, ok := os.LookupEnv("ULTRADNS_INTEGRATION") if !ok { log.Printf("Skipping test") - } else { provider, _ := NewUltraDNSProvider(endpoint.NewDomainFilter([]string{"kubernetes-ultradns-provider-test.com", "kubernetes-uldsvdsvadvvdsvadvstradns-provider-test.com"}), true) _, err := provider.Zones(context.Background()) @@ -715,7 +696,7 @@ func TestUltraDNSProvider_DomainFiltersZonesFailCase(t *testing.T) { } } -//zones function with domain filter test scenario +// zones function with domain filter test scenario func TestUltraDNSProvider_DomainFilterZonesMocked(t *testing.T) { mocked := mockUltraDNSZone{} provider := &UltraDNSProvider{ @@ -756,7 +737,7 @@ func TestUltraDNSProvider_DomainFilterZonesMocked(t *testing.T) { assert.Nil(t, err) assert.Equal(t, reflect.DeepEqual(expected, zones), true) - //When zone is not given but account is provided + // When zone is not given but account is provided provider = &UltraDNSProvider{ client: udnssdk.Client{ Zone: &mocked, @@ -772,5 +753,4 @@ func TestUltraDNSProvider_DomainFilterZonesMocked(t *testing.T) { zones, err = provider.Zones(context.Background()) assert.Nil(t, err) assert.Equal(t, reflect.DeepEqual(expected, zones), true) - } diff --git a/provider/vinyldns/vinyldns.go b/provider/vinyldns/vinyldns.go index e0cbaef90..7dc98c2d7 100644 --- a/provider/vinyldns/vinyldns.go +++ b/provider/vinyldns/vinyldns.go @@ -103,7 +103,7 @@ func (p *vinyldnsProvider) Records(ctx context.Context) (endpoints []*endpoint.E recordsCount := len(r.Records) log.Debugf(fmt.Sprintf("%s.%s.%d.%s", r.Name, r.Type, recordsCount, zone.Name)) - //TODO: AAAA Records + // TODO: AAAA Records if len(r.Records) > 0 { targets := make([]string, len(r.Records)) for idx, rr := range r.Records { @@ -231,7 +231,7 @@ func newVinylDNSChanges(action string, endpoints []*endpoint.Endpoint) []*vinyld } func newVinylDNSChange(action string, endpoint *endpoint.Endpoint) *vinyldnsChange { - var ttl = vinyldnsRecordTTL + ttl := vinyldnsRecordTTL if endpoint.RecordTTL.IsConfigured() { ttl = int(endpoint.RecordTTL) } diff --git a/provider/vinyldns/vinyldns_test.go b/provider/vinyldns/vinyldns_test.go index 5388425f2..1afd831b8 100644 --- a/provider/vinyldns/vinyldns_test.go +++ b/provider/vinyldns/vinyldns_test.go @@ -37,9 +37,11 @@ type mockVinyldnsZoneInterface struct { var mockVinylDNSProvider vinyldnsProvider -var vinylDNSZones []vinyldns.Zone -var vinylDNSRecords []vinyldns.RecordSet -var vinylDNSRecordSetUpdateResponse *vinyldns.RecordSetUpdateResponse +var ( + vinylDNSZones []vinyldns.Zone + vinylDNSRecords []vinyldns.RecordSet + vinylDNSRecordSetUpdateResponse *vinyldns.RecordSetUpdateResponse +) func TestVinylDNSServices(t *testing.T) { firstZone := vinyldns.Zone{ diff --git a/provider/vultr/vultr_test.go b/provider/vultr/vultr_test.go index 38bf05ba7..e3beb44ea 100644 --- a/provider/vultr/vultr_test.go +++ b/provider/vultr/vultr_test.go @@ -72,7 +72,6 @@ func (m mockVultrDomain) GetDNSSec(ctx context.Context, domain string) ([]string return nil, nil } - type mockVultrRecord struct { client *govultr.Client } diff --git a/provider/zone_type_filter_test.go b/provider/zone_type_filter_test.go index 129fef036..8677e6fb0 100644 --- a/provider/zone_type_filter_test.go +++ b/provider/zone_type_filter_test.go @@ -37,22 +37,22 @@ func TestZoneTypeFilterMatch(t *testing.T) { zones []interface{} }{ { - "", true, []interface{}{ publicZoneStr, privateZoneStr, &route53.HostedZone{} }, + "", true, []interface{}{publicZoneStr, privateZoneStr, &route53.HostedZone{}}, }, { - "public", true, []interface{}{ publicZoneStr, publicZoneAWS, &route53.HostedZone{} }, + "public", true, []interface{}{publicZoneStr, publicZoneAWS, &route53.HostedZone{}}, }, { - "public", false, []interface{}{ privateZoneStr, privateZoneAWS }, + "public", false, []interface{}{privateZoneStr, privateZoneAWS}, }, { - "private", true, []interface{}{ privateZoneStr, privateZoneAWS }, + "private", true, []interface{}{privateZoneStr, privateZoneAWS}, }, { - "private", false, []interface{}{ publicZoneStr, publicZoneAWS, &route53.HostedZone{} }, + "private", false, []interface{}{publicZoneStr, publicZoneAWS, &route53.HostedZone{}}, }, { - "unknown", false, []interface{}{ publicZoneStr }, + "unknown", false, []interface{}{publicZoneStr}, }, } { zoneTypeFilter := NewZoneTypeFilter(tc.zoneTypeFilter) diff --git a/registry/noop_test.go b/registry/noop_test.go index 70d7dac58..8d644ece6 100644 --- a/registry/noop_test.go +++ b/registry/noop_test.go @@ -108,7 +108,7 @@ func testNoopApplyChanges(t *testing.T) { }) assert.EqualError(t, err, inmemory.ErrRecordAlreadyExists.Error()) - //correct changes + // correct changes require.NoError(t, r.ApplyChanges(ctx, &plan.Changes{ Create: []*endpoint.Endpoint{ { diff --git a/registry/registry.go b/registry/registry.go index 59b299140..7f219a846 100644 --- a/registry/registry.go +++ b/registry/registry.go @@ -38,7 +38,7 @@ type Registry interface { MissingRecords() []*endpoint.Endpoint } -//TODO(ideahitme): consider moving this to Plan +// TODO(ideahitme): consider moving this to Plan func filterOwnedRecords(ownerID string, eps []*endpoint.Endpoint) []*endpoint.Endpoint { filtered := []*endpoint.Endpoint{} for _, ep := range eps { diff --git a/registry/txt.go b/registry/txt.go index 2e0c33a3c..cb2c918ec 100644 --- a/registry/txt.go +++ b/registry/txt.go @@ -35,7 +35,7 @@ const recordTemplate = "%{record_type}" // TXTRegistry implements registry interface with ownership implemented via associated TXT records type TXTRegistry struct { provider provider.Provider - ownerID string //refers to the owner id of the current instance + ownerID string // refers to the owner id of the current instance mapper nameMapper // cache the records in memory and update on an interval instead. @@ -114,9 +114,9 @@ func (im *TXTRegistry) Records(ctx context.Context) ([]*endpoint.Endpoint, error // We simply assume that TXT records for the registry will always have only one target. labels, err := endpoint.NewLabelsFromString(record.Targets[0]) if err == endpoint.ErrInvalidHeritage { - //if no heritage is found or it is invalid - //case when value of txt record cannot be identified - //record will not be removed as it will have empty owner + // if no heritage is found or it is invalid + // case when value of txt record cannot be identified + // record will not be removed as it will have empty owner endpoints = append(endpoints, record) continue } @@ -343,6 +343,7 @@ func (pr affixNameMapper) dropAffixTemplate(name string) string { func (pr affixNameMapper) isPrefix() bool { return len(pr.suffix) == 0 } + func (pr affixNameMapper) isSuffix() bool { return len(pr.prefix) == 0 && len(pr.suffix) > 0 } @@ -395,6 +396,7 @@ func (pr affixNameMapper) normalizeAffixTemplate(afix, recordType string) string } return afix } + func (pr affixNameMapper) toNewTXTName(endpointDNSName, recordType string) string { DNSName := strings.SplitN(endpointDNSName, ".", 2) recordType = strings.ToLower(recordType) diff --git a/registry/txt_test.go b/registry/txt_test.go index 27d7d66a5..acca437f8 100644 --- a/registry/txt_test.go +++ b/registry/txt_test.go @@ -536,6 +536,7 @@ func testTXTRegistryApplyChangesWithTemplatedPrefix(t *testing.T) { err := r.ApplyChanges(ctx, changes) require.NoError(t, err) } + func testTXTRegistryApplyChangesWithTemplatedSuffix(t *testing.T) { p := inmemory.NewInMemoryProvider() p.CreateZone(testZone) @@ -579,6 +580,7 @@ func testTXTRegistryApplyChangesWithTemplatedSuffix(t *testing.T) { err := r.ApplyChanges(ctx, changes) require.NoError(t, err) } + func testTXTRegistryApplyChangesWithSuffix(t *testing.T) { p := inmemory.NewInMemoryProvider() p.CreateZone(testZone) diff --git a/source/ambassador_host.go b/source/ambassador_host.go index 1a1ef274c..4d8659c29 100644 --- a/source/ambassador_host.go +++ b/source/ambassador_host.go @@ -66,7 +66,8 @@ func NewAmbassadorHostSource( ctx context.Context, dynamicKubeClient dynamic.Interface, kubeClient kubernetes.Interface, - namespace string) (Source, error) { + namespace string, +) (Source, error) { var err error // Use shared informer to listen for add/update/delete of Host in the specified namespace. diff --git a/source/ambassador_host_test.go b/source/ambassador_host_test.go index 25a4c7d06..9702eb119 100644 --- a/source/ambassador_host_test.go +++ b/source/ambassador_host_test.go @@ -80,7 +80,6 @@ func TestAmbassadorHostSource(t *testing.T) { t.Fatalf("could not collect ambassador source endpoints: %v", err) } } - } func createAmbassadorHost(name, ambassadorService string) (*unstructured.Unstructured, error) { diff --git a/source/connector_test.go b/source/connector_test.go index 3feba3800..9177d7b6b 100644 --- a/source/connector_test.go +++ b/source/connector_test.go @@ -33,7 +33,6 @@ type ConnectorSuite struct { } func (suite *ConnectorSuite) SetupTest() { - } func startServerToServeTargets(t *testing.T, endpoints []*endpoint.Endpoint) net.Listener { @@ -91,7 +90,8 @@ func testConnectorSourceEndpoints(t *testing.T) { title: "valid remote server", server: true, expected: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -103,12 +103,14 @@ func testConnectorSourceEndpoints(t *testing.T) { title: "valid remote server with multiple endpoints", server: true, expected: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, }, - {DNSName: "xyz.example.org", + { + DNSName: "xyz.example.org", Targets: endpoint.Targets{"abc.example.org"}, RecordType: endpoint.RecordTypeCNAME, RecordTTL: 180, diff --git a/source/crd_test.go b/source/crd_test.go index a88fb4616..fe9d4e660 100644 --- a/source/crd_test.go +++ b/source/crd_test.go @@ -45,7 +45,6 @@ type CRDSuite struct { } func (suite *CRDSuite) SetupTest() { - } func defaultHeader() http.Header { @@ -152,7 +151,8 @@ func testCRDSourceEndpoints(t *testing.T) { registeredKind: "DNSEndpoint", kind: "DNSEndpoint", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -168,7 +168,8 @@ func testCRDSourceEndpoints(t *testing.T) { registeredKind: "DNSEndpoint", kind: "JustEndpoint", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -186,7 +187,8 @@ func testCRDSourceEndpoints(t *testing.T) { namespace: "foo", registeredNamespace: "foo", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -204,7 +206,8 @@ func testCRDSourceEndpoints(t *testing.T) { namespace: "foo", registeredNamespace: "bar", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -222,7 +225,8 @@ func testCRDSourceEndpoints(t *testing.T) { namespace: "foo", registeredNamespace: "foo", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -240,7 +244,8 @@ func testCRDSourceEndpoints(t *testing.T) { namespace: "foo", registeredNamespace: "foo", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -258,12 +263,14 @@ func testCRDSourceEndpoints(t *testing.T) { namespace: "foo", registeredNamespace: "foo", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, }, - {DNSName: "xyz.example.org", + { + DNSName: "xyz.example.org", Targets: endpoint.Targets{"abc.example.org"}, RecordType: endpoint.RecordTypeCNAME, RecordTTL: 180, @@ -283,7 +290,8 @@ func testCRDSourceEndpoints(t *testing.T) { annotations: map[string]string{"test": "that"}, annotationFilter: "test=filter_something_else", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -303,7 +311,8 @@ func testCRDSourceEndpoints(t *testing.T) { annotations: map[string]string{"test": "that"}, annotationFilter: "test=that", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -323,7 +332,8 @@ func testCRDSourceEndpoints(t *testing.T) { labels: map[string]string{"test": "that"}, labelFilter: "test=filter_something_else", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -343,7 +353,8 @@ func testCRDSourceEndpoints(t *testing.T) { labels: map[string]string{"test": "that"}, labelFilter: "test=that", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"1.2.3.4"}, RecordType: endpoint.RecordTypeA, RecordTTL: 180, @@ -363,7 +374,8 @@ func testCRDSourceEndpoints(t *testing.T) { labels: map[string]string{"test": "that"}, labelFilter: "test=that", endpoints: []*endpoint.Endpoint{ - {DNSName: "abc.example.org", + { + DNSName: "abc.example.org", Targets: endpoint.Targets{"ns1.k8s.io", "ns2.k8s.io"}, RecordType: endpoint.RecordTypeNS, RecordTTL: 180, diff --git a/source/gateway_httproute_test.go b/source/gateway_httproute_test.go index b1290ba6f..595667cd4 100644 --- a/source/gateway_httproute_test.go +++ b/source/gateway_httproute_test.go @@ -446,7 +446,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Status: httpRouteStatus(gatewayParentRef("default", "test")), }}, endpoints: []*endpoint.Endpoint{ - newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, + newTestEndpoint("foo.example.internal", "A", "1.2.3.4"), + }, }, { title: "WildcardInRoute", @@ -472,7 +473,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Status: httpRouteStatus(gatewayParentRef("default", "test")), }}, endpoints: []*endpoint.Endpoint{ - newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, + newTestEndpoint("foo.example.internal", "A", "1.2.3.4"), + }, }, { title: "WildcardInRouteAndGateway", @@ -498,7 +500,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Status: httpRouteStatus(gatewayParentRef("default", "test")), }}, endpoints: []*endpoint.Endpoint{ - newTestEndpoint("*.example.internal", "A", "1.2.3.4")}, + newTestEndpoint("*.example.internal", "A", "1.2.3.4"), + }, }, { title: "NoRouteHostname", @@ -522,7 +525,8 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Status: httpRouteStatus(gatewayParentRef("default", "test")), }}, endpoints: []*endpoint.Endpoint{ - newTestEndpoint("foo.example.internal", "A", "1.2.3.4")}, + newTestEndpoint("foo.example.internal", "A", "1.2.3.4"), + }, }, { title: "NoGateways", diff --git a/source/gloo_proxy_test.go b/source/gloo_proxy_test.go index 2666704be..c1005fec2 100644 --- a/source/gloo_proxy_test.go +++ b/source/gloo_proxy_test.go @@ -94,13 +94,13 @@ var internalProxySvc = corev1.Service{ Status: corev1.ServiceStatus{ LoadBalancer: corev1.LoadBalancerStatus{ Ingress: []corev1.LoadBalancerIngress{ - corev1.LoadBalancerIngress{ + { IP: "203.0.113.1", }, - corev1.LoadBalancerIngress{ + { IP: "203.0.113.2", }, - corev1.LoadBalancerIngress{ + { IP: "203.0.113.3", }, }, @@ -181,13 +181,13 @@ var externalProxySvc = corev1.Service{ Status: corev1.ServiceStatus{ LoadBalancer: corev1.LoadBalancerStatus{ Ingress: []corev1.LoadBalancerIngress{ - corev1.LoadBalancerIngress{ + { Hostname: "a.example.org", }, - corev1.LoadBalancerIngress{ + { Hostname: "b.example.org", }, - corev1.LoadBalancerIngress{ + { Hostname: "c.example.org", }, }, @@ -270,7 +270,7 @@ func TestGlooSource(t *testing.T) { assert.NoError(t, err) assert.Len(t, endpoints, 5) assert.ElementsMatch(t, endpoints, []*endpoint.Endpoint{ - &endpoint.Endpoint{ + { DNSName: "a.test", Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, RecordType: endpoint.RecordTypeA, @@ -278,7 +278,7 @@ func TestGlooSource(t *testing.T) { Labels: endpoint.Labels{}, ProviderSpecific: endpoint.ProviderSpecific{}, }, - &endpoint.Endpoint{ + { DNSName: "b.test", Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, RecordType: endpoint.RecordTypeA, @@ -286,7 +286,7 @@ func TestGlooSource(t *testing.T) { Labels: endpoint.Labels{}, ProviderSpecific: endpoint.ProviderSpecific{}, }, - &endpoint.Endpoint{ + { DNSName: "c.test", Targets: []string{internalProxySvc.Status.LoadBalancer.Ingress[0].IP, internalProxySvc.Status.LoadBalancer.Ingress[1].IP, internalProxySvc.Status.LoadBalancer.Ingress[2].IP}, RecordType: endpoint.RecordTypeA, @@ -300,7 +300,7 @@ func TestGlooSource(t *testing.T) { }, }, }, - &endpoint.Endpoint{ + { DNSName: "d.test", Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname}, RecordType: endpoint.RecordTypeCNAME, @@ -308,7 +308,7 @@ func TestGlooSource(t *testing.T) { Labels: endpoint.Labels{}, ProviderSpecific: endpoint.ProviderSpecific{}, }, - &endpoint.Endpoint{ + { DNSName: "e.test", Targets: []string{externalProxySvc.Status.LoadBalancer.Ingress[0].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[1].Hostname, externalProxySvc.Status.LoadBalancer.Ingress[2].Hostname}, RecordType: endpoint.RecordTypeCNAME, diff --git a/source/kong_tcpingress.go b/source/kong_tcpingress.go index a0e8de1f4..6dac0a60a 100644 --- a/source/kong_tcpingress.go +++ b/source/kong_tcpingress.go @@ -255,11 +255,10 @@ func newKongUnstructuredConverter() (*unstructuredConverter, error) { return uc, nil } -//Kong types based on https://github.com/Kong/kubernetes-ingress-controller/blob/v1.2.0/pkg/apis/configuration/v1beta1/types.go to facilitate testing -//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 -//If that is dealt with at some point the below can be removed and replaced with an actual import - +// Kong types based on https://github.com/Kong/kubernetes-ingress-controller/blob/v1.2.0/pkg/apis/configuration/v1beta1/types.go to facilitate testing +// 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 +// If that is dealt with at some point the below can be removed and replaced with an actual import type TCPIngress struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/source/openshift_route_test.go b/source/openshift_route_test.go index e60e84deb..af6d9fc57 100644 --- a/source/openshift_route_test.go +++ b/source/openshift_route_test.go @@ -490,7 +490,6 @@ func testOcpRouteSourceEndpoints(t *testing.T) { title: "route without matching labels", labelFilter: "app=web-external", ocpRoute: &routev1.Route{ - Spec: routev1.RouteSpec{ Host: "my-annotation-domain.com", }, diff --git a/source/pod.go b/source/pod.go index dae6a7402..36e6ffe50 100644 --- a/source/pod.go +++ b/source/pod.go @@ -74,7 +74,6 @@ func NewPodSource(ctx context.Context, kubeClient kubernetes.Interface, namespac } func (*podSource) AddEventHandler(ctx context.Context, handler func()) { - } func (ps *podSource) Endpoints(ctx context.Context) ([]*endpoint.Endpoint, error) { diff --git a/source/service_test.go b/source/service_test.go index 3fffc256c..a16994b2b 100644 --- a/source/service_test.go +++ b/source/service_test.go @@ -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{"lb.example.com"}}, }, - }, { + }, + { title: "load balancer services annotated with DNS Controller annotations return an endpoint with both annotations in compatibility mode", svcNamespace: "testing", svcName: "foo", diff --git a/source/skipper_routegroup_test.go b/source/skipper_routegroup_test.go index 75881e274..40cf65c1b 100644 --- a/source/skipper_routegroup_test.go +++ b/source/skipper_routegroup_test.go @@ -215,14 +215,14 @@ func TestEndpointsFromRouteGroups(t *testing.T) { Targets: endpoint.Targets([]string{"lb.example.org"}), }, }, - }} { + }, + } { t.Run(tt.name, func(t *testing.T) { got := tt.source.endpointsFromRouteGroup(tt.rg) validateEndpoints(t, got, tt.want) }) } - } type fakeRouteGroupClient struct { @@ -709,7 +709,8 @@ func TestRouteGroupsEndpoints(t *testing.T) { Targets: endpoint.Targets([]string{"lb.example.org"}), }, }, - }} { + }, + } { t.Run(tt.name, func(t *testing.T) { if tt.fqdnTemplate != "" { tmpl, err := parseTemplate(tt.fqdnTemplate)