@@ -2,6 +2,7 @@ package subcmd
22
33import (
44 "context"
5+ "errors"
56 "fmt"
67 "path/filepath"
78
@@ -144,69 +145,27 @@ func execValidation(ctx context.Context, clusterConfig *config.ClusterConfig) er
144145 return err
145146 }
146147
147- numInvalidResourceChecks := 0
148- numValidResourceChecks := 0
149- numSkippedResourceChecks := 0
150-
151- for _ , result := range results {
152- for _ , checkResult := range result .CheckResults {
153- switch checkResult .Status {
154- case validation .StatusValid :
155- numValidResourceChecks ++
156- log .Debugf (
157- "Resource %s in file %s OK according to check %s" ,
158- result .Resource .PrettyName (),
159- result .Resource .Path ,
160- checkResult .CheckName ,
161- )
162- case validation .StatusSkipped :
163- numSkippedResourceChecks ++
164- log .Debugf (
165- "Resource %s in file %s was skipped by check %s" ,
166- result .Resource .PrettyName (),
167- result .Resource .Path ,
168- checkResult .CheckName ,
169- )
170- case validation .StatusError :
171- numInvalidResourceChecks ++
172- log .Errorf (
173- "Resource %s in file %s could not be processed by check %s: %s" ,
174- result .Resource .PrettyName (),
175- result .Resource .Path ,
176- checkResult .CheckName ,
177- checkResult .Message ,
178- )
179- case validation .StatusInvalid :
180- numInvalidResourceChecks ++
181- log .Errorf (
182- "Resource %s in file %s is invalid according to check %s: %s" ,
183- result .Resource .PrettyName (),
184- result .Resource .Path ,
185- checkResult .CheckName ,
186- checkResult .Message ,
187- )
188- case validation .StatusEmpty :
189- default :
190- log .Infof ("Unrecognized result type: %+v" , result )
191- }
148+ counts := validation .CountsByStatus (results )
149+ resultsWithIssues := validation .ResultsWithIssues (results )
150+
151+ if len (resultsWithIssues ) > 0 {
152+ log .Warnf ("Found %d resources with potential issues" , len (resultsWithIssues ))
153+ for _ , result := range resultsWithIssues {
154+ fmt .Println (
155+ validation .ResultTable (
156+ result ,
157+ clusterConfig .DescriptiveName (),
158+ clusterConfig .ExpandedPath ,
159+ debug ,
160+ ),
161+ )
192162 }
193163 }
194164
195- if numInvalidResourceChecks > 0 {
196- return fmt .Errorf (
197- "Validation failed for %d resources in cluster %s (%d checks valid, %d skipped)" ,
198- numInvalidResourceChecks ,
199- clusterConfig .DescriptiveName (),
200- numValidResourceChecks ,
201- numSkippedResourceChecks ,
202- )
165+ if counts [validation .StatusError ]+ counts [validation .StatusInvalid ] > 0 {
166+ return errors .New ("Validation failed" )
203167 }
204168
205- log .Infof (
206- "Validation of cluster %s passed (%d checks valid, %d skipped)" ,
207- clusterConfig .DescriptiveName (),
208- numValidResourceChecks ,
209- numSkippedResourceChecks ,
210- )
169+ log .Infof ("Validation passed" )
211170 return nil
212171}
0 commit comments