Skip to content

The mockup lab — six iDRACs, zero hardware

Dell publishes real Redfish captures of iDRAC-managed servers — complete resource trees dumped from live machines. mcidrac’s test harness serves them with DMTF’s Redfish-Mockup-Server over HTTPS, so you can learn the whole tool surface (and we can test it) against genuine iDRAC data with no PowerEdge in sight.

You need Docker, Python 3.11+ with uv, and a clone of the mcidrac repository.

Terminal window
cd mcidrac
scripts/mockup-up.sh all

First run downloads the captures (~70 MB). You get six BMCs on localhost, each a real machine’s data:

Name Hardware Generation Firmware
r660xs PowerEdge R660xs iDRAC9, 16G 7.20.10.05
r770 PowerEdge R770 iDRAC10, 17G 1.10.17.00
r7725 PowerEdge R7725 iDRAC10, 17G 1.20.70.50
xe9712 PowerEdge XE9712 iDRAC10, 17G 1.30.07.10
basic basic config iDRAC9, 15G 7.10.30.00
gpu-dpu GPU/DPU config iDRAC9, 16G 7.10.50.00

The script writes a ready-made registry at .mockup/idracs.toml.

Terminal window
MCIDRAC_CONFIG=.mockup/idracs.toml uv run mcidrac --check

Six iDRACs configured. Now explore — everything in the read surface works: idrac_info shows real service tags, idrac_inventory lists the R660xs’s actual DIMMs and drives, idrac_sel pages through its real event log, and idrac_firmware reports what was genuinely installed.

Terminal window
MCIDRAC_CONFIG=.mockup/idracs.toml python3 scripts/shakedown.py

This drives the 15-tool read ladder against all six boxes over MCP stdio — 90 tool calls across two iDRAC generations. It’s the same sweep that caught a real iDRAC10 incompatibility during development (see Firmware quirks).

Static mockups can’t change state, so the repo includes simdrac — a behavioral simulator that serves the R660xs capture for reads and implements Dell’s write semantics live: a power state machine, virtual media insert/eject, BIOS jobs that walk Scheduled → Running → Completed, read-only attribute rejections, and the SCP export task quirk.

Terminal window
python3 scripts/write-shakedown.py

Twenty destructive-tool steps run with outcome assertions — including the guardrails: double-mounts rejected, wrong-box SCP imports refused, powering off an already-off box returns an honest error.

Terminal window
scripts/mockup-up.sh down

You’ve now driven every mcidrac tool against real iDRAC data. When a physical PowerEdge shows up, the only new things are a registry entry with real credentials — and consequences.