mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 09:36:58 +02:00
rfc2136: add unit tests for batch size changes
This commit is contained in:
parent
fdbaef499a
commit
45e28261d0
@ -113,6 +113,7 @@ var (
|
||||
TransIPPrivateKeyFile: "",
|
||||
DigitalOceanAPIPageSize: 50,
|
||||
ManagedDNSRecordTypes: []string{endpoint.RecordTypeA, endpoint.RecordTypeCNAME},
|
||||
RFC2136BatchChangeSize: 50,
|
||||
}
|
||||
|
||||
overriddenConfig = &Config{
|
||||
@ -205,6 +206,7 @@ var (
|
||||
TransIPPrivateKeyFile: "/path/to/transip.key",
|
||||
DigitalOceanAPIPageSize: 100,
|
||||
ManagedDNSRecordTypes: []string{endpoint.RecordTypeA, endpoint.RecordTypeCNAME},
|
||||
RFC2136BatchChangeSize: 100,
|
||||
}
|
||||
)
|
||||
|
||||
@ -321,6 +323,7 @@ func TestParseFlags(t *testing.T) {
|
||||
"--transip-account=transip",
|
||||
"--transip-keyfile=/path/to/transip.key",
|
||||
"--digitalocean-api-page-size=100",
|
||||
"--rfc2136-batch-change-size=100",
|
||||
},
|
||||
envVars: map[string]string{},
|
||||
expected: overriddenConfig,
|
||||
@ -417,6 +420,7 @@ func TestParseFlags(t *testing.T) {
|
||||
"EXTERNAL_DNS_TRANSIP_ACCOUNT": "transip",
|
||||
"EXTERNAL_DNS_TRANSIP_KEYFILE": "/path/to/transip.key",
|
||||
"EXTERNAL_DNS_DIGITALOCEAN_API_PAGE_SIZE": "100",
|
||||
"EXTERNAL_DNS_RFC2136_BATCH_CHANGE_SIZE": "100",
|
||||
},
|
||||
expected: overriddenConfig,
|
||||
},
|
||||
|
@ -98,7 +98,7 @@ func ValidateConfig(cfg *externaldns.Config) error {
|
||||
}
|
||||
|
||||
if cfg.RFC2136BatchChangeSize < 1 {
|
||||
return errors.New("Batch Size specified for rfc2136 cannot be less than 1")
|
||||
return errors.New("batch size specified for rfc2136 cannot be less than 1")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -132,6 +132,21 @@ func TestValidateBadRfc2136Config(t *testing.T) {
|
||||
cfg.Sources = []string{"test-source"}
|
||||
cfg.Provider = "rfc2136"
|
||||
cfg.RFC2136MinTTL = -1
|
||||
cfg.RFC2136BatchChangeSize = 50
|
||||
|
||||
err := ValidateConfig(cfg)
|
||||
|
||||
assert.NotNil(t, err)
|
||||
}
|
||||
|
||||
func TestValidateBadRfc2136Batch(t *testing.T) {
|
||||
cfg := externaldns.NewConfig()
|
||||
|
||||
cfg.LogFormat = "json"
|
||||
cfg.Sources = []string{"test-source"}
|
||||
cfg.Provider = "rfc2136"
|
||||
cfg.RFC2136MinTTL = 3600
|
||||
cfg.RFC2136BatchChangeSize = 0
|
||||
|
||||
err := ValidateConfig(cfg)
|
||||
|
||||
@ -145,6 +160,7 @@ func TestValidateGoodRfc2136Config(t *testing.T) {
|
||||
cfg.Sources = []string{"test-source"}
|
||||
cfg.Provider = "rfc2136"
|
||||
cfg.RFC2136MinTTL = 3600
|
||||
cfg.RFC2136BatchChangeSize = 50
|
||||
|
||||
err := ValidateConfig(cfg)
|
||||
|
||||
@ -162,6 +178,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -172,6 +189,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -183,6 +201,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -193,6 +212,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -203,6 +223,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -214,6 +235,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
{
|
||||
LogFormat: "json",
|
||||
@ -224,6 +246,7 @@ func TestValidateBadRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
}
|
||||
|
||||
@ -246,6 +269,7 @@ func TestValidateGoodRfc2136GssTsigConfig(t *testing.T) {
|
||||
RFC2136KerberosUsername: "test-user",
|
||||
RFC2136KerberosPassword: "test-pass",
|
||||
RFC2136MinTTL: 3600,
|
||||
RFC2136BatchChangeSize: 50,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ func (r *rfc2136Stub) IncomeTransfer(m *dns.Msg, a string) (env chan *dns.Envelo
|
||||
}
|
||||
|
||||
func createRfc2136StubProvider(stub *rfc2136Stub) (provider.Provider, error) {
|
||||
return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, endpoint.DomainFilter{}, false, 300*time.Second, false, "", "", "", stub)
|
||||
return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, endpoint.DomainFilter{}, false, 300*time.Second, false, "", "", "", 50, stub)
|
||||
}
|
||||
|
||||
func extractAuthoritySectionFromMessage(msg fmt.Stringer) []string {
|
||||
@ -326,6 +326,24 @@ func TestRfc2136ApplyChangesWithUpdate(t *testing.T) {
|
||||
|
||||
}
|
||||
|
||||
func TestChunkBy(t *testing.T) {
|
||||
var records []*endpoint.Endpoint
|
||||
|
||||
for i := 0; i < 10; i++ {
|
||||
records = append(records, &endpoint.Endpoint{
|
||||
DNSName: "v1.foo.com",
|
||||
RecordType: "A",
|
||||
Targets: []string{"1.1.2.2"},
|
||||
RecordTTL: endpoint.TTL(400),
|
||||
})
|
||||
}
|
||||
|
||||
chunks := chunkBy(records, 2)
|
||||
if len(chunks) != 5 {
|
||||
t.Errorf("incorrect number of chunks returned")
|
||||
}
|
||||
}
|
||||
|
||||
func contains(arr []*endpoint.Endpoint, name string) bool {
|
||||
for _, a := range arr {
|
||||
if a.DNSName == name {
|
||||
|
Loading…
Reference in New Issue
Block a user