Reuse collected batch data

This commit is contained in:
2026-06-17 16:04:14 +00:00
parent 6f9255105d
commit a9d87bdbaa
2 changed files with 98 additions and 63 deletions

View File

@@ -295,22 +295,14 @@ func RunBatchDetailed(ctx context.Context, req BatchRequest) (*BatchResult, erro
}
for _, planned := range plannedReports {
resolved := planned.Resolved
item := batchReportResult(resolved)
item := batchReportResult(planned)
if paths, err := store.Paths(resolved); err == nil {
item.DataPackagePath = paths.DataPackage
item.PreflightPath = paths.Preflight
item.ReportPath = paths.RenderedReport
item.MetadataPath = paths.Metadata
}
collection, err := collectWeather(ctx, req.Config, req.Collector)
if err != nil {
item.Status = "failed"
item.Error = err.Error()
result.Failed++
result.Reports = append(result.Reports, item)
continue
}
outputPath := batchOutputPath(req.OutputDir, resolved.Definition)
outputPath := plannedBatchOutputPath(req.OutputDir, planned)
reportResult, err := GenerateReport(ctx, ReportRequest{
Config: req.Config,
Resolved: resolved,
@@ -357,7 +349,8 @@ func RunBatchDetailed(ctx context.Context, req BatchRequest) (*BatchResult, erro
return nil, fmt.Errorf("run is not implemented")
}
func batchReportResult(resolved report.Resolved) BatchReportResult {
func batchReportResult(planned plannedBatchReport) BatchReportResult {
resolved := planned.Resolved
metadata := resolved.Metadata()
return BatchReportResult{
ReportID: resolved.Definition.ID,
@@ -369,11 +362,18 @@ func batchReportResult(resolved report.Resolved) BatchReportResult {
}
}
func batchOutputPath(outputDir string, definition report.Definition) string {
if outputDir == "" || definition.BatchOutputName == "" {
func plannedBatchOutputPath(outputDir string, planned plannedBatchReport) string {
if outputDir == "" {
return ""
}
return filepath.Join(outputDir, definition.BatchOutputName)
outputCopyName := planned.OutputCopyName
if outputCopyName == "" {
outputCopyName = planned.Resolved.Definition.BatchOutputName
}
if outputCopyName == "" {
return ""
}
return filepath.Join(outputDir, outputCopyName)
}
func ResolveGenerate(req GenerateRequest, now time.Time) (report.Resolved, error) {