**Language / Язык:** [English](../compatibility.md) | [Русский](compatibility.md) # Совместимость Этот документ объясняет, как симулятор заявляет совместимость с vSphere Automation API по мажорам каталога **6–9**. Когда процесс запущен, предпочитайте живые отчёты. ## Живые отчёты | URL | Формат | |---|---| | `/ui/api/compatibility?major=N` | JSON | Web UI также предоставляет панель совместимости, управляемую этим endpoint'ом. ## Покрытие реестра в сравнении с проверенной поверхностью | Мажор | Метка vSphere | Реализовано / universe | Покрытие | |---|---|---:|---:| | 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) | **1077 / 1077** | **100%** | - **Universe** — уникальные маршруты verb+path, полученные из публичного [индекса операций vSphere Automation API](https://developer.broadcom.com/xapis/vsphere-automation-api/latest/operation-index/) (1348 документированных операций → ~1037 уникальных маршрутов → 1077 зарегистрированных в таблице маршрутов этого симулятора, поскольку некоторые пути обслуживают несколько именованных операций). - **Реализовано (по мажору)** — маршруты, чей уровень каталога (`app/vsphere/contracts/matrix.py`) равен этому мажору или ниже. Это оценка **каталога/документации**, а не ограничение живого трафика. - **Runtime** — независимо от применённого мажора каталога, каждый зарегистрированный маршрут всегда обслуживается своим реальным обработчиком (104 глубоких обработчика) или DB-backed поверхностью стабов. См. [Поверхность API](api-surface.md). После **Apply as runtime** (`POST /ui/api/contract/apply?major=N`) живой отчёт загружает журнал этого мажора (`evidence/vsphere-{version}.json`), так что панель совместимости Web UI отражает выбранный мажор. ## Измерения evidence Журналы по мажорам в `evidence/vsphere-{version}.json` записывают счётчики `declared`, `implemented`, `observed` и `verified`, а также разбивки по HTTP-методам и доменам (`auth_session`, `inventory`, …). Регенерируйте с помощью: ```bash make evidence # app/evidence_gen.py make vsphere-bundles # стаб-бандлы OpenAPI + журналы evidence вместе ``` Исполняемое подтверждение этих заявлений: | Набор тестов | Роль | |---|---| | `tests/compatibility/test_verified_surface.py` | hot-swap + дрейф журнала + пороги оценки | | `tests/compatibility/test_group_smoke.py` | представительные мутации групп REST с PostgreSQL | | `tests/compatibility/test_vsphere_pyvmomi.py` | внешний smoke-тест SOAP через pyvmomi | | `tests/integration/test_vsphere_full_api.py` | широкое интеграционное покрытие REST/SOAP | Дополнительные cookbook'и под [`examples/`](../../examples/README.ru.md) и lab-набор `pulumi-vsphere` под [`pulumi-tests/`](../../pulumi-tests/README.ru.md) (`make pulumi-tests`) выполняются вручную или опционально в CI. ### Последний lab-прогон (2026-07-18) | Набор | Результат | |---|---| | `make test` (offline) | **161 passed** | | `make test-vsphere` (pytest + surface/matrix/dump/nonempty) | **73** pytest passed; probes **0 failures** (только mismatch бинаря Terraform cookbook) | | `make pulumi-tests` (полный гибрид) | **7 / 7 passed**; Layer A REST **1987 / 1987**, `critical=0` | Подробности и пути к отчёту: [`pulumi-tests/README.ru.md`](../../pulumi-tests/README.ru.md#последний-lab-прогон-2026-07-18). ## Известные поведенческие ограничения | Область | Поведение | |---|---| | Внешние системы | NSX Manager, живые LDAP/SAML/OIDC IdP и ACME-директории не обращаются к реальным удалённым сервисам; только seeded/локальное состояние | | TLS | Только локальный self-signed development-gateway (Compose); используйте свои сертификаты / cert-manager для реальных развёртываний | | Гипервизор | Нет реального выполнения ESXi/KVM; нет бинарных загрузок NFC | | Корпус наблюдений | Санированные данные наблюдений реального vCenter остаются ограниченными; глубокий семантический паритет проверяется путь-за-путём указанными выше наборами тестов, а не исчерпывающим сравнением с production | Исторические заметки о релизах: [compatibility-0.1.0.md](compatibility-0.1.0.md).