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)
}
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":
p, err = provider.NewNS1Provider(
provider.NS1Config{

View File

@ -130,7 +130,7 @@ type Config struct {
RFC2136TSIGSecret string `secure:"yes"`
RFC2136TSIGSecretAlg string
RFC2136TAXFR bool
RFC2136MinTTLSeconds int
RFC2136MinTTLSeconds int64
NS1Endpoint string
NS1IgnoreSSL bool
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-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-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
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
insecure bool
axfr bool
minTTLSeconds int
minTTLSeconds int64
// only consider hosted zones managing domains ending in this suffix
domainFilter DomainFilter
@ -65,7 +65,7 @@ type rfc2136Actions interface {
}
// 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]
if !ok && !insecure {
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 {
log.Debugf("AddRecord.ep=%s", ep)
var ttl = int64(r.minTTLSeconds)
var ttl = r.minTTLSeconds
if ep.RecordTTL.IsConfigured() && int64(ep.RecordTTL) > ttl {
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) {
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 {
const searchPattern = "AUTHORITY SECTION:"
data := msg.String()
authoritySectionOffset := strings.Index(data, searchPattern)
return strings.Split(strings.TrimSpace(data[authoritySectionOffset+len(searchPattern):]), "\n")
authoritySectionOffset := strings.Index(msg.String(), searchPattern)
return strings.Split(strings.TrimSpace(msg.String()[authoritySectionOffset+len(searchPattern):]), "\n")
}
// TestRfc2136GetRecordsMultipleTargets simulates a single record with multiple targets.