Skip to content
This repository was archived by the owner on Nov 14, 2024. It is now read-only.

Commit 4c634c0

Browse files
authored
chore: improve text output for resource check (#41)
* Remove the synthetic error and create a failed result manually * Add the resource, group, and groupVersion in Details, so that it will be included in JSON output
1 parent 45bfa13 commit 4c634c0

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

internal/checks/kube/resources.go

+16-8
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"fmt"
66

7-
"golang.org/x/xerrors"
87
"k8s.io/apimachinery/pkg/runtime/schema"
98

109
"cdr.dev/coder-doctor/internal/api"
@@ -46,14 +45,23 @@ func (k *KubernetesChecker) CheckResources(_ context.Context) []*api.CheckResult
4645
}
4746

4847
for versionReq := range k.reqs.ResourceRequirements {
49-
if !resourcesAvailable[*versionReq] {
50-
msg := fmt.Sprintf("missing required resource:%q group:%q version:%q", versionReq.Resource, versionReq.Group, versionReq.Version)
51-
errResult := api.ErrorResult(checkName, msg, xerrors.New(msg))
52-
results = append(results, errResult)
53-
continue
48+
result := &api.CheckResult{
49+
Summary: checkName,
50+
Details: map[string]interface{}{
51+
"resource": versionReq.Resource,
52+
"group": versionReq.Group,
53+
"groupVersion": versionReq.Version,
54+
},
55+
}
56+
57+
if resourcesAvailable[*versionReq] {
58+
result.Summary = fmt.Sprintf("Cluster supports %s resource %s", versionReq.Version, versionReq.Resource)
59+
result.State = api.StatePassed
60+
} else {
61+
result.Summary = fmt.Sprintf("Cluster does not support %s resource %s", versionReq.Version, versionReq.Resource)
62+
result.State = api.StateFailed
5463
}
55-
msg := fmt.Sprintf("found required resource:%q group:%q version:%q", versionReq.Resource, versionReq.Group, versionReq.Version)
56-
results = append(results, api.PassResult(checkName, msg))
64+
results = append(results, result)
5765
}
5866

5967
return results

internal/checks/kube/resources_test.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ func Test_KubernetesChecker_CheckResources(t *testing.T) {
2929
F: func(t *testing.T, results []*api.CheckResult) {
3030
assert.False(t, "results should not be empty", len(results) == 0)
3131
for _, result := range results {
32+
assert.False(t, result.Name+" should have a resource", len(result.Details["resource"].(string)) == 0)
33+
assert.False(t, result.Name+" should have a groupVersion", len(result.Details["groupVersion"].(string)) == 0)
3234
assert.Equal(t, result.Name+" should have no error", nil, result.Details["error"])
3335
assert.Equal(t, result.Name+" should pass", api.StatePassed, result.State)
3436
}
@@ -40,10 +42,10 @@ func Test_KubernetesChecker_CheckResources(t *testing.T) {
4042
F: func(t *testing.T, results []*api.CheckResult) {
4143
assert.False(t, "results should not be empty", len(results) == 0)
4244
for _, result := range results {
43-
resErr, ok := result.Details["error"].(error)
44-
assert.True(t, result.Name+" should have an error", ok && resErr != nil)
45-
assert.ErrorContains(t, result.Name+" should have an expected error", resErr, "missing required resource")
46-
assert.True(t, result.Name+" should fail", result.State == api.StateFailed)
45+
assert.False(t, result.Name+" should have a resource", len(result.Details["resource"].(string)) == 0)
46+
assert.False(t, result.Name+" should have a groupVersion", len(result.Details["groupVersion"].(string)) == 0)
47+
assert.Equal(t, result.Name+" should have no error", nil, result.Details["error"])
48+
assert.Equal(t, result.Name+" should pass", api.StateFailed, result.State)
4749
}
4850
},
4951
},

0 commit comments

Comments
 (0)