mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 17:46:57 +02:00
pdns: also match parent zones when partitioning zones
This commit is contained in:
parent
fc37ff0f2c
commit
e32daefbbc
@ -166,7 +166,7 @@ func (c *PDNSAPIClient) ListZones() (zones []pgo.Zone, resp *http.Response, err
|
||||
func (c *PDNSAPIClient) PartitionZones(zones []pgo.Zone) (filteredZones []pgo.Zone, residualZones []pgo.Zone) {
|
||||
if c.domainFilter.IsConfigured() {
|
||||
for _, zone := range zones {
|
||||
if c.domainFilter.Match(zone.Name) {
|
||||
if c.domainFilter.Match(zone.Name) || c.domainFilter.MatchParent(zone.Name) {
|
||||
filteredZones = append(filteredZones, zone)
|
||||
} else {
|
||||
residualZones = append(residualZones, zone)
|
||||
|
@ -478,6 +478,12 @@ var (
|
||||
},
|
||||
}
|
||||
|
||||
DomainFilterChildListSingle = endpoint.DomainFilter{
|
||||
Filters: []string{
|
||||
"a.example.com",
|
||||
},
|
||||
}
|
||||
|
||||
DomainFilterListMultiple = endpoint.DomainFilter{
|
||||
Filters: []string{
|
||||
"example.com",
|
||||
@ -485,6 +491,13 @@ var (
|
||||
},
|
||||
}
|
||||
|
||||
DomainFilterChildListMultiple = endpoint.DomainFilter{
|
||||
Filters: []string{
|
||||
"a.example.com",
|
||||
"c.example.com",
|
||||
},
|
||||
}
|
||||
|
||||
DomainFilterListEmpty = endpoint.DomainFilter{
|
||||
Filters: []string{},
|
||||
}
|
||||
@ -503,12 +516,26 @@ var (
|
||||
domainFilter: DomainFilterListSingle,
|
||||
}
|
||||
|
||||
DomainFilterChildSingleClient = &PDNSAPIClient{
|
||||
dryRun: false,
|
||||
authCtx: context.WithValue(context.Background(), pgo.ContextAPIKey, pgo.APIKey{Key: "TEST-API-KEY"}),
|
||||
client: pgo.NewAPIClient(pgo.NewConfiguration()),
|
||||
domainFilter: DomainFilterChildListSingle,
|
||||
}
|
||||
|
||||
DomainFilterMultipleClient = &PDNSAPIClient{
|
||||
dryRun: false,
|
||||
authCtx: context.WithValue(context.Background(), pgo.ContextAPIKey, pgo.APIKey{Key: "TEST-API-KEY"}),
|
||||
client: pgo.NewAPIClient(pgo.NewConfiguration()),
|
||||
domainFilter: DomainFilterListMultiple,
|
||||
}
|
||||
|
||||
DomainFilterChildMultipleClient = &PDNSAPIClient{
|
||||
dryRun: false,
|
||||
authCtx: context.WithValue(context.Background(), pgo.ContextAPIKey, pgo.APIKey{Key: "TEST-API-KEY"}),
|
||||
client: pgo.NewAPIClient(pgo.NewConfiguration()),
|
||||
domainFilter: DomainFilterChildListMultiple,
|
||||
}
|
||||
)
|
||||
|
||||
/******************************************************************************/
|
||||
@ -1015,6 +1042,16 @@ func (suite *NewPDNSProviderTestSuite) TestPDNSClientPartitionZones() {
|
||||
filteredZones, residualZones = DomainFilterMultipleClient.PartitionZones(zoneList)
|
||||
assert.Equal(suite.T(), partitionResultFilteredMultipleFilter, filteredZones)
|
||||
assert.Equal(suite.T(), partitionResultResidualMultipleFilter, residualZones)
|
||||
|
||||
// Check filtered, residual zones when a single child domain filter specified
|
||||
filteredZones, residualZones = DomainFilterChildSingleClient.PartitionZones(zoneList)
|
||||
assert.Equal(suite.T(), partitionResultFilteredSingleFilter, filteredZones)
|
||||
assert.Equal(suite.T(), partitionResultResidualSingleFilter, residualZones)
|
||||
|
||||
// Check filter, residual zones when multiple child domain filters specified
|
||||
filteredZones, residualZones = DomainFilterChildMultipleClient.PartitionZones(zoneList)
|
||||
assert.Equal(suite.T(), partitionResultFilteredMultipleFilter, filteredZones)
|
||||
assert.Equal(suite.T(), partitionResultResidualMultipleFilter, residualZones)
|
||||
}
|
||||
|
||||
func TestNewPDNSProviderTestSuite(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user