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.
This commit is contained in:
2026-07-18 09:38:45 +03:00
parent 6cffb6a95f
commit 147f04c9a2
29 changed files with 843 additions and 346 deletions
+1 -1
View File
@@ -19,7 +19,7 @@
| [Seed-профили](seed-profiles.md) | `minimal` / `demo` |
| [Клиенты](clients.md) | SDK / CLI |
| [Web UI](web-ui.md) | Консоль и drawers |
| [Эксплуатация](operations.md) | Day-2, релиз, reseed |
| [Эксплуатация](operations.md) | Day-2, релиз, reseed, **тесты** |
| [Архитектура](architecture.md) | Компоненты и путь запроса |
| [Безопасность](security.md) | Threat model лаборатории |
| [Наблюдаемость](observability.md) | Health и логи |
+15
View File
@@ -31,3 +31,18 @@ open reports/pulumi-report.html
5. Destroy; HTML + JUnit
См. [`pulumi-tests/README.ru.md`](../../pulumi-tests/README.ru.md).
Карта pytest / smoke: [operations.md — Тестирование](operations.md#тестирование).
## Последние результаты (2026-07-18)
Полный сьют (`make pulumi-tests`, `collections_only=false`):
| Серия | HTTP ok / total | Pulumi |
|---|---:|---|
| yoga | 1464 / 1464 | ok |
| antelope | 1530 / 1530 | ok |
| caracal | 1649 / 1649 | ok |
| dalmatian | 1871 / 1871 | ok |
| **Все** | **6514 / 6514** (`http_critical=0`) | **4 / 4** |
Артефакты: `pulumi-tests/reports/pulumi-report.html`, `summary.json`.
+30 -6
View File
@@ -112,17 +112,41 @@ make release-build # local tags only
См. [kubernetes.md](kubernetes.md) для логов, reseed через `kubectl exec` и
удаления.
## CI лаборатории покрытия API (pulumi-tests)
## Тестирование
Pulumi прогоняет каждую pack-операцию по сериям — см.
[hypervisor-lab.md](hypervisor-lab.md).
| Где | Что |
|---|---|
| `tests/unit/` | Офлайн unit (ASGI / FakeDatabase) |
| `tests/openstack/` | Pack-контракты, registry, live surface / lifecycle |
| `tests/integration/` | Интеграция с PostgreSQL |
| `tests/compatibility/` | Surface probe и group smoke |
| `examples/python/openstack_smoke.py` | Host multi-port smoke (`make smoke` / `make test-compatibility`) |
| `examples/python/openstack_surface_probe.py` | Lifecycle-probe каждой pack-операции × серии |
| [`pulumi-tests/`](../../pulumi-tests/README.ru.md) | Pulumi Layer B + полная HTTP-матрица (yoga→dalmatian) |
```bash
make test-pulumi-smoke # from repo root
make test-pulumi
make test # офлайн unit + contract (без Postgres)
make test-integration # -m integration (Postgres)
make test-surface # surface probe + tests/openstack против Compose
make test-compatibility # seed minimal + openstack_smoke.py
make pulumi-tests # полный сьют pulumi-tests (alias: make test-pulumi)
make test-pulumi-smoke # быстрый режим: collection GET + HEAD
```
Отчёты: `pulumi-tests/reports/pulumi-report.html` и `pulumi-junit.xml`.
Подробнее о Pulumi-лаборатории: [hypervisor-lab.md](hypervisor-lab.md).
Отчёты: `pulumi-tests/reports/pulumi-report.html`, `pulumi-junit.xml`, `summary.json`.
### Последние результаты лаборатории (2026-07-18)
| Сьют | Результат |
|---|---|
| `make test` | 243 passed (34 deselected) |
| `make test-integration` | 33 passed |
| Surface probe (yoga→dalmatian) | 1464 / 1530 / 1649 / 1871 ops — **0 fail** |
| `make pulumi-tests` (полная matrix) | HTTP **6514 / 6514**, `http_critical=0`, pulumi **4 / 4** серии |
| Compatibility smoke | OK (авто Keystone `:5000` или локальный `:15000`) |
Пересобрать HTML-отчёт: `make -C pulumi-tests report` после прогона.
## Обновления