Major 6 · 7.0.0
-Catalog floor: 23 methods
-Probed: 23 - (above floor: 0)
-Failed: 0
-{"GET": 23}
-diff --git a/README.md b/README.md index 16f81f5..bb2a5d2 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,10 @@ Runnable cookbooks live under [`examples/`](examples/README.md). The (nonempty output checks, HTML report) lives under [`pulumi-tests/`](pulumi-tests/README.md) — run with `make pulumi-tests`. +Latest lab run (**2026-07-18**): offline **161 passed**; `test-vsphere` probes +green; full `pulumi-tests` **7/7** with REST matrix **1987/1987** (`critical=0`). +See [pulumi-tests/README.md](pulumi-tests/README.md#latest-lab-run-2026-07-18). + ## Python (requests) against the HTTPS gateway ```python diff --git a/README.ru.md b/README.ru.md index 9df106c..75e3f01 100644 --- a/README.ru.md +++ b/README.ru.md @@ -159,6 +159,11 @@ majors 6–9, редактирование request/response и runtime contract (проверки непустых export'ов, HTML-отчёт) — в [`pulumi-tests/`](pulumi-tests/README.ru.md); запуск: `make pulumi-tests`. +Последний lab-прогон (**2026-07-18**): offline **161 passed**; probes +`test-vsphere` зелёные; полный `pulumi-tests` **7/7**, REST-матрица +**1987/1987** (`critical=0`). См. +[pulumi-tests/README.ru.md](pulumi-tests/README.ru.md#последний-lab-прогон-2026-07-18). + ## Python (requests) через HTTPS gateway ```python diff --git a/docs/compatibility-0.1.0.md b/docs/compatibility-0.1.0.md index b8619e7..cc88bbe 100644 --- a/docs/compatibility-0.1.0.md +++ b/docs/compatibility-0.1.0.md @@ -73,7 +73,7 @@ registered paths — see `.cursor/rules/durable-simulator.mdc`. | External systems | NSX/LDAP/SAML/OIDC/ACME do not contact real remotes; state is simulated locally | | TLS | Local nginx gateway with a checked-in self-signed development key only | | Client certification | pyvmomi/govmomi-style SOAP smoke + Ansible/Terraform/Pulumi cookbooks; not a formal certification suite for every provider version | -| Provider smoke | The `pulumi-vsphere` suite under `pulumi-tests/` (`make pulumi-tests`) exercises SOAP-backed inventory/VM/tag resources with nonempty export checks; semantic depth still varies (deep handlers vs DB-backed stubs) | +| Provider smoke | The `pulumi-vsphere` suite under `pulumi-tests/` (`make pulumi-tests`) exercises SOAP-backed inventory/VM/tag resources with nonempty export checks; semantic depth still varies (deep handlers vs DB-backed stubs). Latest full run (2026-07-18): **7/7** cases, REST **1987/1987**, `critical=0` — see [`pulumi-tests/README.md`](../pulumi-tests/README.md#latest-lab-run-2026-07-18) | Full registry coverage at major 9 means HTTP 501 "handler pending" should not appear for any route in the simulator's registry. Compatibility *quality* diff --git a/docs/compatibility.md b/docs/compatibility.md index 6242178..f8020d3 100644 --- a/docs/compatibility.md +++ b/docs/compatibility.md @@ -62,6 +62,16 @@ Additional cookbooks under [`examples/`](../examples/README.md) and the `pulumi-vsphere` lab suite under [`pulumi-tests/`](../pulumi-tests/README.md) (`make pulumi-tests`) are manual or CI-optional depending on the stack. +### Latest lab run (2026-07-18) + +| Suite | Result | +|---|---| +| `make test` (offline) | **161 passed** | +| `make test-vsphere` (pytest + surface/matrix/dump/nonempty) | **73** pytest passed; probes **0 failures** (Terraform cookbook binary mismatch only) | +| `make pulumi-tests` (full hybrid) | **7 / 7 passed**; Layer A REST **1987 / 1987**, `critical=0` | + +Details and report paths: [`pulumi-tests/README.md`](../pulumi-tests/README.md#latest-lab-run-2026-07-18). + ## Known behavioural limits | Area | Behaviour | diff --git a/docs/operations.md b/docs/operations.md index 20d0e9c..1d41072 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -134,8 +134,9 @@ chart — see [Kubernetes / Helm](kubernetes.md). 2. Run migrations (`make db-migrate`). 3. Confirm `/health/ready`. 4. Re-check `/ui/api/compatibility?major=9` and `/api/appliance/system/version`. -5. Re-run `make test-vsphere` / `make vsphere-matrix` if you validate the - surface after upgrading. +5. Re-run `make test-vsphere` / `make vsphere-matrix` / `make pulumi-tests` + if you validate the surface after upgrading. Latest recorded lab numbers: + [Compatibility — Latest lab run](compatibility.md#latest-lab-run-2026-07-18). ## Resetting a lab diff --git a/docs/ru/compatibility-0.1.0.md b/docs/ru/compatibility-0.1.0.md index 1b33fd9..71cb0fa 100644 --- a/docs/ru/compatibility-0.1.0.md +++ b/docs/ru/compatibility-0.1.0.md @@ -73,7 +73,7 @@ evidence-отчётов, перегенерируется через `make evide | Внешние системы | 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) | +| 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`](../../pulumi-tests/README.ru.md#последний-lab-прогон-2026-07-18) | Полное покрытие реестра на major 9 означает, что HTTP 501 «handler pending» не должен появляться ни для одного маршрута в реестре симулятора. *Качество* diff --git a/docs/ru/compatibility.md b/docs/ru/compatibility.md index f680e0e..d26490f 100644 --- a/docs/ru/compatibility.md +++ b/docs/ru/compatibility.md @@ -67,6 +67,17 @@ make vsphere-bundles # стаб-бандлы OpenAPI + журналы evidence [`pulumi-tests/`](../../pulumi-tests/README.ru.md) (`make pulumi-tests`) выполняются вручную или опционально в CI. +### Последний lab-прогон (2026-07-18) + +| Набор | Результат | +|---|---| +| `make test` (offline) | **161 passed** | +| `make test-vsphere` (pytest + surface/matrix/dump/nonempty) | **73** pytest passed; probes **0 failures** (только mismatch бинаря Terraform cookbook) | +| `make pulumi-tests` (полный гибрид) | **7 / 7 passed**; Layer A REST **1987 / 1987**, `critical=0` | + +Подробности и пути к отчёту: +[`pulumi-tests/README.ru.md`](../../pulumi-tests/README.ru.md#последний-lab-прогон-2026-07-18). + ## Известные поведенческие ограничения | Область | Поведение | diff --git a/docs/ru/operations.md b/docs/ru/operations.md index 8b2b5d6..55e376a 100644 --- a/docs/ru/operations.md +++ b/docs/ru/operations.md @@ -138,7 +138,9 @@ Helm-чарт — см. [Kubernetes / Helm](kubernetes.md). 4. Перепроверьте `/ui/api/compatibility?major=9` и `/api/appliance/system/version`. 5. При необходимости заново запустите `make test-vsphere` / - `make vsphere-matrix`, если проверяете поверхность после обновления. + `make vsphere-matrix` / `make pulumi-tests`, если проверяете поверхность + после обновления. Последние зафиксированные lab-цифры: + [Совместимость — Последний lab-прогон](compatibility.md#последний-lab-прогон-2026-07-18). ## Сброс лаборатории diff --git a/pulumi-tests/README.md b/pulumi-tests/README.md index 0551ba0..928f20b 100644 --- a/pulumi-tests/README.md +++ b/pulumi-tests/README.md @@ -1,5 +1,7 @@ # pulumi hybrid lab suite for vmware-api-simulator +**Language / Язык:** [English](README.md) | [Русский](README.ru.md) + Hybrid suite under `pulumi-tests/`: 1. **Layer A (required for “100%”)** — HTTP contract matrix: all `IMPLEMENTED` @@ -12,6 +14,28 @@ Hybrid suite under `pulumi-tests/`: `pulumi-vsphere` alone cannot hit ~1092 REST routes — **100% means the HTTP matrix** (`coverage probed/declared`, `critical=0`), not provider resource count. +## Latest lab run (2026-07-18) + +Full hybrid (`make pulumi-tests`, seed profile `small`): + +| Check | Result | +|-------|--------| +| Cases | **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`) across majors 6–9 | +| Verb histogram | GET 682 · HEAD 682 · POST 301 · PUT 96 · PATCH 91 · DELETE 135 | + +Artifacts (local copy from the `lab-reports` volume; directory is gitignored): +`pulumi-tests/reports/pulumi-report.html`, +`pulumi-tests/reports/pulumi-summary.json`. + +Related offline / gateway probes from the same day: + +| Suite | Result | +|-------|--------| +| `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 (part of `test-vsphere`) | Python / Ansible URI / Pulumi-style OK; **Terraform cookbook** failed (`Exec format error` on `.tools/terraform` binary — host/arch mismatch, not an API regression) | + ## Pass rules (Layer A) | Check | Rule | @@ -44,8 +68,17 @@ matrix** (`coverage probed/declared`, `critical=0`), not provider resource count | `PU-CRUD` | Deep REST | Session, folder, tagging, content library, VM | | `PU-SOAP` | SOAP | Existing WSDL ops only | -Artifacts: HTML + JSON + JUnit under the `lab-reports` volume. Look for -`rest.coverage_line`, `rest.critical`, `rest.by_verb` (incl. HEAD). +Artifacts: HTML + JSON + JUnit under the `lab-reports` volume (and optionally +`pulumi-tests/reports/` on the host). Look for `rest.coverage_line`, +`rest.critical`, `rest.by_verb` (incl. HEAD). Open the HTML report after a run: + +```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 +``` ## Quick start diff --git a/pulumi-tests/README.ru.md b/pulumi-tests/README.ru.md index 4c10ac2..e4d9d17 100644 --- a/pulumi-tests/README.ru.md +++ b/pulumi-tests/README.ru.md @@ -1,5 +1,7 @@ # Гибридный lab-набор pulumi для vmware-api-simulator +**Language / Язык:** [English](README.md) | [Русский](README.ru.md) + Гибрид под `pulumi-tests/`: 1. **Layer A (обязателен для «100%»)** — HTTP contract matrix: все `IMPLEMENTED` @@ -12,6 +14,28 @@ Одним `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 6–9 | +| 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) | Проверка | Правило | @@ -37,6 +61,16 @@ 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`). diff --git a/pulumi-tests/reports/pulumi-report.html b/pulumi-tests/reports/pulumi-report.html index ffe5779..6838c24 100644 --- a/pulumi-tests/reports/pulumi-report.html +++ b/pulumi-tests/reports/pulumi-report.html @@ -2,198 +2,96 @@
- -Catalog floor: 23 methods
-Probed: 23 - (above floor: 0)
-Failed: 0
-{"GET": 23}
-Catalog floor: 40 methods
-Probed: 40 - (above floor: 0)
-Failed: 0
-{"GET": 40}
-Catalog floor: 40 methods
-Probed: 40 - (above floor: 0)
-Failed: 0
-{"GET": 40}
-Catalog floor: 40 methods
-Probed: 40 - (above floor: 0)
-Failed: 0
-{"GET": 40}
-| Major | Version | Verb | Path | -HTTP | Outcome | Floor | Detail | -||
|---|---|---|---|---|---|---|---|---|---|
| 6 | 7.0.0 | GET | /api/appliance/system/version | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/session | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/cluster | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/datacenter | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/datastore | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/datastore/{datastore} | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/folder | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/host | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/host/{host} | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/network | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/resource-pool | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/vm | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/vm/{vm} | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /api/vcenter/vm/{vm}/guest/identity | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/appliance/system/version | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/com/vmware/cis/session | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/cluster | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/datacenter | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/datastore | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/host | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/network | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/vm | 200 | passed | in | 2xx | ||
| 6 | 7.0.0 | GET | /rest/vcenter/vm/{vm} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/appliance/system/version | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tagging/category | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tagging/category/{category_id} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tagging/tag | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tagging/tag/{tag_id} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tasks | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/cis/tasks/{task} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/session | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/cluster | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/datacenter | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/datastore | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/datastore/{datastore} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/datastore/{datastore}/files | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/folder | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/folder/{folder}/children | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/host | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/host/{host} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/network | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/resource-pool | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm} | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/guest/identity | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/guest/networking | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/guest/power | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware/boot | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware/cpu | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware/disk | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware/ethernet | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/hardware/memory | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/snapshots | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /api/vcenter/vm/{vm}/tools | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/appliance/system/version | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/com/vmware/cis/session | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/cluster | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/datacenter | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/datastore | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/host | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/network | 200 | passed | in | 2xx | ||
| 7 | 7.0.3 | GET | /rest/vcenter/vm | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/appliance/health/system | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/appliance/networking | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/appliance/system/version | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/appliance/timesync | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tagging/category | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tagging/category/{category_id} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tagging/tag | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tagging/tag/{tag_id} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tasks | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/cis/tasks/{task} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/content/library | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/content/library/item | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/session | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vapi/metadata/authentication/component | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vapi/metadata/metamodel/service | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/activity-history | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/authorization/permissions | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/authorization/roles | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/cluster | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/datacenter | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/datastore | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/datastore/{datastore} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/datastore/{datastore}/files | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/folder | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/folder/{folder}/children | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/host | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/host/{host} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/host/{host}/networking | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/host/{host}/storage/storage-device | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/identity/providers | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/network | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/network/dvs | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/privilege | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/resource-pool | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/storage/policies | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/storage/policies/{policy}/vm | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/vm | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/vm/{vm} | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/vm/{vm}/guest/identity | 200 | passed | in | 2xx | ||
| 8 | 8.0.0 | GET | /api/vcenter/vm/{vm}/guest/networking | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/access/consolecli | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/access/dcui | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/access/shell | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/access/ssh | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/cores | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health-check-settings | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/applmgmt | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/database | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/databasestorage | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/load | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/mem | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/softwarepackages | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/storage | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/swap | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/health/system | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/infraprofile/configs | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/local-accounts | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/local-accounts/policy | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/logging/forwarding | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/logging/liagent/log-collection | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/monitoring | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/dns/domains | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/dns/hostname | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/dns/servers | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/firewall/inbound | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/interfaces | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/interfaces/{interface} | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/interfaces/{interface}/ipv4 | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/interfaces/{interface}/ipv6 | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/no-proxy | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/networking/proxy | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/ntp | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery/backup/job | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery/backup/job/details | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery/backup/parts | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery/backup/schedules | 200 | passed | in | 2xx | ||
| 9 | 8.0.2 | GET | /api/appliance/recovery/reconciliation/job | 200 | passed | in | 2xx | ||
| ID | Title | Status | Outputs | Error |
|---|---|---|---|---|
| PU-INV | Inventory data sources (dc/cluster/ds/net/vm/host/folder/pool) | passed | cluster_id=domain-c21cluster_name=Clustercluster_resource_pool_id=resgroup-22datacenter_id=datacenter-21datacenter_name=Datacenterdatastore_id=datastore-31datastore_name=datastore1folder_id=group-v100folder_path=/Datacenter/vm/productionhost_id=host-11host_name=esxi01.lab.localnetwork_id=network-41network_name=VM Networkresource_pool_id=resgroup-22resource_pool_name=Cluster/Resourcesvm_id=4200aaaa-bbbb-cccc-dddd-000000000101vm_name=web-01 | — |
| PU-FOLDER | Folder create/destroy | passed | datacenter_id=datacenter-21folder_id=group-8b2a68folder_path=pulumi-folder-7ee0f4fd | — |
| PU-VM | VirtualMachine create/destroy | passed | datastore_id=datastore-31lab_vm_id=4200aaaa-bbbb-cccc-dddd-000000000151lab_vm_name=pulumi-lab-7bc84995network_id=network-41resource_pool_id=resgroup-22 | — |
| PU-TAG | TagCategory + Tag create/destroy | passed | category_id=urn:vmomi:InventoryServiceCategory:3070f3744accd472:GLOBALcategory_name=pulumi-cat-32857be7tag_id=urn:vmomi:InventoryServiceTag:f1722581807beddf:GLOBALtag_name=pulumi-tag-32857be7 | — |
| PU-REST | REST HTTP matrix majors=[6, 7, 8, 9] (IMPLEMENTED + HEAD; Layer A) | passed | coverage=1987/1987critical=0probed=1987declared=1987by_verb={'GET': 682, 'HEAD': 682, 'POST': 301, 'DELETE': 135, 'PATCH': 91, 'PUT': 96}majors=[6, 7, 8, 9] | — |
| PU-CRUD | Deep REST CRUD (session/folder/tag/library/vm) | passed | total=5failed=0flows=['session', 'folder', 'tagging', 'content-library', 'vm'] | — |
| PU-SOAP | SOAP WSDL ops (44 operations) | passed | total=44failed=0wsdl_ops=44 | — |
| Major | Version | Declared | Probed | Coverage | +Critical | 2xx | 4xx | 5xx | deep/stub |
|---|---|---|---|---|---|---|---|---|---|
| 6 | 7.0.0 | 52 | 52 | 52/52 | 0 | 47 | 5 | 0 | 52/0 |
| 7 | 7.0.3 | 117 | 117 | 117/117 | 0 | 98 | 19 | 0 | 117/0 |
| 8 | 8.0.0 | 170 | 170 | 170/170 | 0 | 147 | 23 | 0 | 170/0 |
| 9 | 8.0.2 | 1648 | 1648 | 1648/1648 | 0 | 1617 | 31 | 0 | 225/1423 |
| Major | Verb | Path | Kind | Status | Detail |
|---|---|---|---|---|---|
| none | |||||
| Flow | Step | Status | Detail |
|---|---|---|---|
| session | done | passed | — |
| folder | done | passed | group-f69b97 |
| tagging | done | passed | urn:vmomi:InventoryServiceCategory:ae660bd2f74e6215:GLOBAL/urn:vmomi:InventoryServiceTag:a38524329d11df43:GLOBAL |
| content-library | done | passed | lib-e9186bb2c6cb/item-4c7c9504b62d |
| vm | done | passed | vm-160 |
| Operation | HTTP | Status | Detail |
|---|---|---|---|
RetrieveServiceContent | 200 | passed | — |
Login | 200 | passed | — |
Logout | 200 | passed | — |
RetrieveProperties | 200 | passed | — |
RetrievePropertiesEx | 200 | passed | — |
ContinueRetrievePropertiesEx | 200 | passed | — |
CreateFilter | 200 | passed | — |
WaitForUpdatesEx | 200 | passed | — |
CreateContainerView | 200 | passed | — |
DestroyPropertyFilter | 200 | passed | — |
FindByInventoryPath | 200 | passed | — |
FindByUuid | 200 | passed | — |
FindByDnsName | 200 | passed | — |
FindByIp | 200 | passed | — |
FindChild | 200 | passed | — |
CreateVM_Task | 200 | passed | — |
CreateChildVM_Task | 200 | passed | — |
CreateFolder | 200 | passed | — |
PowerOnVM_Task | 200 | passed | — |
PowerOffVM_Task | 200 | passed | — |
CloneVM_Task | 200 | passed | — |
CreateSnapshot_Task | 200 | passed | — |
Rename_Task | 200 | passed | — |
ReconfigVM_Task | 200 | passed | — |
RelocateVM_Task | 200 | passed | — |
Destroy_Task | 200 | passed | — |
CustomizeVM_Task | 200 | passed | — |
CancelTask | 200 | passed | — |
CurrentTime | 200 | passed | — |
InitiateFileTransferToGuest | 200 | passed | — |
InitiateFileTransferFromGuest | 200 | passed | — |
ListFilesInGuest | 200 | passed | — |
DeleteFileInGuest | 404 | passed | — |
MakeDirectoryInGuest | 200 | passed | — |
ImportVApp_Task | 200 | passed | — |
CreateImportSpec | 200 | passed | — |
HttpNfcLeaseComplete | 200 | passed | — |
HttpNfcLeaseProgress | 200 | passed | — |
HttpNfcLeaseAbort | 200 | passed | — |
HttpNfcLeaseGetManifest | 200 | passed | — |
QueryConfigOption | 200 | passed | — |
QueryConfigOptionEx | 200 | passed | — |
QueryConfigOptionDescriptor | 200 | passed | — |
QueryConfigTarget | 200 | passed | — |