mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-05 09:06:58 +02:00
Simplify TargetFilterInterface
This commit is contained in:
parent
52196b8db1
commit
7efecc711f
@ -26,7 +26,6 @@ import (
|
||||
// TargetFilterInterface defines the interface to select matching targets for a specific provider or runtime
|
||||
type TargetFilterInterface interface {
|
||||
Match(target string) bool
|
||||
IsConfigured() bool
|
||||
}
|
||||
|
||||
// TargetNetFilter holds a lists of valid target names
|
||||
@ -61,11 +60,6 @@ func NewTargetNetFilterWithExclusions(targetFilterNets []string, excludeNets []s
|
||||
return TargetNetFilter{FilterNets: prepareTargetFilters(targetFilterNets), excludeNets: prepareTargetFilters(excludeNets)}
|
||||
}
|
||||
|
||||
// NewTargetNetFilter returns a new TargetNetFilter given a comma separated list of targets
|
||||
func NewTargetNetFilter(targetFilterNets []string) TargetNetFilter {
|
||||
return TargetNetFilter{FilterNets: prepareTargetFilters(targetFilterNets)}
|
||||
}
|
||||
|
||||
// Match checks whether a target can be found in the TargetNetFilter.
|
||||
func (tf TargetNetFilter) Match(target string) bool {
|
||||
return matchTargetNetFilter(tf.FilterNets, target, true) && !matchTargetNetFilter(tf.excludeNets, target, false)
|
||||
@ -89,11 +83,3 @@ func matchTargetNetFilter(filters []*net.IPNet, target string, emptyval bool) bo
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// IsConfigured returns true if TargetFilter is configured, false otherwise
|
||||
func (tf TargetNetFilter) IsConfigured() bool {
|
||||
if len(tf.FilterNets) == 1 {
|
||||
return tf.FilterNets[0].Network() != ""
|
||||
}
|
||||
return len(tf.FilterNets) > 0
|
||||
}
|
||||
|
@ -68,19 +68,6 @@ var targetFilterTests = []targetFilterTest{
|
||||
},
|
||||
}
|
||||
|
||||
func TestTargetFilterMatch(t *testing.T) {
|
||||
for i, tt := range targetFilterTests {
|
||||
if len(tt.exclusions) > 0 {
|
||||
t.Logf("NewTargetFilter() doesn't support exclusions - skipping test %+v", tt)
|
||||
continue
|
||||
}
|
||||
targetFilter := NewTargetNetFilter(tt.targetFilter)
|
||||
for _, target := range tt.targets {
|
||||
assert.Equal(t, tt.expected, targetFilter.Match(target), "should not fail: %v in test-case #%v", target, i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestTargetFilterWithExclusions(t *testing.T) {
|
||||
for i, tt := range targetFilterTests {
|
||||
if len(tt.exclusions) == 0 {
|
||||
@ -107,47 +94,3 @@ func TestMatchTargetFilterReturnsProperEmptyVal(t *testing.T) {
|
||||
assert.Equal(t, true, matchFilter(emptyFilters, "sometarget.com", true))
|
||||
assert.Equal(t, false, matchFilter(emptyFilters, "sometarget.com", false))
|
||||
}
|
||||
|
||||
func TestTargetFilterIsConfigured(t *testing.T) {
|
||||
for _, tt := range []struct {
|
||||
filters []string
|
||||
exclude []string
|
||||
expected bool
|
||||
}{
|
||||
{
|
||||
[]string{""},
|
||||
[]string{""},
|
||||
false,
|
||||
},
|
||||
{
|
||||
[]string{" "},
|
||||
[]string{" "},
|
||||
false,
|
||||
},
|
||||
{
|
||||
[]string{"", ""},
|
||||
[]string{""},
|
||||
false,
|
||||
},
|
||||
{
|
||||
[]string{"10/8"},
|
||||
[]string{" "},
|
||||
false,
|
||||
},
|
||||
{
|
||||
[]string{"10.0.0.0/8"},
|
||||
[]string{" "},
|
||||
true,
|
||||
},
|
||||
{
|
||||
[]string{" 10.0.0.0/8 "},
|
||||
[]string{" ignored "},
|
||||
true,
|
||||
},
|
||||
} {
|
||||
t.Run("test IsConfigured", func(t *testing.T) {
|
||||
tf := NewTargetNetFilterWithExclusions(tt.filters, tt.exclude)
|
||||
assert.Equal(t, tt.expected, tf.IsConfigured())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user