Initial commit
This commit is contained in:
commit
e6eb2e081e
15 changed files with 2058 additions and 0 deletions
40
checker/provider.go
Normal file
40
checker/provider.go
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
package checker
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
sdk "git.happydns.org/checker-sdk-go/checker"
|
||||
)
|
||||
|
||||
// Provider returns a new delegation observation provider.
|
||||
func Provider() sdk.ObservationProvider {
|
||||
return &delegationProvider{}
|
||||
}
|
||||
|
||||
type delegationProvider struct{}
|
||||
|
||||
func (p *delegationProvider) Key() sdk.ObservationKey {
|
||||
return ObservationKeyDelegation
|
||||
}
|
||||
|
||||
// Definition implements sdk.CheckerDefinitionProvider so the SDK server can
|
||||
// expose /definition without an extra argument.
|
||||
func (p *delegationProvider) Definition() *sdk.CheckerDefinition {
|
||||
return Definition()
|
||||
}
|
||||
|
||||
// ValidateOptions implements sdk.OptionsValidator. Option values cross all
|
||||
// rules, so validating them once on the provider avoids duplicating the
|
||||
// check in every rule.
|
||||
func (p *delegationProvider) ValidateOptions(opts sdk.CheckerOptions) error {
|
||||
if v, ok := opts["minNameServers"]; ok {
|
||||
f, ok := v.(float64)
|
||||
if !ok {
|
||||
return fmt.Errorf("minNameServers must be a number")
|
||||
}
|
||||
if f < 1 {
|
||||
return fmt.Errorf("minNameServers must be >= 1")
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue