131e2e63d2
Record offline 161 passed, green test-vsphere probes, and full pulumi-tests 7/7 with REST matrix 1987/1987 (critical=0); note the Terraform cookbook binary mismatch separately.
85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
**Language / Язык:** [English](compatibility.md) | [Русский](ru/compatibility.md)
|
||
|
||
# Compatibility
|
||
|
||
This document explains how the simulator claims compatibility with the
|
||
vSphere Automation API across catalog majors **6–9**. Prefer live reports
|
||
when the process is running.
|
||
|
||
## Live reports
|
||
|
||
| URL | Format |
|
||
|---|---|
|
||
| `/ui/api/compatibility?major=N` | JSON |
|
||
|
||
The Web UI also exposes a compatibility panel driven by this endpoint.
|
||
|
||
## Registry vs verified surface coverage
|
||
|
||
| Major | vSphere label | Implemented / universe | Coverage |
|
||
|---|---|---:|---:|
|
||
| 6 | 7.0 | 31 / 1077 | 2.9% |
|
||
| 7 | 7.0 U3 | 77 / 1077 | 7.2% |
|
||
| 8 | 8.0 | 103 / 1077 | 9.6% |
|
||
| 9 | 8.0 U2 (Automation 9.1 surface) | **1077 / 1077** | **100%** |
|
||
|
||
- **Universe** — unique verb+path routes derived from the public
|
||
[vSphere Automation API operations index](https://developer.broadcom.com/xapis/vsphere-automation-api/latest/operation-index/)
|
||
(1348 documented operations → ~1037 unique routes → 1077 registered in this
|
||
simulator's route table, since some paths back multiple named operations).
|
||
- **Implemented (per major)** — routes whose catalog floor
|
||
(`app/vsphere/contracts/matrix.py`) is at or below that major. This is a
|
||
**catalog/documentation** score, not a live-traffic gate.
|
||
- **Runtime** — regardless of the applied catalog major, every registered
|
||
route is always served by its real handler (104 deep handlers) or the
|
||
DB-backed stub surface. See [API surface](api-surface.md).
|
||
|
||
After **Apply as runtime** (`POST /ui/api/contract/apply?major=N`), the live
|
||
report loads that major's ledger (`evidence/vsphere-{version}.json`) so the
|
||
Web UI compatibility panel reflects the selected major.
|
||
|
||
## Evidence dimensions
|
||
|
||
Per-major ledgers in `evidence/vsphere-{version}.json` record `declared`,
|
||
`implemented`, `observed`, and `verified` counts plus per-HTTP-verb and
|
||
per-domain (`auth_session`, `inventory`, …) breakdowns. Regenerate with:
|
||
|
||
```bash
|
||
make evidence # app/evidence_gen.py
|
||
make vsphere-bundles # stub OpenAPI matrices + evidence ledgers together
|
||
```
|
||
|
||
Executable backing for those claims:
|
||
|
||
| Suite | Role |
|
||
|---|---|
|
||
| `tests/compatibility/test_verified_surface.py` | hot-swap + ledger drift + score gates |
|
||
| `tests/compatibility/test_group_smoke.py` | representative REST group mutations with PostgreSQL |
|
||
| `tests/compatibility/test_vsphere_pyvmomi.py` | external pyvmomi SOAP smoke |
|
||
| `tests/integration/test_vsphere_full_api.py` | broad REST/SOAP integration coverage |
|
||
|
||
Additional cookbooks under [`examples/`](../examples/README.md) and the
|
||
`pulumi-vsphere` lab suite under [`pulumi-tests/`](../pulumi-tests/README.md)
|
||
(`make pulumi-tests`) are manual or CI-optional depending on the stack.
|
||
|
||
### Latest lab run (2026-07-18)
|
||
|
||
| Suite | Result |
|
||
|---|---|
|
||
| `make test` (offline) | **161 passed** |
|
||
| `make test-vsphere` (pytest + surface/matrix/dump/nonempty) | **73** pytest passed; probes **0 failures** (Terraform cookbook binary mismatch only) |
|
||
| `make pulumi-tests` (full hybrid) | **7 / 7 passed**; Layer A REST **1987 / 1987**, `critical=0` |
|
||
|
||
Details and report paths: [`pulumi-tests/README.md`](../pulumi-tests/README.md#latest-lab-run-2026-07-18).
|
||
|
||
## Known behavioural limits
|
||
|
||
| Area | Behaviour |
|
||
|---|---|
|
||
| External systems | NSX Manager, live LDAP/SAML/OIDC IdPs, and ACME directories do not contact real remotes; seeded/local state only |
|
||
| TLS | Local self-signed development gateway only (Compose); use your own certs / cert-manager for real deployments |
|
||
| Hypervisor | No real ESXi/KVM execution; no binary NFC uploads |
|
||
| Observation corpus | Sanitized real-vCenter observation data remains limited; deep semantic parity is verified path-by-path via the suites above, not by exhaustive production diffing |
|
||
|
||
Historical release notes: [compatibility-0.1.0.md](compatibility-0.1.0.md).
|