fix(webui): repair broken scenario Run button onclick, dedupe build.sh overlay staging
- page_scenario.go: onclick built via JSON.stringify() embedded raw double
quotes inside a double-quoted HTML attribute, truncating the attribute so
the click handler never compiled; pass the name through an escaped
data-scenario-name attribute instead.
- build.sh: overlay staging rsyncs (OVERLAY_DIR->stage, stage->includes.chroot)
ran without --delete, so a scenario removed from the repo (a9924b0) stayed
baked into every ISO built from the persistent stage cache since — the
"second script" in the Scenario page's list.
- blackbox: rewritten around a deterministic local zip + incremental
patch-the-changed-suffix onto removable media, instead of walking/copying
~90 files through a synchronous ntfs-3g FUSE mount every cycle. journalctl
captures are now "--since last sync" (were "--since boot", growing with
uptime) and metrics.db is excluded (was copied whole every cycle).
- scenario: nvbandwidth-acs-ab now escalates GPU count (same-socket pair,
other socket's pair, one cross-socket pair, all GPUs) under each ACS state
instead of always running all 6 GPUs at once, using a new `bee
gpu-bandwidth-groups` subcommand that discovers socket layout from
`nvidia-smi topo -m` at runtime — gpu_indices is host-specific, so this
can't be baked into the scenario file.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -68,8 +68,11 @@ func keepForBundleCopy(rel string, _ os.FileInfo) bool {
|
||||
// export/ here is expected (e.g. a SAT run's narrative disk report).
|
||||
//
|
||||
// Used by both BuildSupportBundle (on-demand tar.gz) and the blackbox USB
|
||||
// mirror, so both artifacts share one shape.
|
||||
func categorizeExportTree(srcExportDir, destRoot string) error {
|
||||
// mirror, so both artifacts share one shape. includeMetricsDB is false for
|
||||
// the blackbox mirror: metrics.db is a live, growing SQLite file and copying
|
||||
// it whole every sync cycle was a major contributor to slow blackbox cycles
|
||||
// (see blackbox_archive.go); the on-demand support bundle still wants it.
|
||||
func categorizeExportTree(srcExportDir, destRoot string, includeMetricsDB bool) error {
|
||||
exportDir := filepath.Join(destRoot, "export")
|
||||
statusDir := filepath.Join(destRoot, "status")
|
||||
tasksDir := filepath.Join(destRoot, "tasks")
|
||||
@@ -134,9 +137,11 @@ func categorizeExportTree(srcExportDir, destRoot string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err := os.Stat(DefaultMetricsDBPath); err == nil {
|
||||
if err := copyPath(DefaultMetricsDBPath, filepath.Join(statusDir, "metrics.db")); err != nil {
|
||||
return err
|
||||
if includeMetricsDB {
|
||||
if _, err := os.Stat(DefaultMetricsDBPath); err == nil {
|
||||
if err := copyPath(DefaultMetricsDBPath, filepath.Join(statusDir, "metrics.db")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user