Initial release of the oVirt/RHV Engine API simulator.

Stateful FastAPI lab with contract packs, Compose/Helm, Docker Hub release
targets, and Pulumi coverage across all Engine series (GET/POST/PUT/DELETE/HEAD).
This commit is contained in:
2026-07-18 04:49:28 +03:00
commit cbd0adca91
218 changed files with 246804 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
**Language / Язык:** [English](../../domains/README.md) | [Русский](README.md)
# Руководства по доменам
Эти страницы кратко описывают устойчивую семантику Engine по областям. Полные
списки методов — в каталоге Web UI или `contracts/ovirt/<series>/api.json`.
| Руководство | Коллекции / фокус |
|---|---|
| [Datacenters и clusters](datacenters-clusters.md) | `datacenters`, `clusters` |
| [Hosts](hosts.md) | `hosts` |
| [Виртуальные машины](vms.md) | `vms`, attachments дисков, NIC, snapshots |
| [Storage](storage.md) | `storagedomains`, `disks`, connections |
| [Сети](networks.md) | `networks`, `vnicprofiles` |
| [Identity и доступ](identity.md) | `users`, `roles`, `permissions`, SSO |
| [Jobs и events](jobs.md) | `jobs`, `events` |
| [Schema-коллекции](schema-collections.md) | Остальные коллекции из pack |
Также: [Поверхность API](../api-surface.md) и [Покрытие API](../api_coverage.md).
+21
View File
@@ -0,0 +1,21 @@
**Language / Язык:** [English](../../domains/datacenters-clusters.md) | [Русский](datacenters-clusters.md)
# Datacenters и clusters
| Коллекция | Путь |
|---|---|
| Datacenters | `/ovirt-engine/api/datacenters` |
| Clusters | `/ovirt-engine/api/clusters` |
Minimal seed создаёт один datacenter и один cluster. Demo seed увеличивает число
хостов и плотность ВМ в той же топологии.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/datacenters
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/clusters
```
Связанное: [Hosts](hosts.md), [Виртуальные машины](vms.md).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](../../domains/hosts.md) | [Русский](hosts.md)
# Hosts
| Коллекция | Путь |
|---|---|
| Hosts | `/ovirt-engine/api/hosts` |
Хосты принадлежат cluster и участвуют в размещении ВМ в лабораторных сценариях.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/hosts
```
Demo seed создаёт несколько хостов для ~1000 ВМ. Связанное:
[Datacenters и clusters](datacenters-clusters.md).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](../../domains/identity.md) | [Русский](identity.md)
# Identity и доступ
| Коллекция | Путь |
|---|---|
| Domains | `/ovirt-engine/api/domains` |
| Users | `/ovirt-engine/api/users` |
| Groups | `/ovirt-engine/api/groups` |
| Roles | `/ovirt-engine/api/roles` |
| Permissions | `/ovirt-engine/api/permissions` |
| SSO | `/ovirt-engine/sso/oauth/*` |
Seed создаёт домен `internal` и principals `admin@internal`, `ops@internal`,
`developer@internal`, `demo@internal` (пароль `secret`).
Потоки аутентификации: [Аутентификация](../authentication.md).
+20
View File
@@ -0,0 +1,20 @@
**Language / Язык:** [English](../../domains/jobs.md) | [Русский](jobs.md)
# Jobs и events
| Коллекция | Путь |
|---|---|
| Jobs | `/ovirt-engine/api/jobs` |
| Events | `/ovirt-engine/api/events` |
Длительные операции Engine создают записи jobs со steps. Seed вставляет
завершённый sample job. Events фиксируют сигналы жизненного цикла инвентаря для
лабораторного просмотра.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/jobs
```
Длительность задач можно ускорить через `SIMULATION_TIME_SCALE`
([configuration.md](../configuration.md)).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](../../domains/networks.md) | [Русский](networks.md)
# Сети
| Коллекция | Путь |
|---|---|
| Networks | `/ovirt-engine/api/networks` |
| VNIC profiles | `/ovirt-engine/api/vnicprofiles` |
ВМ подключают NIC, ссылающиеся на vNIC profiles и логические сети.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/networks
```
Связанное: [Виртуальные машины](vms.md).
+13
View File
@@ -0,0 +1,13 @@
**Language / Язык:** [English](../../domains/schema-collections.md) | [Русский](schema-collections.md)
# Schema-коллекции
Операции активного series pack без специализированного semantic handler
обслуживает **schema engine**. Ответы следуют форме контракта и при необходимости
сохраняются в `ov_api_objects`.
Полный каталог — в Web UI или в `contracts/ovirt/<series>/api.json`. Числа
покрытия: [api_coverage.md](../api_coverage.md).
Примеры коллекций из pack (доступность зависит от series): `bookmarks`, `tags`,
`quotas`, `affinitygroups` и другие коллекции Engine, связанные с корнем API.
+20
View File
@@ -0,0 +1,20 @@
**Language / Язык:** [English](../../domains/storage.md) | [Русский](storage.md)
# Storage
| Коллекция | Путь |
|---|---|
| Storage domains | `/ovirt-engine/api/storagedomains` |
| Storage connections | `/ovirt-engine/api/storageconnections` |
| Disks | `/ovirt-engine/api/disks` |
Seed подключает storage domains к datacenter и создаёт sample-диски для ВМ.
Пути attach/expand/delete дисков покрыты клиентскими P0 smoke.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/storagedomains
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/disks
```
+26
View File
@@ -0,0 +1,26 @@
**Language / Язык:** [English](../../domains/vms.md) | [Русский](vms.md)
# Виртуальные машины
| Коллекция | Путь |
|---|---|
| VMs | `/ovirt-engine/api/vms` |
| Templates | `/ovirt-engine/api/templates` |
Вложенные ресурсы (disk attachments, NIC, snapshots) доступны под id ВМ, если
они объявлены в pack.
```bash
# Список
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/vms
# Создание (эскиз JSON)
curl -k -u 'admin@internal:secret' -H 'Content-Type: application/json' -H 'Version: 4' \
-d '{"name":"lab-vm-1","cluster":{"name":"Default"}}' \
https://127.0.0.1/ovirt-engine/api/vms
```
Длительные действия отражаются как Engine [jobs](jobs.md). Клиентские suites
проверяют create/get/modify/delete ВМ, а также диски и NIC — см.
[`pulumi-tests/`](../../../pulumi-tests/README.ru.md).