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 }