Expand lab seed tiers, OpenAPI PARAMS, and console DATA/Params UX.

This commit is contained in:
2026-07-18 08:46:39 +03:00
parent f8d3cbdd59
commit 63cc409424
71 changed files with 38380 additions and 796 deletions
+62 -3
View File
@@ -13,8 +13,15 @@ PUSH_LATEST ?= 1
COMPOSE_RELEASE ?= $(COMPOSE) -f docker-compose.release.yml
HELM_CHART ?= ./helm/vmware-api-simulator
.PHONY: help install format lint typecheck test test-unit test-integration test-contract test-compatibility test-surface evidence coverage run dev up down restart logs docker-build docker-up docker-down docker-logs docker-restart db-up db-down db-migrate db-reset api-import api-diff seed clean ci ci-all shell release release-build release-up release-down release-seed helm-deps helm-template \
pulumi-tests pulumi-tests-smoke test-pulumi-smoke test-pulumi test-smoke-all test-all clean-test-resources
# Preferred host ports for `make up-local` (gitignored docker-compose.override.yml).
# Override on the CLI if needed: make up-local LOCAL_HTTPS_PORT=9443
COMPOSE_OVERRIDE ?= docker-compose.override.yml
LOCAL_HTTP_PORT ?= 18080
LOCAL_HTTPS_PORT ?= 18443
LOCAL_POSTGRES_PORT ?= 15434
.PHONY: help install format lint typecheck test test-unit test-integration test-contract test-compatibility test-surface evidence coverage run dev up up-local down down-local restart logs docker-build docker-up docker-down docker-logs docker-restart db-up db-down db-migrate db-reset api-import api-diff seed clean ci ci-all shell push release release-build release-up release-down release-seed helm-deps helm-template \
pulumi-tests pulumi-tests-smoke test-pulumi-smoke test-pulumi test-smoke-all test-all clean-test-resources vsphere-universe vsphere-param-index vsphere-bundles vsphere-seed-dump
help: ## Show available commands
@awk 'BEGIN {FS = ":.*## "}; /^[a-zA-Z0-9_-]+:.*## / {printf "%-22s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
@@ -70,9 +77,26 @@ vsphere-matrix: ## Full REST matrix: all verbs × majors 69 (no 5xx)
$(COMPOSE) run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 $(SERVICE_DEV) \
python scripts/vsphere_full_matrix_probe.py
vsphere-seed-dump: ## 100% seed↔live inventory dump audit (PROFILE=small|large|big)
@test -f .env || cp .env.example .env
$(COMPOSE) up -d --wait
SEED_VSPHERE_PROFILE="$${VSPHERE_PROFILE:-$${PROFILE:-large}}" \
SEED_VSPHERE_LARGE_VMS="$${VSPHERE_VMS:-1000}" \
SEED_VSPHERE_LARGE_HOSTS="$${VSPHERE_HOSTS:-10}" \
$(COMPOSE) run --rm --entrypoint python $(SERVICE_SIM) -m app.simulation.seed_cli
$(COMPOSE) --profile tools run --rm --no-deps \
-e VSPHERE_BASE=http://simulator:8080 \
-e SEED_VSPHERE_PROFILE="$${VSPHERE_PROFILE:-$${PROFILE:-large}}" \
-e SEED_VSPHERE_LARGE_VMS="$${VSPHERE_VMS:-1000}" \
-e SEED_VSPHERE_LARGE_HOSTS="$${VSPHERE_HOSTS:-10}" \
$(SERVICE_DEV) python scripts/vsphere_seed_dump_audit.py \
--profile "$${VSPHERE_PROFILE:-$${PROFILE:-large}}"
vsphere-universe: ## Regenerate Broadcom Automation API universe.json from operations index
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) python scripts/generate_vsphere_universe.py
vsphere-param-index: ## Build console param index from official Automation OpenAPI
python3 scripts/generate_vsphere_param_index.py
vsphere-bundles: ## Regenerate stub OpenAPI matrices + evidence ledgers
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) python scripts/write_vsphere_bundles.py
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) python scripts/write_vsphere_evidence.py
@@ -94,11 +118,17 @@ test-vsphere: ## Native vSphere unit + integration + surface + majors matrix
tests/integration/test_vsphere_api_surface_data.py \
tests/integration/test_vsphere_soap_depth.py \
tests/integration/test_vsphere_soap_create_vm.py \
tests/integration/test_vsphere_deep_realism.py \
tests/integration/test_vsphere_full_api.py -q
$(COMPOSE) run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 $(SERVICE_DEV) \
python scripts/vsphere_surface_probe.py
$(COMPOSE) run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 $(SERVICE_DEV) \
python scripts/vsphere_full_matrix_probe.py
$(COMPOSE) run --rm --entrypoint python $(SERVICE_SIM) -m app.simulation.seed_cli
$(COMPOSE) --profile tools run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 \
-e SEED_VSPHERE_PROFILE="$${VSPHERE_PROFILE:-$${PROFILE:-large}}" \
$(SERVICE_DEV) python scripts/vsphere_seed_dump_audit.py \
--profile "$${VSPHERE_PROFILE:-$${PROFILE:-large}}"
$(COMPOSE) run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 $(SERVICE_DEV) \
python scripts/vsphere_real_data_spotcheck.py
$(COMPOSE) run --rm --no-deps -e VSPHERE_BASE=http://simulator:8080 $(SERVICE_DEV) \
@@ -137,9 +167,21 @@ up: ## Start PostgreSQL, simulator, and TLS gateway
@test -f .env || cp .env.example .env
$(COMPOSE) up -d --build --wait
up-local: ## Start on free local ports via gitignored compose override
@COMPOSE="$(COMPOSE)" COMPOSE_OVERRIDE="$(COMPOSE_OVERRIDE)" \
LOCAL_HTTP_PORT="$(LOCAL_HTTP_PORT)" \
LOCAL_HTTPS_PORT="$(LOCAL_HTTPS_PORT)" \
LOCAL_POSTGRES_PORT="$(LOCAL_POSTGRES_PORT)" \
bash scripts/up_local.sh
down: ## Stop local services
$(COMPOSE) down
down-local: ## Stop local stack and remove gitignored compose override
$(COMPOSE) down
@rm -f $(COMPOSE_OVERRIDE)
@echo "Stopped local stack and removed $(COMPOSE_OVERRIDE)"
restart: ## Rebuild and restart the stack
@test -f .env || cp .env.example .env
$(COMPOSE) up -d --build --force-recreate --wait
@@ -187,7 +229,7 @@ api-import: ## Import an API snapshot
api-diff: ## Compare API snapshots
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) vmware-api-contract diff $(ARGS)
seed: ## Seed simulation data (vSphere; PROFILE= / VSPHERE_PROFILE=small|large|demo-cluster)
seed: ## Seed simulation data (vSphere; PROFILE= / VSPHERE_PROFILE=small|large|big)
@test -f .env || cp .env.example .env
SEED_PROFILE="$${PROFILE:-small}" \
SEED_VSPHERE_PROFILE="$${VSPHERE_PROFILE:-$${PROFILE:-large}}" \
@@ -198,8 +240,25 @@ seed: ## Seed simulation data (vSphere; PROFILE= / VSPHERE_PROFILE=small|large|d
shell: ## Open an interactive shell in the development container
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) bash
push: ## git add ., prompt for commit message, push to both remotes
@git add .
@if git diff --cached --quiet; then \
echo "Nothing to commit (working tree clean after git add .)."; \
else \
printf "Commit message: "; \
read -r msg </dev/tty; \
if [ -z "$$msg" ]; then \
echo "Empty commit message; aborting." >&2; \
exit 1; \
fi; \
git commit -m "$$msg"; \
fi
@echo "Pushing to both remotes via origin..."
@git push -u origin HEAD
clean: ## Remove generated local artifacts
rm -rf .coverage coverage.xml htmlcov .mypy_cache .pytest_cache .ruff_cache
rm -f $(COMPOSE_OVERRIDE)
ci: ## Offline quality gate + full API surface probe (Postgres)
$(COMPOSE) run --rm --no-deps $(SERVICE_DEV) sh -c '\