Skip to content

Commit 2b7fd56

Browse files
committed
Improved organization of pbench output directory to navigate easier for streams runs
1 parent 8fa7a6f commit 2b7fd56

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

stage/run_recorder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@ func (f *FileBasedRunRecorder) RecordQuery(_ context.Context, _ *Stage, result *
4242
}
4343

4444
func (f *FileBasedRunRecorder) RecordRun(_ context.Context, s *Stage, _ []*QueryResult) {
45-
_ = os.WriteFile(filepath.Join(s.States.OutputPath, s.Id+"_summary.csv"), []byte(f.summaryBuilder.String()), 0644)
45+
_ = os.WriteFile(filepath.Join(s.States.OutputPath, s.States.RunName+"_summary.csv"), []byte(f.summaryBuilder.String()), 0644)
4646
}

stage/stage.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ func (s *Stage) run(ctx context.Context) (returnErr error) {
233233
s.setDefaults()
234234
s.prepareClient()
235235
s.propagateStates()
236+
s.createNextStagesOutputDirectories()
236237
preStageErr := s.runShellScripts(ctx, s.PreStageShellScripts)
237238
if preStageErr != nil {
238239
return fmt.Errorf("pre-stage script execution failed: %w", preStageErr)
@@ -524,7 +525,7 @@ func (s *Stage) runQuery(ctx context.Context, query *Query) (result *QueryResult
524525
)
525526
if *s.SaveOutput {
526527
queryOutputFile, err = os.OpenFile(
527-
filepath.Join(s.States.OutputPath, querySourceStr)+".output",
528+
filepath.Join(s.States.OutputPath, s.Id, querySourceStr)+".output",
528529
utils.OpenNewFileFlags, 0644)
529530
if err != nil {
530531
return result, err

stage/stage_utils.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ func (s *Stage) saveQueryJsonFile(result *QueryResult) {
290290
querySourceStr := s.querySourceString(result)
291291
{
292292
queryJsonFile, err := os.OpenFile(
293-
filepath.Join(s.States.OutputPath, querySourceStr)+".json",
293+
filepath.Join(s.States.OutputPath, s.Id, querySourceStr)+".json",
294294
utils.OpenNewFileFlags, 0644)
295295
checkErr(err)
296296
if err == nil {
@@ -302,7 +302,7 @@ func (s *Stage) saveQueryJsonFile(result *QueryResult) {
302302
}
303303
if result.QueryError != nil {
304304
queryErrorFile, err := os.OpenFile(
305-
filepath.Join(s.States.OutputPath, querySourceStr)+".error.json",
305+
filepath.Join(s.States.OutputPath, s.Id, querySourceStr)+".error.json",
306306
utils.OpenNewFileFlags, 0644)
307307
checkErr(err)
308308
if err == nil {
@@ -332,7 +332,7 @@ func (s *Stage) saveColumnMetadataFile(qr *presto.QueryResults, result *QueryRes
332332
}
333333
}()
334334
columnMetadataFile, ioErr := os.OpenFile(
335-
filepath.Join(s.States.OutputPath, querySourceStr)+".cols.json",
335+
filepath.Join(s.States.OutputPath, s.Id, querySourceStr)+".cols.json",
336336
utils.OpenNewFileFlags, 0644)
337337
if ioErr != nil {
338338
return ioErr
@@ -372,3 +372,13 @@ func (s *Stage) querySourceString(result *QueryResult) (sourceStr string) {
372372
}
373373
return
374374
}
375+
376+
func (s *Stage) createNextStagesOutputDirectories() {
377+
parentOutputPath := s.States.OutputPath
378+
utils.PrepareOutputDirectory(filepath.Join(parentOutputPath, s.Id))
379+
for _, nextStage := range s.NextStages {
380+
nextStage.States.OutputPath = filepath.Join(parentOutputPath, nextStage.Id)
381+
utils.PrepareOutputDirectory(nextStage.States.OutputPath)
382+
}
383+
s.States.OutputPath = parentOutputPath
384+
}

0 commit comments

Comments
 (0)