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
+15
View File
@@ -55,6 +55,21 @@ Pack sizes (ops, without HEAD): yoga ~1060 → antelope ~1108 → caracal ~1196
| `reports/series-<name>.json` | Per-series pulumi + HTTP details |
| `reports/summary.json` | Aggregates (`http_total` / `http_expected`, `http_critical`) |
## Latest results (2026-07-18)
Full matrix (`make test-pulumi` / `make pulumi-tests`):
| Metric | Value |
|---|---|
| Series | yoga → dalmatian (4) |
| `pulumi_ok` | 4 / 4 |
| HTTP probed | **6514 / 6514** (`declared` 4721 + synthetic `HEAD` 1793) |
| `http_critical` | **0** |
| Per series | yoga 1464 · antelope 1530 · caracal 1649 · dalmatian 1871 |
Open `reports/pulumi-report.html` after a run. Pytest / smoke locations for the
whole repo: [docs/operations.md — Testing](../docs/operations.md#testing).
## Approximate (not blockers)
Nova create may skip a long `BUILD` window; many Nova actions only flip server
+15
View File
@@ -55,6 +55,21 @@ open reports/pulumi-report.html
| `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 — Тестирование](../docs/ru/operations.md#тестирование).
## Approximate (не блокеры)
Nova create может пропускать длинное окно `BUILD`; многие Nova actions только
+1 -1
View File
@@ -21,7 +21,7 @@
<body>
<header>
<h1>Pulumi OpenStack API coverage</h1>
<p class="muted">Generated 2026-07-18 03:50:29 UTC · <strong>100% = HTTP contract matrix</strong> (pack ops + synthetic HEAD), not pulumi_openstack resource count. Layer B provider lifecycle is smoke only.</p>
<p class="muted">Generated 2026-07-18 06:30:32 UTC · <strong>100% = HTTP contract matrix</strong> (pack ops + synthetic HEAD), not pulumi_openstack resource count. Layer B provider lifecycle is smoke only.</p>
</header>
<main>
<div class="summary">
+21 -21
View File
@@ -2,35 +2,35 @@
"series": "antelope",
"pulumi": {
"series": "antelope",
"elapsed_s": 15.55,
"elapsed_s": 14.74,
"error": null,
"outputs": {
"auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581",
"auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb",
"created_project_id": "636996ce-af86-4a46-803a-d00392971169",
"created_user_id": "efe09170-ca36-4285-b3a4-025a3002a480",
"created_project_id": "1c910aae-e27d-4aac-81c3-22a830c0ba66",
"created_user_id": "0ef2bed4-d3de-4e3b-bd81-63170d4500bd",
"demo_net_id": "a245268b-88ba-597a-b8db-017810782f98",
"flavor_id": "1",
"image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803",
"image_name": "cirros",
"interface_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689/ade9bfa2-3134-45dc-ab23-d622e4e68e5c",
"keypair_name": "pu-antelope-bf6ba4-kp",
"network_id": "13af915a-7f32-4b03-bba3-cef4e3be9ac9",
"port_id": "ade9bfa2-3134-45dc-ab23-d622e4e68e5c",
"interface_id": "f52771f7-dfbf-43f5-8224-03aa983a6aa9/5148e3ed-e330-4c07-bf7f-b3df0c5e58a4",
"keypair_name": "pu-antelope-57dc3f-kp",
"network_id": "73f455da-3298-4d24-ad8f-05818041032a",
"port_id": "5148e3ed-e330-4c07-bf7f-b3df0c5e58a4",
"project_name": "demo",
"router_id": "e64d25a6-43f6-40d8-a3fe-b80c6768603a",
"router_iface_id": "ba04886a-aff6-464a-ba16-dd067ce6e1dd",
"secgroup_id": "b45ef742-cd84-45f3-92a6-6379facbc10b",
"secgroup_rule_id": "ed4ab26d-9d9d-4a08-a6db-261ed034e01d",
"router_id": "2b01bee5-74f0-42db-a3b3-7384bfde574f",
"router_iface_id": "52fa67db-1688-4f46-ac02-c6fd51ba7885",
"secgroup_id": "7ede16f0-073c-4265-a727-bfd361888cd6",
"secgroup_rule_id": "7c334d3d-e7d8-40f3-82a5-2f8d24de2e4a",
"series": "antelope",
"server_group_id": "fbea9f9d-2dc6-485d-ab96-e143525fb781",
"server_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689",
"server_name": "pu-antelope-bf6ba4-vm",
"subnet_id": "46f11ac5-cfe7-4a70-ab29-6ee9e000f8ea",
"tag": "pu-antelope-bf6ba4",
"volume2_id": "e6d48c67-e79c-4db1-b3a6-8b62a3540a2a",
"volume_attach_id": "94e2bacd-4643-4aa7-9f52-fdf83a65d689/7066859a-cf37-4baf-b969-4b2cea586d34",
"volume_id": "a3e4eedd-dc55-4999-b1a9-714f8dfa2c28"
"server_group_id": "1a03413b-9650-445a-a5be-f1e126cf6b57",
"server_id": "f52771f7-dfbf-43f5-8224-03aa983a6aa9",
"server_name": "pu-antelope-57dc3f-vm",
"subnet_id": "7039ff93-83f0-4105-b24c-727eaa6a9951",
"tag": "pu-antelope-57dc3f",
"volume2_id": "d64eff18-fcd8-4102-9a0d-467aab6caf40",
"volume_attach_id": "f52771f7-dfbf-43f5-8224-03aa983a6aa9/07e8ed96-ddc2-43a6-bb20-7480194c7669",
"volume_id": "e427eb9d-87f3-44a6-a80f-fc05730e6f2e"
},
"empty_exports": [],
"ok": true
@@ -13053,11 +13053,11 @@
"method": "HEAD",
"path": "/v3/os-quota-sets/{id}",
"operation_id": "cinder_quota_show__head",
"status": 404,
"status": 200,
"detail": "",
"mode": "head",
"ok": true,
"succeeded": false
"succeeded": true
},
{
"service": "cinder",
+21 -21
View File
@@ -2,35 +2,35 @@
"series": "caracal",
"pulumi": {
"series": "caracal",
"elapsed_s": 13.94,
"elapsed_s": 17.38,
"error": null,
"outputs": {
"auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581",
"auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb",
"created_project_id": "4ccc6157-9838-41ed-b609-6fad16c7485b",
"created_user_id": "eb2db72c-1204-40ed-8b34-e099a42a9ece",
"created_project_id": "31415a09-9cde-45d6-a021-44898133fbe7",
"created_user_id": "66a94333-475c-4f96-98ec-690f556fac62",
"demo_net_id": "a245268b-88ba-597a-b8db-017810782f98",
"flavor_id": "1",
"image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803",
"image_name": "cirros",
"interface_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e/3a302d32-d14f-4a89-83a4-377b8400dd64",
"keypair_name": "pu-caracal-913e05-kp",
"network_id": "d87e3ba7-88fd-439e-a700-f8c904c5962c",
"port_id": "3a302d32-d14f-4a89-83a4-377b8400dd64",
"interface_id": "4b0dd2c2-a062-4df7-8fba-e5e91b4392aa/4f61a1dc-d739-4b52-861b-945926f7bc60",
"keypair_name": "pu-caracal-079211-kp",
"network_id": "bc261b59-7e65-4f19-94b2-f8736a3d07a9",
"port_id": "4f61a1dc-d739-4b52-861b-945926f7bc60",
"project_name": "demo",
"router_id": "dbd5921f-f7af-491d-8b6c-7a108e4dee02",
"router_iface_id": "6dc250c1-3718-4785-a020-eef0f89438cb",
"secgroup_id": "e84c344b-7f7a-4b30-bf40-6f6a176f288e",
"secgroup_rule_id": "ae2be8f8-1c5f-4ebf-81ae-1c78b79089d5",
"router_id": "f8610281-2117-4175-833f-2d532783c6b7",
"router_iface_id": "2c88a159-45b3-4239-9d17-dd4a7a3e438f",
"secgroup_id": "b2dd227c-7000-4545-82b8-d8ddd7b97e43",
"secgroup_rule_id": "c12cd8fe-531e-4ef0-9401-6a60b86f871a",
"series": "caracal",
"server_group_id": "6dc9fd5e-5ecf-4289-bd1a-f2a0937cb8e9",
"server_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e",
"server_name": "pu-caracal-913e05-vm",
"subnet_id": "fe94e98e-febd-4348-8e23-b99a04733066",
"tag": "pu-caracal-913e05",
"volume2_id": "79e1cc1c-d0f0-4a63-ad0e-e8be2dc016c0",
"volume_attach_id": "ed7dacac-0d5c-42af-8dec-c9ddc3a3e66e/ef4b5b3d-6518-4959-922a-c717c54f57a9",
"volume_id": "1b947b41-3442-475c-817a-9be42362a2d5"
"server_group_id": "b738e0cb-eb50-41d4-b466-5d594588c52e",
"server_id": "4b0dd2c2-a062-4df7-8fba-e5e91b4392aa",
"server_name": "pu-caracal-079211-vm",
"subnet_id": "0888b0b9-00da-4d67-a70d-b28503d1361f",
"tag": "pu-caracal-079211",
"volume2_id": "eb595372-9882-4553-bc0c-c266784d1d2f",
"volume_attach_id": "4b0dd2c2-a062-4df7-8fba-e5e91b4392aa/b781c110-61ea-4c64-9697-7b7baa5e1d5c",
"volume_id": "43736cfa-2cb8-400a-ad79-88346c437cc3"
},
"empty_exports": [],
"ok": true
@@ -14021,11 +14021,11 @@
"method": "HEAD",
"path": "/v3/os-quota-sets/{id}",
"operation_id": "cinder_quota_show__head",
"status": 404,
"status": 200,
"detail": "",
"mode": "head",
"ok": true,
"succeeded": false
"succeeded": true
},
{
"service": "cinder",
+21 -21
View File
@@ -2,35 +2,35 @@
"series": "dalmatian",
"pulumi": {
"series": "dalmatian",
"elapsed_s": 12.89,
"elapsed_s": 11.82,
"error": null,
"outputs": {
"auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581",
"auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb",
"created_project_id": "3703536d-efea-4bb1-866d-c76a3742e2b9",
"created_user_id": "97347426-e13c-4c1e-8d48-4b4f12d785ae",
"created_project_id": "723a139f-e15b-4971-a062-4824228ec02b",
"created_user_id": "6c8b9175-3885-4dbf-931e-59aca29579fc",
"demo_net_id": "a245268b-88ba-597a-b8db-017810782f98",
"flavor_id": "1",
"image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803",
"image_name": "cirros",
"interface_id": "21bffe97-64d0-4b27-9711-dc91a405426c/ae9a0ea7-8438-410d-be4e-19508d097277",
"keypair_name": "pu-dalmatian-70f98d-kp",
"network_id": "c618bb28-a49e-4276-9839-41cbbd5f50bd",
"port_id": "ae9a0ea7-8438-410d-be4e-19508d097277",
"interface_id": "643a3d90-729e-47c4-91be-2d71e048cc8c/9bdada09-684c-49b2-9bbf-e067153740f7",
"keypair_name": "pu-dalmatian-2caef0-kp",
"network_id": "636d541b-b4f8-434f-a2a5-f8432870ee09",
"port_id": "9bdada09-684c-49b2-9bbf-e067153740f7",
"project_name": "demo",
"router_id": "7803044e-f510-4876-bc9f-20a9366b3251",
"router_iface_id": "b45e4712-be52-4621-be82-28ed23f8883c",
"secgroup_id": "329d3bd1-15b8-41ed-aeb4-06a88f5d90dd",
"secgroup_rule_id": "06d66321-c89a-4c2f-9323-d5508c8c7677",
"router_id": "1de5abd6-3948-44e1-b009-547f8a390864",
"router_iface_id": "3b94297d-fd08-4486-95eb-136f217a1be6",
"secgroup_id": "1e30a30c-ddca-467d-a4d5-a4edb479d7f3",
"secgroup_rule_id": "7689db06-1c02-4c33-b252-705984aa15d6",
"series": "dalmatian",
"server_group_id": "d4ae5792-335f-43ac-bdf0-2422541bace9",
"server_id": "21bffe97-64d0-4b27-9711-dc91a405426c",
"server_name": "pu-dalmatian-70f98d-vm",
"subnet_id": "f5b4fb63-f8a3-4309-861e-4d13b3863c19",
"tag": "pu-dalmatian-70f98d",
"volume2_id": "3adc3ced-c25c-46bd-8786-c00737cf9ac6",
"volume_attach_id": "21bffe97-64d0-4b27-9711-dc91a405426c/60b5be58-d7d8-4d46-8e04-351c19ee435d",
"volume_id": "22d3de1c-3f24-4bdc-bc79-cf4b1a47bd82"
"server_group_id": "53da92a5-9b9e-481c-a813-2445f3eecf21",
"server_id": "643a3d90-729e-47c4-91be-2d71e048cc8c",
"server_name": "pu-dalmatian-2caef0-vm",
"subnet_id": "92350576-ad17-4fd6-b811-5719d3d18b3c",
"tag": "pu-dalmatian-2caef0",
"volume2_id": "5361c5ea-8607-44ff-b4de-52af293137c1",
"volume_attach_id": "643a3d90-729e-47c4-91be-2d71e048cc8c/af788c02-dff0-4ef4-a736-aa385f2de7cf",
"volume_id": "d0eb45de-d29a-45af-948f-7e459f623225"
},
"empty_exports": [],
"ok": true
@@ -15792,11 +15792,11 @@
"method": "HEAD",
"path": "/v3/os-quota-sets/{id}",
"operation_id": "cinder_quota_show__head",
"status": 404,
"status": 200,
"detail": "",
"mode": "head",
"ok": true,
"succeeded": false
"succeeded": true
},
{
"service": "cinder",
+21 -21
View File
@@ -2,35 +2,35 @@
"series": "yoga",
"pulumi": {
"series": "yoga",
"elapsed_s": 21.05,
"elapsed_s": 28.01,
"error": null,
"outputs": {
"auth_project_id": "8924e279-51c7-582e-b6f5-8e41b33e7581",
"auth_user_id": "b76edf4a-1452-5436-a411-a099ada1f7cb",
"created_project_id": "a719f057-c4e2-4e22-9959-d236923a8ede",
"created_user_id": "32a0fb8d-4a4a-4dd4-b146-c145ffb19715",
"created_project_id": "7420191b-3936-4857-b7e9-eecc8ec7f551",
"created_user_id": "7d4e7f29-6d27-453c-a915-8f2159d79205",
"demo_net_id": "a245268b-88ba-597a-b8db-017810782f98",
"flavor_id": "1",
"image_id": "c58b99c0-2d7b-5842-b260-b617db2f7803",
"image_name": "cirros",
"interface_id": "6997d545-7aed-4b1f-b83f-01746593bd83/65b607b4-13bb-4635-9510-041b2d9db881",
"keypair_name": "pu-yoga-f8ae3f-kp",
"network_id": "5e2a0c44-766b-4154-8a80-0bcee1d3b73e",
"port_id": "65b607b4-13bb-4635-9510-041b2d9db881",
"interface_id": "db05ea56-c40a-4ac6-acbd-dc5ac25b5703/7664e368-1589-4efa-a7d2-d84cde7642a9",
"keypair_name": "pu-yoga-ec8080-kp",
"network_id": "8c2ac66a-6558-4a29-8daf-5cea581ac4ba",
"port_id": "7664e368-1589-4efa-a7d2-d84cde7642a9",
"project_name": "demo",
"router_id": "7a57a2dd-7e47-40af-9966-f199dd114fc0",
"router_iface_id": "2a600c25-898c-4444-92f3-698d9faabc86",
"secgroup_id": "59a4612f-754e-4dd4-ad82-cafc05dd8d1a",
"secgroup_rule_id": "cb4a9464-d9f8-4b96-a7f3-00c0a463586d",
"router_id": "95b514eb-b5d2-4781-a567-8e164f28f156",
"router_iface_id": "c144876c-8b2b-4534-900a-1bec13965bba",
"secgroup_id": "f173a8a9-f399-4484-a98f-729f7b7a1a52",
"secgroup_rule_id": "dd83a9ad-aa94-45c5-bf21-828fb04732b6",
"series": "yoga",
"server_group_id": "d2b1cd50-ba00-4b6e-b2dc-dae7d32eac18",
"server_id": "6997d545-7aed-4b1f-b83f-01746593bd83",
"server_name": "pu-yoga-f8ae3f-vm",
"subnet_id": "ecab7de1-6c80-4904-9676-f95eb84c84ca",
"tag": "pu-yoga-f8ae3f",
"volume2_id": "ebe99f6c-9148-4079-b6cd-30cda1337731",
"volume_attach_id": "6997d545-7aed-4b1f-b83f-01746593bd83/95982862-b32d-4f22-b29c-b01d8c7d93ad",
"volume_id": "0cdaed66-20e7-4191-8410-b865caffce81"
"server_group_id": "6a089d83-f4d7-4947-aa56-f8720160ae78",
"server_id": "db05ea56-c40a-4ac6-acbd-dc5ac25b5703",
"server_name": "pu-yoga-ec8080-vm",
"subnet_id": "295c6526-bd1b-4d17-a274-1e06675f4212",
"tag": "pu-yoga-ec8080",
"volume2_id": "954ccc29-ccb6-40af-b524-9a26287782e8",
"volume_attach_id": "db05ea56-c40a-4ac6-acbd-dc5ac25b5703/d794d477-c4f1-4ac9-8904-92f45375cbd2",
"volume_id": "d5709565-755d-4f74-8270-62e0ecef85f5"
},
"empty_exports": [],
"ok": true
@@ -12525,11 +12525,11 @@
"method": "HEAD",
"path": "/v3/os-quota-sets/{id}",
"operation_id": "cinder_quota_show__head",
"status": 404,
"status": 200,
"detail": "",
"mode": "head",
"ok": true,
"succeeded": false
"succeeded": true
},
{
"service": "cinder",