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](README.md) | [Русский](../ru/domains/README.md)
# Domain guides
These pages summarize durable Engine semantics by area. For exhaustive method
lists, use the Web UI catalog or `contracts/ovirt/<series>/api.json`.
| Guide | Collections / focus |
|---|---|
| [Datacenters & clusters](datacenters-clusters.md) | `datacenters`, `clusters` |
| [Hosts](hosts.md) | `hosts` |
| [Virtual machines](vms.md) | `vms`, disks attachments, NICs, snapshots |
| [Storage](storage.md) | `storagedomains`, `disks`, connections |
| [Networks](networks.md) | `networks`, `vnicprofiles` |
| [Identity & access](identity.md) | `users`, `roles`, `permissions`, SSO |
| [Jobs & events](jobs.md) | `jobs`, `events` |
| [Schema collections](schema-collections.md) | Remaining pack-backed collections |
See also [API surface](../api-surface.md) and [API coverage](../api_coverage.md).
+21
View File
@@ -0,0 +1,21 @@
**Language / Язык:** [English](datacenters-clusters.md) | [Русский](../ru/domains/datacenters-clusters.md)
# Datacenters & clusters
| Collection | Path |
|---|---|
| Datacenters | `/ovirt-engine/api/datacenters` |
| Clusters | `/ovirt-engine/api/clusters` |
Minimal seed creates one datacenter and one cluster. Demo seed expands hosts and
VM density under the same topology.
```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
```
Related: [Hosts](hosts.md), [Virtual machines](vms.md).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](hosts.md) | [Русский](../ru/domains/hosts.md)
# Hosts
| Collection | Path |
|---|---|
| Hosts | `/ovirt-engine/api/hosts` |
Hosts belong to a cluster and participate in VM placement for lab scenarios.
```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 creates multiple hosts to support ~1000 VMs. Related:
[Datacenters & clusters](datacenters-clusters.md).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](identity.md) | [Русский](../ru/domains/identity.md)
# Identity & access
| Collection | Path |
|---|---|
| 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 creates domain `internal` and principals `admin@internal`, `ops@internal`,
`developer@internal`, `demo@internal` (password `secret`).
Authentication flows: [Authentication](../authentication.md).
+20
View File
@@ -0,0 +1,20 @@
**Language / Язык:** [English](jobs.md) | [Русский](../ru/domains/jobs.md)
# Jobs & events
| Collection | Path |
|---|---|
| Jobs | `/ovirt-engine/api/jobs` |
| Events | `/ovirt-engine/api/events` |
Long-running Engine operations create job records with steps. Seed inserts a
finished sample job. Events capture inventory lifecycle signals for lab
inspection.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/jobs
```
Task timing can be accelerated with `SIMULATION_TIME_SCALE`
([configuration.md](../configuration.md)).
+17
View File
@@ -0,0 +1,17 @@
**Language / Язык:** [English](networks.md) | [Русский](../ru/domains/networks.md)
# Networks
| Collection | Path |
|---|---|
| Networks | `/ovirt-engine/api/networks` |
| VNIC profiles | `/ovirt-engine/api/vnicprofiles` |
VMs attach NICs that reference vNIC profiles and logical networks.
```bash
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/networks
```
Related: [Virtual machines](vms.md).
+15
View File
@@ -0,0 +1,15 @@
**Language / Язык:** [English](schema-collections.md) | [Русский](../ru/domains/schema-collections.md)
# Schema collections
Operations declared in the active series pack that do not have a specialized
semantic handler are served by the **schema engine**. Responses follow the
contract shape and persist into `ov_api_objects` where applicable.
Browse the full catalog in the Web UI or open
`contracts/ovirt/<series>/api.json`. Coverage numbers:
[api_coverage.md](../api_coverage.md).
Examples of pack-backed entry points (availability depends on series):
`bookmarks`, `tags`, `quotas`, `affinitygroups`, and other Engine collections
linked from the API root.
+20
View File
@@ -0,0 +1,20 @@
**Language / Язык:** [English](storage.md) | [Русский](../ru/domains/storage.md)
# Storage
| Collection | Path |
|---|---|
| Storage domains | `/ovirt-engine/api/storagedomains` |
| Storage connections | `/ovirt-engine/api/storageconnections` |
| Disks | `/ovirt-engine/api/disks` |
Seed attaches storage domains to the datacenter and creates sample disks for
VMs. Disk attach/expand/delete paths are covered by client P0 smokes.
```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](vms.md) | [Русский](../ru/domains/vms.md)
# Virtual machines
| Collection | Path |
|---|---|
| VMs | `/ovirt-engine/api/vms` |
| Templates | `/ovirt-engine/api/templates` |
Nested resources (disk attachments, NICs, snapshots) are available under each VM
id where the pack declares them.
```bash
# List
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
https://127.0.0.1/ovirt-engine/api/vms
# Create (JSON sketch)
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
```
Long-running actions surface as Engine [jobs](jobs.md). Client suites exercise
create/get/modify/delete VM plus disk and NIC flows — see
[`pulumi-tests/`](../../pulumi-tests/README.md).