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.
6.3 KiB
Language / Язык: English | Русский
Отчёт совместимости — 0.1.0
Этот отчёт фиксирует evidence для релиза симулятора 0.1.0 относительно реестра маршрутов vSphere Automation API (catalog majors 6–9, основной contract major 9 / 8.0 U2). Это матрица ограничений по измерениям качества / внешней интеграции, а не утверждение общей аппаратной совместимости с vCenter/ESXi.
Пользовательский обзор — compatibility.md. Живые
машиночитаемые счётчики всегда доступны из
/ui/api/compatibility?major=N, когда симулятор запущен.
Сводка (major 9 / основной контракт vSphere 8.0 U2)
| Уровень | Methods | Доля universe | Evidence |
|---|---|---|---|
| Declared in universe (Broadcom operations index → route table) | 1077 | 100% | app/vsphere/rest/universe.json |
| Implemented at major 9 (catalog floor) | 1077 | 100% | app/vsphere/contracts/matrix.py |
| Core deep handlers (inventory/lifecycle/tagging/content/appliance) | 104 | 9.7% | app/vsphere/rest/coverage.py (CORE_IMPLEMENTED) |
| DB-backed stub surface (остальной реестр) | ~973 | 90.3% | app/vsphere/rest/stub_surface.py против vsphere_api_state |
| Verified / observed surface ledger | 1077 | 100% | evidence/vsphere-8.0.2.json |
Покрытие по catalog major
| Major | Метка vSphere | Implemented | Universe | Coverage |
|---|---|---|---|---|
| 6 | 7.0 | 31 | 1077 | 2.88% |
| 7 | 7.0 U3 | 77 | 1077 | 7.15% |
| 8 | 8.0 | 103 | 1077 | 9.56% |
| 9 | 8.0 U2 | 1077 | 1077 | 100.00% |
Implemented здесь — оценка catalog-floor для browse в Web UI и
evidence-отчётов, перегенерируется через make evidence / make vsphere-bundles
и защищена tests/compatibility/test_verified_surface.py. Она не
гейтит живой трафик — почему runtime всегда обслуживает зарегистрированный
маршрут независимо от применённого major, см. Поверхность API.
Реализованная поверхность (верхний уровень)
- Session:
/api/session,/rest/com/vmware/cis/session, SOAPLogin/Logout— всё устойчиво в PostgreSQL (vsphere_sessions,vsphere_credentials). - Inventory: list+get для VM/host/datastore/network/datacenter/cluster/folder/resource-pool, плюс create/delete для datacenter/cluster/folder/resource-pool.
- VM lifecycle: create, delete, power, hardware (CPU/memory/disk/NIC/boot), snapshots, clone, relocate, guest identity/networking/power/customization, console tickets, tools.
- Tasks:
/api/cis/tasks, реальные ids изvsphere_tasks, SOAP task MoRefs. - Tagging / content library: categories, tags, associations, libraries, library items, update/download sessions, OVF deploy.
- Authorization: privileges, roles, permissions CRUD, identity providers.
- Appliance: version, health, networking (hostname/DNS), timesync.
- SOAP / VIM: RetrieveServiceContent, PropertyCollector (RetrieveProperties/Ex, ContinueRetrievePropertiesEx, CreateFilter, WaitForUpdatesEx), FindBy* / FindChild, CreateVM_Task и связанные, guest file operations, HttpNfcLease import flow, WSDL stub.
- Platform lab surfaces: seeded (не бинарно совместимые) stand-in'ы NSX/Supervisor/vSAN/SAML-OIDC/VECS-cert — точный список и оговорки в Покрытие API.
Принцип персистентности
Каждый путь create/update/delete пишет в PostgreSQL (таблицы и/или catch-all
vsphere_api_state). Секреты могут храниться, но не должны отдаваться на GET.
Пользовательские ошибки «not supported in the emulator» для зарегистрированных
путей запрещены — см. .cursor/rules/durable-simulator.mdc.
Известные ограничения
| Область | Текущее поведение |
|---|---|
| Внешние системы | NSX/LDAP/SAML/OIDC/ACME не обращаются к реальным remotes; состояние симулируется локально |
| TLS | Локальный nginx gateway только с закоммиченным self-signed development key |
| Сертификация клиентов | SOAP smoke в стиле pyvmomi/govmomi + cookbook'и Ansible/Terraform/Pulumi; не формальный certification suite для каждой версии провайдера |
| Smoke провайдера | Набор pulumi-vsphere в pulumi-tests/ (make pulumi-tests) гоняет SOAP inventory/VM/tag с проверкой непустых export'ов; семантическая глубина по-прежнему разная (deep handlers vs DB-backed stubs). Последний полный прогон (2026-07-18): 7/7 кейсов, REST 1987/1987, critical=0 — см. pulumi-tests/README.ru.md |
Полное покрытие реестра на major 9 означает, что HTTP 501 «handler pending» не должен появляться ни для одного маршрута в реестре симулятора. Качество совместимости (точный паритет крайних случаев vSphere) по-прежнему углубляется тестами и observation.
При импорте обновлённого дампа Broadcom operations index: перегенерируйте
universe.json (make vsphere-universe), bundles/evidence
(make vsphere-bundles, make evidence), запустите
pytest tests/compatibility/test_verified_surface.py и закоммитьте обновлённые
ledgers evidence/vsphere-*.json.