f8d3cbdd59
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.
3.0 KiB
3.0 KiB
Гибридный lab-набор pulumi для vmware-api-simulator
Гибрид под pulumi-tests/:
- Официальный
pulumi-vsphere(SOAP/VIM через govmomi) - Полная REST-матрица
IMPLEMENTED× majors 6–9 (deep + stub) - Deep REST CRUD (session / folder / tag / content library / VM)
- Все SOAP-операции из
/sdk/vimService.wsdl
Одним pulumi-vsphere закрыть ~1092 REST verb×path нельзя — HTTP-матрица обязательна для полной уверенности.
Критерии pass
| Класс | Правило |
|---|---|
| REST GET (inventory / deep) | 2xx, непустое тело, без "stub": true на critical-путях major 9 |
| REST stubs (universe) | нет 5xx/501; ответ есть; в отчёте как stub (не durable CRUD) |
| REST deep CRUD | create → GET nonempty → update (если есть) → delete → GET missing |
| SOAP WSDL (~45) | POST /sdk без 5xx; Create/Power/Clone/Destroy — проверка inventory |
| pulumi-vsphere | существующие кейсы + nonempty export’ы |
Что запускается
| Кейс | Слой | Заметки |
|---|---|---|
PU-INV |
pulumi-vsphere | Inventory data sources |
PU-FOLDER |
pulumi-vsphere | Folder create/destroy |
PU-VM |
pulumi-vsphere | VirtualMachine create/destroy |
PU-TAG |
pulumi-vsphere | TagCategory + Tag |
PU-REST |
REST matrix | IMPLEMENTED × majors 6–9 (smoke: только major 9) |
PU-CRUD |
REST CRUD | Session, folder, tagging, content library, VM |
PU-SOAP |
SOAP | Все WSDL ops |
Артефакты: HTML + JSON + JUnit в volume lab-reports. В JSON:
rest.total / rest.failed, crud.failed, soap.failed.
Быстрый старт
Из корня репозитория:
make pulumi-tests # полный гибрид
make pulumi-tests-smoke # PU-INV + REST smoke на одном major
Или из этой директории:
cd pulumi-tests
make up
make test-pulumi # или: make test-pulumi-smoke
Шлюз (в compose): https://api-gateway (с хоста 127.0.0.1:18443).
Seed-профиль: small → Datacenter / Cluster / datastore1 / VM Network /
web-01 / esxi01.lab.local / /Datacenter/vm/production.
Цели Make
| Цель | Смысл |
|---|---|
make test-pulumi / pulumi-tests |
Полный гибрид: pulumi-vsphere + REST×6–9 + CRUD + SOAP |
make test-pulumi-smoke |
PU-INV + REST major-9 smoke (без VM/tags/CRUD/SOAP) |
make up / down / seed |
Жизненный цикл lab-стека |
Структура
pulumi-tests/
run_suite.py
report_html.py
lib/rest_matrix.py
lib/rest_crud.py
lib/soap_ops.py
programs/...
PYTHONPATH монтирует /workspace для импорта app.vsphere.*.