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:
+1
-1
@@ -18,7 +18,7 @@ header on each page. Russian mirrors live under [`ru/`](ru/README.md).
|
||||
| [Seed profiles](seed-profiles.md) | `minimal` / `demo` |
|
||||
| [Clients](clients.md) | SDK / CLI |
|
||||
| [Web UI](web-ui.md) | Console drawers |
|
||||
| [Operations](operations.md) | Day-2, release, reseed |
|
||||
| [Operations](operations.md) | Day-2, release, reseed, **testing** |
|
||||
| [Architecture](architecture.md) | Components & request path |
|
||||
| [Security](security.md) | Lab threat model |
|
||||
| [Observability](observability.md) | Health & logs |
|
||||
|
||||
@@ -31,3 +31,18 @@ open reports/pulumi-report.html
|
||||
5. Destroy stack; emit HTML + JUnit
|
||||
|
||||
See [`pulumi-tests/README.md`](../pulumi-tests/README.md).
|
||||
Broader pytest / smoke map: [operations.md — Testing](operations.md#testing).
|
||||
|
||||
## Latest results (2026-07-18)
|
||||
|
||||
Full suite (`make pulumi-tests`, `collections_only=false`):
|
||||
|
||||
| Series | HTTP ok / total | Pulumi |
|
||||
|---|---:|---|
|
||||
| yoga | 1464 / 1464 | ok |
|
||||
| antelope | 1530 / 1530 | ok |
|
||||
| caracal | 1649 / 1649 | ok |
|
||||
| dalmatian | 1871 / 1871 | ok |
|
||||
| **All** | **6514 / 6514** (`http_critical=0`) | **4 / 4** |
|
||||
|
||||
Artifacts: `pulumi-tests/reports/pulumi-report.html`, `summary.json`.
|
||||
|
||||
+30
-6
@@ -112,17 +112,41 @@ make release-build # local tags only
|
||||
See [kubernetes.md](kubernetes.md) for logs, reseed via `kubectl exec`, and
|
||||
uninstall.
|
||||
|
||||
## API coverage lab CI (pulumi-tests)
|
||||
## Testing
|
||||
|
||||
Pulumi probes every pack operation across series — see
|
||||
[hypervisor-lab.md](hypervisor-lab.md).
|
||||
| Location | What |
|
||||
|---|---|
|
||||
| `tests/unit/` | Offline unit tests (ASGI / FakeDatabase) |
|
||||
| `tests/openstack/` | Pack contracts, registry, live surface / lifecycle |
|
||||
| `tests/integration/` | Postgres-backed integration |
|
||||
| `tests/compatibility/` | Surface probe + group smoke markers |
|
||||
| `examples/python/openstack_smoke.py` | Host multi-port smoke (`make smoke` / `make test-compatibility`) |
|
||||
| `examples/python/openstack_surface_probe.py` | Lifecycle probe every pack op × series |
|
||||
| [`pulumi-tests/`](../pulumi-tests/README.md) | Pulumi Layer B + full HTTP matrix (yoga→dalmatian) |
|
||||
|
||||
```bash
|
||||
make test-pulumi-smoke # from repo root
|
||||
make test-pulumi
|
||||
make test # offline unit + contract (no Postgres)
|
||||
make test-integration # -m integration (Postgres)
|
||||
make test-surface # surface probe + tests/openstack against Compose
|
||||
make test-compatibility # seed minimal + openstack_smoke.py
|
||||
make pulumi-tests # full pulumi-tests suite (alias: make test-pulumi)
|
||||
make test-pulumi-smoke # fast collection GET + HEAD only
|
||||
```
|
||||
|
||||
Reports: `pulumi-tests/reports/pulumi-report.html` and `pulumi-junit.xml`.
|
||||
Details for the Pulumi lab: [hypervisor-lab.md](hypervisor-lab.md).
|
||||
Reports: `pulumi-tests/reports/pulumi-report.html`, `pulumi-junit.xml`, `summary.json`.
|
||||
|
||||
### Latest lab results (2026-07-18)
|
||||
|
||||
| Suite | Result |
|
||||
|---|---|
|
||||
| `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` (full matrix) | HTTP **6514 / 6514**, `http_critical=0`, pulumi **4 / 4** series |
|
||||
| Compatibility smoke | OK (auto Keystone `:5000` or local `:15000`) |
|
||||
|
||||
Regenerate the HTML report anytime with `make -C pulumi-tests report` after a suite run.
|
||||
|
||||
## Upgrades
|
||||
|
||||
|
||||
+1
-1
@@ -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 и логи |
|
||||
|
||||
@@ -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
@@ -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` после прогона.
|
||||
|
||||
## Обновления
|
||||
|
||||
|
||||
Reference in New Issue
Block a user