Analyzers should not return multiple results

This commit is contained in:
divolgin
2021-09-22 22:50:38 +00:00
parent 614aed52c9
commit afa08e5362
2 changed files with 18 additions and 18 deletions

View File

@@ -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) {

View File

@@ -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",
},
},
},
}