Initial commit
This commit is contained in:
commit
1d93a25983
23 changed files with 2654 additions and 0 deletions
61
checker/rule.go
Normal file
61
checker/rule.go
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
package checker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
sdk "git.happydns.org/checker-sdk-go/checker"
|
||||
)
|
||||
|
||||
func Rules() []sdk.CheckRule {
|
||||
return []sdk.CheckRule{
|
||||
&isReverseZoneRule{},
|
||||
&hasPTRsRule{},
|
||||
&fcrdnsRule{},
|
||||
&targetResolvesRule{},
|
||||
&singlePTRRule{},
|
||||
&targetSyntaxRule{},
|
||||
&genericHostnameRule{},
|
||||
&ttlHygieneRule{},
|
||||
&truncationRule{},
|
||||
}
|
||||
}
|
||||
|
||||
func loadData(ctx context.Context, obs sdk.ObservationGetter) (*ReverseZoneData, *sdk.CheckState) {
|
||||
var data ReverseZoneData
|
||||
if err := obs.Get(ctx, ObservationKey, &data); err != nil {
|
||||
return nil, &sdk.CheckState{
|
||||
Status: sdk.StatusError,
|
||||
Code: "reverse_zone.observation_error",
|
||||
Message: fmt.Sprintf("failed to get reverse-zone data: %v", err),
|
||||
}
|
||||
}
|
||||
return &data, nil
|
||||
}
|
||||
|
||||
func passState(code, message, subject string) sdk.CheckState {
|
||||
return sdk.CheckState{Status: sdk.StatusOK, Code: code, Message: message, Subject: subject}
|
||||
}
|
||||
|
||||
func skipState(code, message string) sdk.CheckState {
|
||||
return sdk.CheckState{Status: sdk.StatusUnknown, Code: code, Message: message}
|
||||
}
|
||||
|
||||
func critState(code, message, subject, hint string) sdk.CheckState {
|
||||
return withHint(sdk.CheckState{Status: sdk.StatusCrit, Code: code, Message: message, Subject: subject}, hint)
|
||||
}
|
||||
|
||||
func warnState(code, message, subject, hint string) sdk.CheckState {
|
||||
return withHint(sdk.CheckState{Status: sdk.StatusWarn, Code: code, Message: message, Subject: subject}, hint)
|
||||
}
|
||||
|
||||
func infoState(code, message, subject string) sdk.CheckState {
|
||||
return sdk.CheckState{Status: sdk.StatusInfo, Code: code, Message: message, Subject: subject}
|
||||
}
|
||||
|
||||
func withHint(st sdk.CheckState, hint string) sdk.CheckState {
|
||||
if hint != "" {
|
||||
st.Meta = map[string]any{"hint": hint}
|
||||
}
|
||||
return st
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue