Files
taodengandClaude Fable 5 1d29a2f289 feat: aci-sim query helper + onboarding fixes (v0.17.0)
Clean-room README test found a newcomer hits failures in the first 5 min —
all doc/script, not sim bugs. Fixes:
- scripts/run.sh: use ./.venv/bin/python (was bare `python` → ModuleNotFoundError:
  uvicorn unless the venv was activated; now matches sandbox-up.sh).
- NEW `aci-sim query CLASS [--dn/--host/--json]`: stdlib aaaLogin→cookie→query
  helper so newcomers don't hand-roll auth cookies (the old README smoke test
  `curl class/fabricNode.json` had no auth → returned an APIC error envelope).
- README: 60-second quickstart + embedded topology screenshot (docs/images/
  topology.png), port-mode leads with `aci-sim run`, smoke test uses `aci-sim
  query`, install notes git+https is package-only.

900 tests pass (+12 for aci-sim query).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 22:51:55 +10:00

24 lines
1.2 KiB
Markdown

# aci-sim — project notes for Claude
A faithful REST simulator of a 2-site Cisco ACI fabric (per-site APIC + one
NDO/MSO plane), driven entirely by `topology.yaml`. Python 3.11+, FastAPI +
uvicorn + Pydantic v2, in-memory MIT object store, no external dependencies.
Full architecture/contract detail: `README.md`, `docs/CONTRACT.md` (the
authoritative ACI/NDO REST behavior contract), `docs/DESIGN.md` (module map +
design decisions + phase-by-phase build history).
Two run modes: **port mode** (`scripts/run.sh`, shared bind + distinct ports
8443/8444/8445) and **sandbox mode** (`scripts/sandbox-up.sh`, one loopback IP
per device on `:443`, needed for NDO auto-discovery clients that hardcode
port 443). Primary public use case: running Ansible `cisco.aci` playbooks
against it directly — see `examples/ansible/`.
Test suite: `.venv/bin/python -m pytest -q` (900 tests, must stay green).
Lint: `ruff check .` (non-blocking in CI — pre-existing baseline, see
`.github/workflows/ci.yml`).
Version lives in `pyproject.toml`; changes are logged in `CHANGELOG.md`
(newest entry at the top, `Keep a Changelog` format). The ACI/NDO object
catalog is documented in `docs/CONTRACT.md` §6; environment variables in
`README.md` §6.