MCPcopy Create free account
hub / github.com/rilldata/rill / buildValidationResult

Function buildValidationResult

cli/cmd/validate/validate.go:180–234  ·  view source on GitHub ↗
(resources []*runtimev1.Resource)

Source from the content-addressed store, hash-verified

178}
179
180func buildValidationResult(resources []*runtimev1.Resource) *ValidationResult {
181 result := &ValidationResult{
182 Summary: ValidationSummary{},
183 }
184
185 for _, r := range resources {
186 if r.Meta.Name.Kind == runtime.GlobalProjectParserName.Kind && strings.EqualFold(r.Meta.Name.Name, runtime.GlobalProjectParserName.Name) {
187 parseErrors := parseErrorsFromParser(r)
188 result.Summary.ParseErrors = len(parseErrors)
189 result.ParseErrors = parseErrors
190 var parseWarnings int
191 for _, pe := range r.GetProjectParser().State.ParseErrors {
192 if pe.Warning {
193 parseWarnings++
194 }
195 }
196 result.Summary.ParseWarnings = parseWarnings
197 continue
198 }
199 if r.Meta.Hidden {
200 continue
201 }
202
203 result.Summary.TotalResources++
204
205 status := runtime.PrettifyReconcileStatus(r.Meta.ReconcileStatus)
206 resourceStatus := ResourceStatus{
207 Kind: runtime.PrettifyResourceKind(r.Meta.Name.Kind),
208 Name: r.Meta.Name.Name,
209 Status: status,
210 }
211
212 // just use first file path if multiple for now
213 if len(r.Meta.FilePaths) > 0 {
214 resourceStatus.FilePath = r.Meta.FilePaths[0]
215 }
216
217 if r.Meta.ReconcileError != "" {
218 result.Summary.ReconcileErrors++
219 resourceStatus.Error = r.Meta.ReconcileError
220 // Check if the error is due to context deadline exceeded (timeout)
221 if strings.Contains(r.Meta.ReconcileError, "context deadline exceeded") {
222 resourceStatus.Timeout = true
223 }
224 }
225 if len(r.Meta.ReconcileWarnings) > 0 {
226 result.Summary.ReconcileWarnings++
227 resourceStatus.Warning = strings.Join(r.Meta.ReconcileWarnings, "; ")
228 }
229
230 result.Resources = append(result.Resources, resourceStatus)
231 }
232
233 return result
234}
235
236func parseErrorsFromParser(parserRes *runtimev1.Resource) []ParseError {
237 if parserRes == nil || parserRes.GetProjectParser() == nil {

Callers 1

reconcileAndReportFunction · 0.85

Calls 5

PrettifyReconcileStatusFunction · 0.92
PrettifyResourceKindFunction · 0.92
parseErrorsFromParserFunction · 0.85
GetProjectParserMethod · 0.80
ContainsMethod · 0.80

Tested by

no test coverage detected