Files
bee/scenarios
Mikhail ChusavitinandClaude Sonnet 5 d108df7fe9 platform/webui: add scenario description, show it in the Scenario page's list
ScenarioSpec gains an optional "description" field. Listing (both
ListLocalScenarioFiles and ListScenarioFilesOnRemovableMedia, via the new
scenarioDescription helper) reads it out of each file without requiring
full ParseScenarioJSON validation to succeed, so a listing never hides a
scenario over an unrelated validation issue. The webui Scenario page now
renders Name/Description/Found-on/Run instead of just Name/Found-on — a
bare filename rarely tells anyone but the author what a scenario actually
does.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 19:28:07 +03:00
..

bee test scenarios

A scenario is a plain JSON file describing an ad-hoc diagnostic run: which commands to execute (sequentially or in parallel) and what to sample in the background while they run — without hardcoding a new test into bee's own code. See audit/internal/platform/scenario.go (ParseScenarioJSON, ScenarioSpec) for the full field reference.

Running one

bee run <path-to-file.json>

or, for a bare name (no /, no .json):

bee run <name>

which resolves scenarios/<name>.json by checking, in order: (1) the scenarios shipped with the image itself — always available, no media needed — then (2) any mounted removable drive (e.g. the same USB stick already plugged in for blackbox), for scenarios authored on another machine and dropped there without a network path onto the host. Same resolution powers the "6. Scenario" page in the web UI.

bee scenario run <arg> is the same command under a longer name.

Files checked in here

  • nvbandwidth-all-gpu-power-watch.json — the scenario that reproduced the CG480-S6053 reboot: full nvbandwidth across all GPUs at once (the per-GPU-socket passes alone never reproduced it), with ipmitool sensor and nvidia-smi power/temp sampled every 2s in the background so a crash mid-run still leaves telemetry to check for a power-delivery correlation. gpu_indices is host-specific — update it to match the GPU indices nvidia-smi -L actually reports on the box under test before running.

This directory is the source of truth; iso/builder/build.sh's "preparing staged overlay" step rsyncs the whole overlay tree — including a checked-in copy under iso/overlay/usr/share/bee/scenarios/ — into the built image, so anything meant to ship baked-in needs to exist in both places (this repo doesn't auto-copy one into the other). platform.LocalScenariosDir (/usr/share/bee/scenarios on the built host) is what bee run <name>/the web UI actually reads at runtime.

Adding more

Not every scenario needs to ship in the image. For a one-off test on a specific host (especially air-gapped), it's simpler to write the JSON file directly onto the blackbox USB stick under scenarios/<name>.json and run bee run <name> — no code change, no rebuild. Check a scenario into iso/overlay/usr/share/bee/scenarios/ only when it's worth keeping around as a reusable/named test that should be available on every host without a USB stick.