package checker import ( "context" "fmt" sdk "git.happydns.org/checker-sdk-go/checker" ) type rulePresent struct{} func RulePresent() sdk.CheckRule { return &rulePresent{} } func (rulePresent) Name() string { return "srv_records_present" } func (rulePresent) Description() string { return "At least one SRV record is published for this service." } func (rulePresent) Evaluate(ctx context.Context, obs sdk.ObservationGetter, _ sdk.CheckerOptions) []sdk.CheckState { d, cs := getData(ctx, obs) if cs != nil { return []sdk.CheckState{*cs} } if len(d.Records) == 0 { return []sdk.CheckState{{Status: sdk.StatusCrit, Code: "srv_missing", Message: "No SRV records published."}} } return []sdk.CheckState{{Status: sdk.StatusOK, Code: "srv_present", Message: fmt.Sprintf("%d SRV record(s) published.", len(d.Records))}} }