The DNS client instance and the network protocol is really an implementation detail, so hide it.

This commit is contained in:
Christian Joergensen 2018-10-05 12:58:14 +02:00
parent 4c5495f2a7
commit 969171cea8
2 changed files with 11 additions and 20 deletions

16
main.go
View File

@ -43,7 +43,7 @@ type Exporter struct {
logger Logger
}
func NewDNSSECExporter(dnsClient *dns.Client, resolver string, logger Logger) *Exporter {
func NewDNSSECExporter(timeout time.Duration, resolver string, logger Logger) *Exporter {
return &Exporter{
records: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
@ -71,9 +71,12 @@ func NewDNSSECExporter(dnsClient *dns.Client, resolver string, logger Logger) *E
"type",
},
),
dnsClient: dnsClient,
resolver: resolver,
logger: logger,
dnsClient: &dns.Client{
Net: "tcp",
Timeout: timeout,
},
resolver: resolver,
logger: logger,
}
}
@ -226,10 +229,7 @@ func main() {
logger := log.New(os.Stderr, "", log.LstdFlags)
exporter := NewDNSSECExporter(&dns.Client{
Net: "tcp",
Timeout: *timeout,
}, *resolver, logger)
exporter := NewDNSSECExporter(*timeout, *resolver, logger)
if err := toml.NewDecoder(f).Decode(exporter); err != nil {
log.Fatalf("couldn't parse configuration file: %v", err)

View File

@ -161,10 +161,7 @@ func TestCollectionOK(t *testing.T) {
addr, cancel := runServer(t, opts{})
defer cancel()
e := NewDNSSECExporter(&dns.Client{
Net: "tcp",
Timeout: 1 * time.Second,
}, addr, nullLogger())
e := NewDNSSECExporter(time.Second, addr, nullLogger())
valid, exp := e.collectRecord("example.org", "@", "SOA")
@ -187,10 +184,7 @@ func TestCollectionExpired(t *testing.T) {
defer cancel()
e := NewDNSSECExporter(&dns.Client{
Net: "tcp",
Timeout: 1 * time.Second,
}, addr, nullLogger())
e := NewDNSSECExporter(time.Second, addr, nullLogger())
valid, exp := e.collectRecord("example.org", "@", "SOA")
@ -217,10 +211,7 @@ func TestCollectionInvalid(t *testing.T) {
defer cancel()
e := NewDNSSECExporter(&dns.Client{
Net: "tcp",
Timeout: 1 * time.Second,
}, addr, nullLogger())
e := NewDNSSECExporter(time.Second, addr, nullLogger())
valid, exp := e.collectRecord("example.org", "@", "SOA")