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.
-
Server status — press
⟳ statusto ping the server (Health.Ping); it showsversion · N repo(s). -
Add workspace — fill the form:
- name — the workspace name (e.g.
njord), - descriptor — for a monitored workspace, the server-readable
nornir-workspace.tomlpath/URL; leave empty forpushed/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
- name — the workspace name (e.g.
-
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>
- CLI:
-
Populate — clone members now, build async (instant clone, background build). CLI:
nornir workspace populate <name>. -
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:
-
▶ Run full matrix — the HEAVY, release-grade run across every repo. It arms a confirm ("⚠ heavy / long-running — confirm?"); press ✓ run full matrix to fire
Ops.RunTestMatrix. Rows land intest_results; the matrix reloads to show them.- CLI (thin):
NORNIR_SERVER=… nornir test all
- CLI (thin):
-
▶ Run — runs the matrix for the first repo only (no confirm).
- CLI (thin):
NORNIR_SERVER=… nornir test run <repo>
- CLI (thin):
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.
- CLI (thin):
NORNIR_SERVER=… nornir bench run <repo>
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.
- CLI (thin):
NORNIR_SERVER=… nornir release gate all
Seeing what you pressed (data, not pixels)
Every pane writes what it renders to $NORNIR_VIZ_STATE (LAW #6). The operation state lives under:
nornir→{ buttons[], add_form, kill, results, server }test.ops/test.run_result,bench.ops/bench.run_result,release.ops/release.run_result
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).