2026SMS InfoComm
SMS Pre-Check
Pre-test go/no-go validation gate
- Bash
- PowerShell
- Redfish
- IPMI
- SSH
- to screen a unit before final test
- ~1 min
- exit code, with manual-fix steps
- Go / no-go
At a glance
- A go/no-go pre-check a technician runs before starting the final server test, so a unit that was never going to pass doesn't burn a limited test slot.
- Runs a dozen gated checks over the BMC and host: power-on, OS boot, serial-number programming, active faults, accelerator/drive count, firmware presence, console access, network link type, PCIe link health, and sensor sanity.
- Ends in a summary table and a go/no-go exit code; each failure is followed by copy-paste “how to check manually” steps pre-filled with the unit's details.
- The technician enters only a rack/slot location; a shared inventory resolves the management and host addresses, and credentials are auto-probed.
- Optional add-on checks for fan-RPM ramp and a short CPU/NVMe/GPU stress smoke test, always safely restoring hardware state (fan control back to auto, even on Ctrl-C).
- Reuses the jump-host scaffolding (inventory, credential probe, ship-a-worker launchers) from the NVDebug tooling; every check degrades to a clearly labeled SKIP rather than a false failure when it can't be evaluated.
A fast, do-this-first gate for the server test floor: enter a rack/slot, and in about a minute you know whether a unit is even worth putting on a scarce, hours-long final-test station, with a red/green summary and manual-fix steps for anything that fails.
Purpose
Final server validation runs on a limited number of test stations, and a full test is long. Starting one on a unit with an obvious blocker (it won't power on, won't boot the OS, is missing a serial number, has an active fault, or has a mis-set link) wastes a slot another unit needed. I built this pre-check so a technician can screen a unit in about a minute before committing a station: catch the cheap-to-detect failures up front, and only start the real test on units that can plausibly pass.
Goals
- Cheap and fast. Seconds-to-a-minute screening, run from the same jump host the technicians already use.
- Location-only input. The tech types a rack/slot; everything else (addresses, credentials, expected counts) is resolved automatically.
- Never a false stop. Anything that can't be evaluated reports SKIP and doesn't flip the result; only real failures fail.
- Actionable. Every failure explains how to verify and fix it by hand, with commands pre-filled for that unit.
Development process
- Mirrored the real test's entry conditions. I walked the final-test procedure and turned its earliest, highest-yield gates into standalone checks (power, OS boot, serials, faults, counts, firmware, console, link type, PCIe health, sensors) so a pass here strongly predicts the test won't fail out immediately.
- Evidence-first output. As with the diagnostic tools, every command is echoed with its full raw output above the parsed verdict, so a technician can trust, and re-run, exactly what the tool did.
- Graceful degradation. The floor's network reachability and available tooling vary, so each check independently degrades to a labeled SKIP instead of blocking, and the final verdict is only about genuine failures.
- Reuse over rebuild. It reuses the location inventory, credential probing, and ship-a-worker-to-the-jump-host launchers from the NVDebug tooling, so the two tools feel identical to operate.
- Optional deeper gates. I added opt-in fan-ramp and short stress-smoke checks for cases where a quick load test is worth the extra time, with hardware state always restored afterward.