Files
vmware-api-simulator/pulumi-tests/README.ru.md
T
inecs f8d3cbdd59 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.
2026-07-18 04:42:11 +03:00

79 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Гибридный lab-набор pulumi для vmware-api-simulator
Гибрид под `pulumi-tests/`:
1. Официальный [`pulumi-vsphere`](https://www.pulumi.com/registry/packages/vsphere/) (SOAP/VIM через govmomi)
2. Полная REST-матрица `IMPLEMENTED` × majors **69** (deep + stub)
3. Deep REST CRUD (session / folder / tag / content library / VM)
4. Все 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 69 (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`.
## Быстрый старт
Из **корня репозитория**:
```bash
make pulumi-tests # полный гибрид
make pulumi-tests-smoke # PU-INV + REST smoke на одном major
```
Или из этой директории:
```bash
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×69 + 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.*`.