inecs 0942c57482 Add Web UI main screenshot to English and Russian doc landing pages.
Show the console on the root READMEs and docs indexes, with a link to the
full Web UI guide at the bottom.
2026-07-18 09:01:14 +03:00

Language / Язык: English | Русский

ovirt-api-simulator

Stateful laboratory simulator for the oVirt / RHV Engine REST API. Use it to test API clients and infrastructure tooling without a real Engine or hypervisors.

Lab only. This is not a production Engine, does not run hypervisors, and ships with default credentials plus a self-signed TLS certificate. Do not expose it to untrusted networks.

The simulator is backed by PostgreSQL, driven by generated Engine contract packs, and exposes the same /ovirt-engine/api and SSO OAuth2 surfaces as oVirt Engine. Semantic handlers persist mutations; long-running work is tracked as Engine jobs.

Web UI

Interactive console with endpoint catalog, Engine-shaped Try-it bodies, series hot-swap, and seed data drawers.

Web UI main

Quick start (development checkout)

cp .env.example .env
make up
make seed          # or: make seed-small|seed-large|seed-big
Surface URL
Web UI console http://127.0.0.1:5000
Engine API https://127.0.0.1/ovirt-engine/api

Only two host ports are published by default: Engine 443 and UI 5000. Override with OVIRT_ENGINE_PORT / OVIRT_UI_PORT if those are taken.

Credentials: admin@internal / secret
Also: ops@internal, developer@internal, demo@internal / secret

# OAuth password grant
curl -k -X POST https://127.0.0.1/ovirt-engine/sso/oauth/token \
  -d 'grant_type=password&username=admin@internal&password=secret&scope=ovirt-app-api'

# List VMs (HTTP Basic)
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
  https://127.0.0.1/ovirt-engine/api/vms

Quick start (published image)

Image: inecs/ovirt-api-simulator

Requires this repository checkout (gateway TLS certs and nginx config are bind-mounted):

docker compose -f docker-compose.release.yml up -d
docker compose -f docker-compose.release.yml run --rm --entrypoint python \
  simulator -m app.ovirt.seed_cli --profile minimal

curl -skf https://127.0.0.1/health/ready
curl -k -u 'admin@internal:secret' -H 'Accept: application/json' -H 'Version: 4' \
  https://127.0.0.1/ovirt-engine/api/vms

Or: make release-up && make release-seed PROFILE=minimal

Surface URL
Web UI console http://127.0.0.1:5000
Engine API https://127.0.0.1/ovirt-engine/api

Credentials: admin@internal / secret

Features

  • Real Engine paths: /ovirt-engine/api, /ovirt-engine/api/v3|v4, SSO OAuth2
  • XML + JSON representations (Accept / Content-Type)
  • Series packs 3.03.6, 4.34.5, master with operation deltas
  • Stateful PostgreSQL inventory + async jobs
  • Seed profiles: minimal, small (3h/50vm), large (10h/1000vm), big (30h/2000vm)
  • Web UI with oVirt branding (#0076B6 / charcoal #1D2226)
  • Docker Compose + Helm
  • API tests + pulumi-tests/ (Pulumi contract coverage)

Make targets

make up
make up-local            # local ports via gitignored docker-compose.override.yml
make down-local          # stop stack + remove local override
make seed
make seed-large
make test-unit
make test-integration
make test-pulumi-smoke   # Pulumi smoke
make test-pulumi         # all series × all contract ops + HTML report
make pulumi-tests        # alias for test-pulumi
make test-all            # alias for test-pulumi
make push                # git add . → multi-line commit (Ctrl-D) → origin + antropoff
# make push MSG="one line"       # skip the interactive editor

Docker Hub release (requires docker login as the Hub owner; see Operations):

make release                          # inecs/ovirt-api-simulator:<pyproject version> + :latest
make release VERSION=0.2.0            # override tag
make release-build                    # build/tag only, no push
make release-up && make release-seed  # run the published stack locally

Documentation

Guide Description
Getting started First lab session
Ports Published Engine + UI ports
Authentication Basic, OAuth2, sessions
API versions Series packs and Version header
Configuration Environment and Compose
Seed profiles minimal / small / large / big
Web UI Interactive console (screenshots)
Kubernetes / Helm Cluster install
Full index All guides

Russian mirrors: README.ru.md and docs/ru/. Switch language with the header on each page.

More screens and details: Web UI.

S
Description
Stateful-лабораторный симулятор oVirt / RHV Engine REST API. Нужен для тестирования API-клиентов и инфраструктурных инструментов без реального Engine и гипервизоров.
Readme 1.1 MiB
Languages
Python 61.9%
HTML 36%
Makefile 1.7%
Dockerfile 0.3%