Refactor Provider to require DomainFilter

This commit is contained in:
John Gardiner Myers 2023-06-19 20:17:23 -07:00
parent 930061a990
commit 43eea7fa9b
9 changed files with 14 additions and 14 deletions

View File

@ -175,7 +175,7 @@ type Controller struct {
// The interval between individual synchronizations
Interval time.Duration
// The DomainFilter defines which DNS records to keep or exclude
DomainFilter endpoint.DomainFilterInterface
DomainFilter endpoint.DomainFilter
// The nextRunAt used for throttling and batching reconciliation
nextRunAt time.Time
// The nextRunAtMux is for atomic updating of nextRunAt

View File

@ -47,7 +47,7 @@ type mockProvider struct {
type filteredMockProvider struct {
provider.BaseProvider
domainFilter endpoint.DomainFilterInterface
domainFilter endpoint.DomainFilter
RecordsStore []*endpoint.Endpoint
RecordsCallCount int
ApplyChangesCalls []*plan.Changes
@ -57,7 +57,7 @@ type errorMockProvider struct {
mockProvider
}
func (p *filteredMockProvider) GetDomainFilter() endpoint.DomainFilterInterface {
func (p *filteredMockProvider) GetDomainFilter() endpoint.DomainFilter {
return p.domainFilter
}
@ -279,7 +279,7 @@ func TestShouldRunOnce(t *testing.T) {
assert.True(t, ctrl.ShouldRunOnce(now))
}
func testControllerFiltersDomains(t *testing.T, configuredEndpoints []*endpoint.Endpoint, domainFilter endpoint.DomainFilterInterface, providerEndpoints []*endpoint.Endpoint, expectedChanges []*plan.Changes) {
func testControllerFiltersDomains(t *testing.T, configuredEndpoints []*endpoint.Endpoint, domainFilter endpoint.DomainFilter, providerEndpoints []*endpoint.Endpoint, expectedChanges []*plan.Changes) {
t.Helper()
cfg := externaldns.NewConfig()
cfg.ManagedDNSRecordTypes = []string{endpoint.RecordTypeA, endpoint.RecordTypeAAAA, endpoint.RecordTypeCNAME}
@ -353,7 +353,7 @@ func TestWhenNoFilterControllerConsidersAllComain(t *testing.T) {
Targets: endpoint.Targets{"8.8.8.8"},
},
},
nil,
endpoint.DomainFilter{},
[]*endpoint.Endpoint{
{
DNSName: "some-record.used.tld",

View File

@ -517,11 +517,11 @@ func (p *AWSProvider) createUpdateChanges(newEndpoints, oldEndpoints []*endpoint
}
// GetDomainFilter generates a filter to exclude any domain that is not controlled by the provider
func (p *AWSProvider) GetDomainFilter() endpoint.DomainFilterInterface {
func (p *AWSProvider) GetDomainFilter() endpoint.DomainFilter {
zones, err := p.Zones(context.Background())
if err != nil {
log.Errorf("failed to list zones: %v", err)
return &endpoint.DomainFilter{}
return endpoint.DomainFilter{}
}
zoneNames := []string(nil)
for _, z := range zones {

View File

@ -319,7 +319,7 @@ func TestAWSRecordsFilter(t *testing.T) {
assert.NotNil(t, domainFilter)
require.IsType(t, endpoint.DomainFilter{}, domainFilter)
count := 0
filters := domainFilter.(endpoint.DomainFilter).Filters
filters := domainFilter.Filters
for _, tld := range []string{
"zone-4.ext-dns-test-3.teapot.zalan.do",
".zone-4.ext-dns-test-3.teapot.zalan.do",

View File

@ -38,7 +38,7 @@ type Provider interface {
// unnecessary (potentially failing) changes. It may also modify other fields, add, or remove
// Endpoints. It is permitted to modify the supplied endpoints.
AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint
GetDomainFilter() endpoint.DomainFilterInterface
GetDomainFilter() endpoint.DomainFilter
}
type BaseProvider struct{}
@ -51,7 +51,7 @@ func (b BaseProvider) PropertyValuesEqual(name, previous, current string) bool {
return previous == current
}
func (b BaseProvider) GetDomainFilter() endpoint.DomainFilterInterface {
func (b BaseProvider) GetDomainFilter() endpoint.DomainFilter {
return endpoint.DomainFilter{}
}

View File

@ -42,7 +42,7 @@ func NewAWSSDRegistry(provider provider.Provider, ownerID string) (*AWSSDRegistr
}, nil
}
func (sdr *AWSSDRegistry) GetDomainFilter() endpoint.DomainFilterInterface {
func (sdr *AWSSDRegistry) GetDomainFilter() endpoint.DomainFilter {
return sdr.provider.GetDomainFilter()
}

View File

@ -36,7 +36,7 @@ func NewNoopRegistry(provider provider.Provider) (*NoopRegistry, error) {
}, nil
}
func (im *NoopRegistry) GetDomainFilter() endpoint.DomainFilterInterface {
func (im *NoopRegistry) GetDomainFilter() endpoint.DomainFilter {
return im.provider.GetDomainFilter()
}

View File

@ -34,7 +34,7 @@ type Registry interface {
ApplyChanges(ctx context.Context, changes *plan.Changes) error
PropertyValuesEqual(attribute string, previous string, current string) bool
AdjustEndpoints(endpoints []*endpoint.Endpoint) []*endpoint.Endpoint
GetDomainFilter() endpoint.DomainFilterInterface
GetDomainFilter() endpoint.DomainFilter
}
// TODO(ideahitme): consider moving this to Plan

View File

@ -96,7 +96,7 @@ func getSupportedTypes() []string {
return []string{endpoint.RecordTypeA, endpoint.RecordTypeAAAA, endpoint.RecordTypeCNAME, endpoint.RecordTypeNS}
}
func (im *TXTRegistry) GetDomainFilter() endpoint.DomainFilterInterface {
func (im *TXTRegistry) GetDomainFilter() endpoint.DomainFilter {
return im.provider.GetDomainFilter()
}