Keep failed processing reports consistent
This commit is contained in:
@@ -19,7 +19,7 @@ type Input struct {
|
||||
Transcript *schema.SourceTranscript
|
||||
Output diagnostics.OutputSelection
|
||||
InitialReports diagnostics.ReportBundle
|
||||
FailedReports diagnostics.ReportBundle
|
||||
FailedReports func(error, []diagnostics.FileFailure) diagnostics.ReportBundle
|
||||
Debug *DebugInput
|
||||
}
|
||||
|
||||
@@ -65,18 +65,30 @@ func Prepare(ctx context.Context, input Input) (*Prepared, error) {
|
||||
_ = session.Close()
|
||||
return nil, err
|
||||
}
|
||||
if err := session.Initialize(input.InitialReports, input.FailedReports); err != nil {
|
||||
failedReports := func(primary error) func([]diagnostics.FileFailure) diagnostics.ReportBundle {
|
||||
return func(failures []diagnostics.FileFailure) diagnostics.ReportBundle {
|
||||
if input.FailedReports == nil {
|
||||
return diagnostics.ReportBundle{}
|
||||
}
|
||||
return input.FailedReports(primary, failures)
|
||||
}
|
||||
}
|
||||
if err := session.Initialize(input.InitialReports, failedReports(nil)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
cancelOutput := func(err error) error {
|
||||
failed := failedReports(err)
|
||||
return session.Finish(err, nil, failed(nil), failed)
|
||||
}
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, session.Finish(err, nil, input.FailedReports, func([]diagnostics.FileFailure) diagnostics.ReportBundle { return input.FailedReports })
|
||||
return nil, cancelOutput(err)
|
||||
}
|
||||
result := &Prepared{Output: session}
|
||||
if input.Debug != nil {
|
||||
result.Debug, result.Warnings = session.PrepareDebug(input.Debug.WorkDir, input.Debug.RunID, input.Debug.Metadata, input.Debug.EffectiveConfig, input.Debug.Secrets...)
|
||||
}
|
||||
if err := ctx.Err(); err != nil {
|
||||
return nil, session.Finish(err, nil, input.FailedReports, func([]diagnostics.FileFailure) diagnostics.ReportBundle { return input.FailedReports })
|
||||
return nil, cancelOutput(err)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -122,8 +122,10 @@ func Build(input BuildInput) reporting.Snapshot {
|
||||
if record.StageIndex == nil {
|
||||
record.StageIndex = failure.Origin.StageIndex
|
||||
}
|
||||
chunk := failure.Origin.SectionIndex
|
||||
record.ChunkIndex = &chunk
|
||||
if failure.Origin.Kind != "" {
|
||||
chunk := failure.Origin.SectionIndex
|
||||
record.ChunkIndex = &chunk
|
||||
}
|
||||
record.Operation = string(failure.Origin.Kind)
|
||||
record.Validator = failure.Origin.ValidatorName
|
||||
record.BatchIndex = failure.Origin.BatchIndex
|
||||
|
||||
Reference in New Issue
Block a user