Initial commit: VMware vSphere API simulator scaffold.

Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
This commit is contained in:
2026-07-18 04:42:11 +03:00
commit f8d3cbdd59
422 changed files with 361335 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
**Language / Язык:** [English](../compatibility.md) | [Русский](compatibility.md)
# Совместимость
Этот документ объясняет, как симулятор заявляет совместимость с vSphere
Automation API по мажорам каталога **69**. Когда процесс запущен,
предпочитайте живые отчёты.
## Живые отчёты
| 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.
## Известные поведенческие ограничения
| Область | Поведение |
|---|---|
| Внешние системы | 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).