From afa08e536239f0c1b67613609cb1514debd0271c Mon Sep 17 00:00:00 2001 From: divolgin Date: Wed, 22 Sep 2021 22:50:38 +0000 Subject: [PATCH] Analyzers should not return multiple results --- pkg/analyze/host_disk_usage.go | 21 ++++++++++----------- pkg/analyze/host_disk_usage_test.go | 15 ++++++++------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/analyze/host_disk_usage.go b/pkg/analyze/host_disk_usage.go index fb931680..a442a86a 100644 --- a/pkg/analyze/host_disk_usage.go +++ b/pkg/analyze/host_disk_usage.go @@ -38,7 +38,9 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] return nil, errors.Wrapf(err, "failed to unmarshal disk usage info from %s", key) } - var coll resultCollector + result := AnalyzeResult{ + Title: a.Title(), + } for _, outcome := range hostAnalyzer.Outcomes { result := &AnalyzeResult{Title: a.Title()} @@ -49,8 +51,7 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Fail.Message result.URI = outcome.Fail.URI - coll.push(result) - continue + return []*AnalyzeResult{result}, nil } isMatch, err := compareHostDiskUsageConditionalToActual(outcome.Fail.When, diskUsageInfo.TotalBytes, diskUsageInfo.UsedBytes) @@ -63,7 +64,7 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Fail.Message result.URI = outcome.Fail.URI - coll.push(result) + return []*AnalyzeResult{result}, nil } } else if outcome.Warn != nil { if outcome.Warn.When == "" { @@ -71,8 +72,7 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Warn.Message result.URI = outcome.Warn.URI - coll.push(result) - continue + return []*AnalyzeResult{result}, nil } isMatch, err := compareHostDiskUsageConditionalToActual(outcome.Warn.When, diskUsageInfo.TotalBytes, diskUsageInfo.UsedBytes) @@ -85,7 +85,7 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Warn.Message result.URI = outcome.Warn.URI - coll.push(result) + return []*AnalyzeResult{result}, nil } } else if outcome.Pass != nil { if outcome.Pass.When == "" { @@ -93,8 +93,7 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Pass.Message result.URI = outcome.Pass.URI - coll.push(result) - continue + return []*AnalyzeResult{result}, nil } isMatch, err := compareHostDiskUsageConditionalToActual(outcome.Pass.When, diskUsageInfo.TotalBytes, diskUsageInfo.UsedBytes) @@ -107,13 +106,13 @@ func (a *AnalyzeHostDiskUsage) Analyze(getCollectedFileContents func(string) ([] result.Message = outcome.Pass.Message result.URI = outcome.Pass.URI - coll.push(result) + return []*AnalyzeResult{result}, nil } } } - return coll.get(a.Title()), nil + return []*AnalyzeResult{&result}, nil } func compareHostDiskUsageConditionalToActual(conditional string, totalBytes uint64, usedBytes uint64) (res bool, err error) { diff --git a/pkg/analyze/host_disk_usage_test.go b/pkg/analyze/host_disk_usage_test.go index 30b032dc..35b5345d 100644 --- a/pkg/analyze/host_disk_usage_test.go +++ b/pkg/analyze/host_disk_usage_test.go @@ -372,11 +372,17 @@ func TestAnalyzeHostDiskUsage(t *testing.T) { CollectorName: "ephemeral", Outcomes: []*troubleshootv1beta2.Outcome{ { - Warn: &troubleshootv1beta2.SingleOutcome{ + Fail: &troubleshootv1beta2.SingleOutcome{ When: "available < 10Gi", Message: "/var/lib/kubelet less than 10Gi available", }, }, + { + Warn: &troubleshootv1beta2.SingleOutcome{ + When: "available < 25Gi", + Message: "/var/lib/kubelet less than 25Gi available", + }, + }, { Pass: &troubleshootv1beta2.SingleOutcome{ When: "", @@ -388,14 +394,9 @@ func TestAnalyzeHostDiskUsage(t *testing.T) { result: []*AnalyzeResult{ { Title: "Disk Usage ephemeral", - IsWarn: true, + IsFail: true, Message: "/var/lib/kubelet less than 10Gi available", }, - { - Title: "Disk Usage ephemeral", - IsPass: true, - Message: "/var/lib/kubelet passed", - }, }, }, }