diff --git a/checker/report.go b/checker/report.go index 7317de9..b241b15 100644 --- a/checker/report.go +++ b/checker/report.go @@ -6,6 +6,8 @@ import ( "html/template" "sort" "strings" + + sdk "git.happydns.org/checker-sdk-go/checker" ) // ── HTML report ─────────────────────────────────────────────────────────────── @@ -197,9 +199,9 @@ details[open] > summary::before { transform: rotate(90deg); } ) // GetHTMLReport implements sdk.CheckerHTMLReporter. -func (p *zonemasterProvider) GetHTMLReport(raw json.RawMessage) (string, error) { +func (p *zonemasterProvider) GetHTMLReport(ctx sdk.ReportContext) (string, error) { var data ZonemasterData - if err := json.Unmarshal(raw, &data); err != nil { + if err := json.Unmarshal(ctx.Data(), &data); err != nil { return "", fmt.Errorf("failed to unmarshal zonemaster results: %w", err) } diff --git a/checker/rule.go b/checker/rule.go index f336ba5..d201dd6 100644 --- a/checker/rule.go +++ b/checker/rule.go @@ -44,14 +44,14 @@ func (r *zonemasterRule) ValidateOptions(opts sdk.CheckerOptions) error { return nil } -func (r *zonemasterRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, opts sdk.CheckerOptions) sdk.CheckState { +func (r *zonemasterRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter, opts sdk.CheckerOptions) []sdk.CheckState { var data ZonemasterData if err := obs.Get(ctx, ObservationKeyZonemaster, &data); err != nil { - return sdk.CheckState{ + return []sdk.CheckState{{ Status: sdk.StatusError, Message: fmt.Sprintf("Failed to get Zonemaster data: %v", err), Code: "zonemaster_error", - } + }} } var errorCount, warningCount int @@ -86,27 +86,27 @@ func (r *zonemasterRule) Evaluate(ctx context.Context, obs sdk.ObservationGetter } statusLine += ": " + strings.Join(criticalMsgs[:n], "; ") } - return sdk.CheckState{ + return []sdk.CheckState{{ Status: sdk.StatusCrit, Message: statusLine, Code: "zonemaster_errors", Meta: meta, - } + }} } if warningCount > 0 { - return sdk.CheckState{ + return []sdk.CheckState{{ Status: sdk.StatusWarn, Message: fmt.Sprintf("%d warning(s) found", warningCount), Code: "zonemaster_warnings", Meta: meta, - } + }} } - return sdk.CheckState{ + return []sdk.CheckState{{ Status: sdk.StatusOK, Message: fmt.Sprintf("All checks passed (%d checks)", len(data.Results)), Code: "zonemaster_ok", Meta: meta, - } + }} } diff --git a/go.mod b/go.mod index dd1b138..ffeb7b4 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module git.happydns.org/checker-zonemaster go 1.25.0 -require git.happydns.org/checker-sdk-go v0.0.1 +require git.happydns.org/checker-sdk-go v1.2.0 diff --git a/go.sum b/go.sum index 5282be1..272600a 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -git.happydns.org/checker-sdk-go v0.0.1 h1:4RxCJr73HWKxjOyU/6NJMO8lXJmH0gMLA68EzTqLbQI= -git.happydns.org/checker-sdk-go v0.0.1/go.mod h1:aNAcfYFfbhvH9kJhE0Njp5GX0dQbxdRB0rJ0KvSC5nI= +git.happydns.org/checker-sdk-go v1.2.0 h1:v4MpKAz0W3PwP+bxx3pya8w893sVH5xTD1of1cc0TV8= +git.happydns.org/checker-sdk-go v1.2.0/go.mod h1:aNAcfYFfbhvH9kJhE0Njp5GX0dQbxdRB0rJ0KvSC5nI=