Files
openstack-api-simulator/pulumi-tests/README.ru.md
T
inecs 147f04c9a2 Fix Nova/Cinder stateful CRUD so the full surface and Pulumi matrix pass clean.
Persist aggregates and server security groups in domain tables, add Cinder quota
show from DB-backed defaults, align unit tests with OpenStack series, auto-pick
Keystone :5000/:15000 for smoke, and document test locations plus 6514/6514 results.
2026-07-18 09:38:45 +03:00

3.6 KiB
Raw Blame History

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

Тесты Pulumi OpenStack (pulumi-tests)

100% покрытия = HTTP contract matrix (каждая операция series-pack + синтетический HEAD на каждый GET path), а не число ресурсов pulumi_openstack.

Layer A (гейт): pack ops × yoga→dalmatian на реальных портах сервисов (docs/ports.md / docs/ru/ports.md), microversions где pack их задаёт, nonempty тела успешных ответов, probed == declared + HEAD, critical=0.

Layer B (smoke): lifecycle pulumi_openstack — расширяет provider surface; не определяет 100%.

Быстрый старт

# из корня репозитория
make pulumi-tests

# или
cd pulumi-tests
make up && make build
make test-pulumi-smoke   # быстро: collection GET + HEAD
make test-pulumi         # полная Layer A matrix × все серии
open reports/pulumi-report.html

Smoke vs полный suite

Цель Режим Что проверяется
make test-pulumi-smoke Smoke (TEST_SMOKE=1) Layer B + collection GET + HEAD с nonempty (быстро)
make pulumi-tests / make test-pulumi Полная matrix Layer B + все ops пака × GET/POST/PUT/PATCH/DELETE + синтетический HEAD на каждый GET, полнота (total == declared + HEAD), nonempty тел (DELETE/204/HEAD могут быть пустыми)

Размеры паков (ops без HEAD): yoga ~1060 → antelope ~1108 → caracal ~1196 → dalmatian ~1357.

Что выполняется (на каждую серию yoga → dalmatian)

  1. Активация pack серии OpenStack
  2. pulumi up programs/os_coverage (Layer B — provider smoke)
  3. Проверка непустых export стека (Layer B)
  4. HTTP contract matrix на портах каталога (токен Keystone → Nova :8774, Neutron :9696, …)
  5. Assert probed == declared + HEAD, critical=0, nonempty JSON
  6. pulumi destroy
  7. Отчёты HTML/JUnit + histogram глаголов (включая HEAD)

Отчёты

Файл Содержимое
reports/pulumi-report.html HTML-сводка (expected vs actual + breakdown методов вкл. HEAD)
reports/pulumi-junit.xml JUnit
reports/series-<name>.json Детали pulumi + HTTP по серии
reports/summary.json Агрегаты (http_total / http_expected, http_critical)

Последние результаты (2026-07-18)

Полная matrix (make test-pulumi / make pulumi-tests):

Метрика Значение
Серии yoga → dalmatian (4)
pulumi_ok 4 / 4
HTTP probed 6514 / 6514 (declared 4721 + синтетический HEAD 1793)
http_critical 0
По сериям yoga 1464 · antelope 1530 · caracal 1649 · dalmatian 1871

После прогона: reports/pulumi-report.html. Где лежат остальные тесты репозитория: docs/ru/operations.md — Тестирование.

Approximate (не блокеры)

Nova create может пропускать длинное окно BUILD; многие Nova actions только меняют status; Placement mutations и Octavia listeners/pools в основном schema / os_api_objects; Neutron router:external выводится из shared сети public.