Refactoring after review

* Updated TTL variable type to int64
* Updated rfc2136 contructor to have nil as last variable
* Removed unnecessary variable `data`
This commit is contained in:
Oguz Kilcan 2020-02-11 10:41:09 +01:00
parent c0c733b4bf
commit b6111b9768
No known key found for this signature in database
GPG Key ID: BB7FDDACE61E23C1
4 changed files with 9 additions and 10 deletions

View File

@ -240,7 +240,7 @@ func main() {
p, err = provider.NewOCIProvider(*config, domainFilter, zoneIDFilter, cfg.DryRun) p, err = provider.NewOCIProvider(*config, domainFilter, zoneIDFilter, cfg.DryRun)
} }
case "rfc2136": case "rfc2136":
p, err = provider.NewRfc2136Provider(cfg.RFC2136Host, cfg.RFC2136Port, cfg.RFC2136Zone, cfg.RFC2136Insecure, cfg.RFC2136TSIGKeyName, cfg.RFC2136TSIGSecret, cfg.RFC2136TSIGSecretAlg, cfg.RFC2136TAXFR, domainFilter, cfg.DryRun, nil, cfg.RFC2136MinTTLSeconds) p, err = provider.NewRfc2136Provider(cfg.RFC2136Host, cfg.RFC2136Port, cfg.RFC2136Zone, cfg.RFC2136Insecure, cfg.RFC2136TSIGKeyName, cfg.RFC2136TSIGSecret, cfg.RFC2136TSIGSecretAlg, cfg.RFC2136TAXFR, domainFilter, cfg.DryRun, cfg.RFC2136MinTTLSeconds, nil)
case "ns1": case "ns1":
p, err = provider.NewNS1Provider( p, err = provider.NewNS1Provider(
provider.NS1Config{ provider.NS1Config{

View File

@ -130,7 +130,7 @@ type Config struct {
RFC2136TSIGSecret string `secure:"yes"` RFC2136TSIGSecret string `secure:"yes"`
RFC2136TSIGSecretAlg string RFC2136TSIGSecretAlg string
RFC2136TAXFR bool RFC2136TAXFR bool
RFC2136MinTTLSeconds int RFC2136MinTTLSeconds int64
NS1Endpoint string NS1Endpoint string
NS1IgnoreSSL bool NS1IgnoreSSL bool
TransIPAccountName string TransIPAccountName string
@ -368,7 +368,7 @@ func (cfg *Config) ParseFlags(args []string) error {
app.Flag("rfc2136-tsig-secret", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecret).StringVar(&cfg.RFC2136TSIGSecret) app.Flag("rfc2136-tsig-secret", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecret).StringVar(&cfg.RFC2136TSIGSecret)
app.Flag("rfc2136-tsig-secret-alg", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecretAlg).StringVar(&cfg.RFC2136TSIGSecretAlg) app.Flag("rfc2136-tsig-secret-alg", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").Default(defaultConfig.RFC2136TSIGSecretAlg).StringVar(&cfg.RFC2136TSIGSecretAlg)
app.Flag("rfc2136-tsig-axfr", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").BoolVar(&cfg.RFC2136TAXFR) app.Flag("rfc2136-tsig-axfr", "When using the RFC2136 provider, specify the TSIG (base64) value to attached to DNS messages (required when --rfc2136-insecure=false)").BoolVar(&cfg.RFC2136TAXFR)
app.Flag("rfc2136-min-ttl", "When using the RFC2136 provider, specify minimal TTL (in seconds) for records. This value will be used if the provided TTL for a service/ingress is lower than this").Default(strconv.Itoa(defaultConfig.RFC2136MinTTLSeconds)).IntVar(&cfg.RFC2136MinTTLSeconds) app.Flag("rfc2136-min-ttl", "When using the RFC2136 provider, specify minimal TTL (in seconds) for records. This value will be used if the provided TTL for a service/ingress is lower than this").Default(strconv.FormatInt(defaultConfig.RFC2136MinTTLSeconds, 10)).Int64Var(&cfg.RFC2136MinTTLSeconds)
// Flags related to TransIP provider // Flags related to TransIP provider
app.Flag("transip-account", "When using the TransIP provider, specify the account name (required when --provider=transip)").Default(defaultConfig.TransIPAccountName).StringVar(&cfg.TransIPAccountName) app.Flag("transip-account", "When using the TransIP provider, specify the account name (required when --provider=transip)").Default(defaultConfig.TransIPAccountName).StringVar(&cfg.TransIPAccountName)

View File

@ -41,7 +41,7 @@ type rfc2136Provider struct {
tsigSecretAlg string tsigSecretAlg string
insecure bool insecure bool
axfr bool axfr bool
minTTLSeconds int minTTLSeconds int64
// only consider hosted zones managing domains ending in this suffix // only consider hosted zones managing domains ending in this suffix
domainFilter DomainFilter domainFilter DomainFilter
@ -65,7 +65,7 @@ type rfc2136Actions interface {
} }
// NewRfc2136Provider is a factory function for OpenStack rfc2136 providers // NewRfc2136Provider is a factory function for OpenStack rfc2136 providers
func NewRfc2136Provider(host string, port int, zoneName string, insecure bool, keyName string, secret string, secretAlg string, axfr bool, domainFilter DomainFilter, dryRun bool, actions rfc2136Actions, minTTLSeconds int) (Provider, error) { func NewRfc2136Provider(host string, port int, zoneName string, insecure bool, keyName string, secret string, secretAlg string, axfr bool, domainFilter DomainFilter, dryRun bool, minTTLSeconds int64, actions rfc2136Actions) (Provider, error) {
secretAlgChecked, ok := tsigAlgs[secretAlg] secretAlgChecked, ok := tsigAlgs[secretAlg]
if !ok && !insecure { if !ok && !insecure {
return nil, errors.Errorf("%s is not supported TSIG algorithm", secretAlg) return nil, errors.Errorf("%s is not supported TSIG algorithm", secretAlg)
@ -256,7 +256,7 @@ func (r rfc2136Provider) UpdateRecord(m *dns.Msg, ep *endpoint.Endpoint) error {
func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error { func (r rfc2136Provider) AddRecord(m *dns.Msg, ep *endpoint.Endpoint) error {
log.Debugf("AddRecord.ep=%s", ep) log.Debugf("AddRecord.ep=%s", ep)
var ttl = int64(r.minTTLSeconds) var ttl = r.minTTLSeconds
if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl { if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl {
ttl = int64(ep.RecordTTL) ttl = int64(ep.RecordTTL)
} }

View File

@ -93,14 +93,13 @@ func (r *rfc2136Stub) IncomeTransfer(m *dns.Msg, a string) (env chan *dns.Envelo
} }
func createRfc2136StubProvider(stub *rfc2136Stub) (Provider, error) { func createRfc2136StubProvider(stub *rfc2136Stub) (Provider, error) {
return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, DomainFilter{}, false, stub, 300) return NewRfc2136Provider("", 0, "", false, "key", "secret", "hmac-sha512", true, DomainFilter{}, false, 300, stub)
} }
func extractAuthoritySectionFromMessage(msg fmt.Stringer) []string { func extractAuthoritySectionFromMessage(msg fmt.Stringer) []string {
const searchPattern = "AUTHORITY SECTION:" const searchPattern = "AUTHORITY SECTION:"
data := msg.String() authoritySectionOffset := strings.Index(msg.String(), searchPattern)
authoritySectionOffset := strings.Index(data, searchPattern) return strings.Split(strings.TrimSpace(msg.String()[authoritySectionOffset+len(searchPattern):]), "\n")
return strings.Split(strings.TrimSpace(data[authoritySectionOffset+len(searchPattern):]), "\n")
} }
// TestRfc2136GetRecordsMultipleTargets simulates a single record with multiple targets. // TestRfc2136GetRecordsMultipleTargets simulates a single record with multiple targets.