| 490 | } |
| 491 | |
| 492 | func createTaskReport(taskReport map[string]taskResult) (string, error) { |
| 493 | // nolint: gosec |
| 494 | dumpHandle, err := os.Create(filepath.Join(os.TempDir(), taskResultBaseName)) |
| 495 | if err != nil { |
| 496 | return "", ErrCreatingTemporaryFile |
| 497 | } |
| 498 | defer func() { _ = dumpHandle.Close() }() |
| 499 | |
| 500 | encoder := newFormattedEncoder(dumpHandle) |
| 501 | |
| 502 | err = encoder.Encode(taskReport) |
| 503 | if err != nil { |
| 504 | return "", fmt.Errorf("error encoding task results: %w", err) |
| 505 | } |
| 506 | |
| 507 | return dumpHandle.Name(), nil |
| 508 | } |
| 509 | |
| 510 | func runJobs(ctx context.Context, jobs []collectJob, log *zerolog.Logger) map[string]taskResult { |
| 511 | jobReport := make(map[string]taskResult, len(jobs)) |