mirror of
https://github.com/dtzp555-max/aci-sim.git
synced 2026-07-19 09:46:33 +00:00
Initial public release — aci-sim v0.16.0
aci-sim is a stateful REST simulator of a 2-site Cisco ACI fabric (per-site APIC + ND/NDO management planes) — for testing ACI automation (Ansible cisco.aci / cisco.mso, aci-py, custom REST clients) and CI gates without real hardware. Highlights: APIC + NDO REST surface served from one in-memory MIT built from a declarative topology.yaml; port mode + sandbox (real per-device IPs on :443) run modes; LLDP/CDP neighbor visibility; NDO->APIC deploy mirror (multi-site templates materialize onto the target sites' APIC stores); real-APIC fvBD default attributes; file-backed state save/restore; an `aci-sim` CLI (validate/show/graph/run/new/init/lldp); and an 888-test suite. History squashed for the public release. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# 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` (888 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.
|
||||
Reference in New Issue
Block a user