Skip to content

Commit 92a2c46

Browse files
joschiGitHub CopilotClaude Haiku 4.5
committed
validate: regenerate aggregated metadata files after deletion
- After deleting failed checksum files, regenerate all aggregated metadata - Read all.json to ensure current state - Call AggregateMetadata to regenerate ea.json, ga.json, and hierarchical files - Regeneration happens in docs/metadata/{release_type}/{os}/{arch}/{image_type}/{jvm_impl}/{vendor}.json This ensures that: - all.json is the single source of truth maintained in update command - Aggregated files (ea.json, ga.json, hierarchical) stay in sync with changes - After deletions in validate command, aggregation reflects removed entries - Directory structure always contains consistent, up-to-date metadata All tests pass. Co-authored-by: GitHub Copilot <[email protected]> Co-authored-by: Claude Haiku 4.5 <[email protected]>
1 parent bdb8819 commit 92a2c46

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

cmd/java-metadata/main.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,13 @@ func runValidate(parentCtx context.Context, metadataDir string, concurrency int,
566566
}
567567

568568
logger.Info(parentCtx, "deletion complete", "checksumsDeleted", deletedChecksumCount, "failed", deleteFailedCount)
569+
570+
// Regenerate aggregated metadata files after deletions
571+
logger.Info(parentCtx, "regenerating aggregated metadata files")
572+
if err := regenerateAggregateMetadata(parentCtx, metadataDir, allMetadata); err != nil {
573+
logger.Error(parentCtx, "failed to regenerate aggregated metadata", "error", err)
574+
// Don't fail validation if aggregation fails - deletions were successful
575+
}
569576
}
570577

571578
return fmt.Errorf("%d URLs are not accessible", len(failedEntries))
@@ -574,3 +581,21 @@ func runValidate(parentCtx context.Context, metadataDir string, concurrency int,
574581
logger.Info(parentCtx, "all URLs are accessible")
575582
return nil
576583
}
584+
585+
// regenerateAggregateMetadata reads all.json and regenerates aggregated metadata files
586+
func regenerateAggregateMetadata(ctx context.Context, metadataDir string, allMetadata []models.Metadata) error {
587+
// Read all.json to ensure we have the latest state
588+
allJsonPath := filepath.Join(metadataDir, "all.json")
589+
data, err := os.ReadFile(allJsonPath)
590+
if err != nil {
591+
return fmt.Errorf("failed to read all.json: %w", err)
592+
}
593+
594+
var currentMetadata models.MetadataList
595+
if err := json.Unmarshal(data, &currentMetadata); err != nil {
596+
return fmt.Errorf("failed to parse all.json: %w", err)
597+
}
598+
599+
// Regenerate all aggregated files
600+
return output.AggregateMetadata(currentMetadata, metadataDir)
601+
}

0 commit comments

Comments
 (0)