Files
vmware-api-simulator/pulumi-tests/README.ru.md
T
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

78 lines
3.6 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
**Language / Язык:** [English](README.md) | [Русский](README.ru.md)
Гибрид под `pulumi-tests/`:
1. **Layer A (обязателен для «100%»)** — HTTP contract matrix: все `IMPLEMENTED`
REST `verb+path` × majors **69**, плюс синтетический **HEAD** на каждый GET
2. **Layer B (smoke / lifecycle)** — официальный
[`pulumi-vsphere`](https://www.pulumi.com/registry/packages/vsphere/)
3. Deep REST CRUD (session / folder / tag / content library / VM)
4. SOAP-операции из `/sdk/vimService.wsdl` (без нового SOAP universe)
Одним `pulumi-vsphere` закрыть ~1092 REST `verb×path` нельзя — **100% = HTTP-матрица**
(`coverage probed/declared`, `critical=0`), а не число provider-ресурсов.
## Последний lab-прогон (2026-07-18)
Полный гибрид (`make pulumi-tests`, seed-профиль `small`):
| Проверка | Результат |
|----------|-----------|
| Кейсы | **7 / 7 passed** (`PU-INV`, `PU-FOLDER`, `PU-VM`, `PU-TAG`, `PU-REST`, `PU-CRUD`, `PU-SOAP`) |
| Layer A REST matrix | **1987 / 1987** (`critical=0`) по majors 69 |
| Verb histogram | GET 682 · HEAD 682 · POST 301 · PUT 96 · PATCH 91 · DELETE 135 |
Артефакты (локальная копия с тома `lab-reports`; каталог в `.gitignore`):
`pulumi-tests/reports/pulumi-report.html`,
`pulumi-tests/reports/pulumi-summary.json`.
Связанные прогоны того же дня:
| Набор | Результат |
|-------|-----------|
| `make test` (offline unit + contract) | **161 passed** |
| `make test-vsphere` pytest + surface/matrix/dump/nonempty | **73** pytest passed; matrix/surface/nonempty **0 failures** |
| Client cookbooks (часть `test-vsphere`) | Python / Ansible URI / Pulumi-style OK; **Terraform cookbook** упал (`Exec format error` на `.tools/terraform` — несовпадение host/arch, не регрессия API) |
## Критерии pass (Layer A)
| Проверка | Правило |
|----------|---------|
| Declared | `methods_for_major(M)` минус session DELETE, плюс `HEAD` на каждый GET |
| Probed | Ровно один auth’d probe на каждый declared (`probed == declared`) |
| Critical | `0` — нет 5xx/501; нет `"stub": true` / пустого тела на inventory-critical GET (major 9) |
| Coverage | `{probed - critical}/{declared}` (aggregate + per major) |
| Verb histogram | Включая `HEAD` |
## Что запускается
| Кейс | Слой | Заметки |
|------|------|---------|
| `PU-INV``PU-TAG` | B · pulumi-vsphere | Lifecycle / inventory smoke |
| `PU-REST` | **A · HTTP matrix** | `IMPLEMENTED` × 69 + HEAD (smoke: major 9) |
| `PU-CRUD` / `PU-SOAP` | extras | Deep CRUD + существующий SOAP |
## Быстрый старт
```bash
make pulumi-tests # полный гибрид
make pulumi-tests-smoke # PU-INV + Layer A major-9
```
После прогона HTML-отчёт:
```bash
mkdir -p pulumi-tests/reports
cd pulumi-tests && docker compose --profile test run --rm --no-deps \
-v "$(pwd)/reports:/out" pulumi-runner \
cp /reports/pulumi-report.html /reports/pulumi-summary.json /out/
open reports/pulumi-report.html
```
Шлюз (в compose): `https://api-gateway`. Хост-алиас: `127.0.0.1:28443`
(не занимает `https://localhost` / `:18443` основного lab — после тестов
`make down`).
Seed: `small`. Артефакты: `rest.coverage_line`, `rest.critical`, `rest.by_verb`.