Files
inecs 131e2e63d2 Document 2026-07-18 lab test results across EN/RU guides.
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.
2026-07-18 09:38:37 +03:00

6.3 KiB
Raw Permalink Blame History

Language / Язык: English | Русский

Отчёт совместимости — 0.1.0

Этот отчёт фиксирует evidence для релиза симулятора 0.1.0 относительно реестра маршрутов vSphere Automation API (catalog majors 69, основной 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, SOAP Login/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.