naeel 91e97f6f75 v1.2.0: unified executor + flexible instance refs + params-render.js
Phase 1 — New modules:
- api/utils.py: find_uid(), uid_from_location() (replaces 2 duplicates)
- operations/poll.py: poll_until_done() (shared sync/async polling)
- operations/executor.py: execute_operation() (single CREATE/non-CREATE flow)

Phase 2 — Format + validation:
- routes/api_scenario_defs.py: _validate_steps with output/instance_ref/instance_uid
- operations/scenario.py: resolve instance_uid > instance_ref > service_id,
  use executor + poll_until_done, persist instance_bindings

Phase 3 — Migration:
- routes/api_test.py: create/non-create through executor, _finish_op through poll_until_done
- db/init_db.py: startup cleanup of stuck scenario_runs (>1h)

Phase 4 — UI shared module:
- static/js/params-render.js: renderParamRow, renderMapFixedRow, collectParams
- static/js/operations.js: use params-render.js (remove duplicates)
- templates/index.html: include params-render.js
- app.py: bump 1.1.57 → 1.2.0
2026-07-31 08:55:06 +04:00
2026-07-30 13:38:33 +04:00

App Autotest

Flask-приложение для автотестов сервисов Nubes. Деплоится как облачный сервис Web-сервер с фреймворком Flask на платформе Nubes.

Документация API

См. основной репо: DOCS/стадии операций, поток CREATE, доступ к API.

Архитектура

Полный обзор: ../DOCS/ARCHITECTURE-FULL.md — все файлы, CREATE flow, глобальное состояние, план развития.

Сервис

https://autotest.pythonk8s.dev.nubes.ru/ (test)

Параметры облачного сервиса

appConfiguration:

{
  "version": "3.12",
  "gitPath": "https://gitea.services.ngcloud.ru/forcloud/app-autotest.git",
  "healthPath": ""
}

jsonEnv:

{
  "NUBES_API_TOKEN": "...",
  "NUBES_API_ENDPOINT": "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
}

Структура

app/
├── api/          # HTTP-клиент облака
├── operations/   # Операции API (одна на файл)
├── routes/       # Flask blueprints
├── static/       # CSS, JS, логотип
└── templates/    # Jinja2 шаблоны (дизайн Nubes)
S
Description
No description provided
Readme
2.1 MiB
Languages
Python 63.8%
JavaScript 30.2%
HTML 3.7%
CSS 2.3%