Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/nornir

.nornir/howto-viz-operations.md

How-to: run operations from nornir viz

A task-oriented guide to the operation buttons in nornir viz (nornir-ui) and the new 🧬 nornir root pane. Design + wiring: viz-operation-buttons.md.

All operations are server-backed: launch the viz against a running nornir-server (NORNIR_SERVER=… NORNIR_SERVER_TOKEN=… nornir viz). In local mode each op-bearing pane shows a one-line hint instead, and the CLI runs the op locally (see the CLI twins). Every button has a CLI equivalent — there is no GUI-only capability.

Add / kill / populate a workspace — the 🧬 nornir pane

Open the 🧬 nornir tab (the first/home tab). It is where workspaces are born and killed; every other tab is a view onto one workspace.

  1. Server status — press ⟳ status to ping the server (Health.Ping); it shows version · N repo(s).

  2. Add workspace — fill the form:

    • name — the workspace name (e.g. njord),
    • descriptor — for a monitored workspace, the server-readable nornir-workspace.toml path/URL; leave empty for pushed/external,
    • mode — monitored | pushed | external,
    • poll — e.g. 60s. Press ➕ Add workspace. It registers AND eager-populates (clones members + builds the warehouse). The picker re-lists immediately.
    • CLI: nornir workspace add <name> --descriptor <path> --monitored
  3. Kill workspace — pick the target, press 🗑 Kill…, then ✓ confirm kill (two-step, since it's destructive). If you kill the active workspace the viz falls back to the first remaining one.

    • CLI: nornir workspace rm <name>
  4. Populate — clone members now, build async (instant clone, background build). CLI: nornir workspace populate <name>.

  5. Refresh / poll-now — force a fetch + rebuild now. CLI: nornir workspace fetch <name>.

Run the test matrix — the 🧪 Test pane

In the 🧪 Test pane's top strip:

The result line shows the per-repo summary the CLI prints.

Run the benches — the 📈 Bench pane

In the 📈 Bench pane's controls row, press ▶ Run bencher → ✓ run (HEAVY confirm). It runs the benches server-side (Ops.RunBench) and persists a BenchRun; the history charts + live telemetry then reflect it.

Run the release gate — the 🚀 Release pane

In the 🚀 Release pane (top strip, or the empty-state body), press 🚀 Release (heavy gate) → ✓ run release gate (HEAVY / release-grade confirm). It runs the full release gate across the build order (Ops.RunRelease) and persists release_events, so the Release op-DAG + 📡 Live pane light up with the run you just made.

Seeing what you pressed (data, not pixels)

Every pane writes what it renders to $NORNIR_VIZ_STATE (LAW #6). The operation state lives under:

so a robot driver (or you) can confirm the op fired and read its outcome without a screen. Every click also lands in the action-trail (📜 toggle in the bar).