From 44f7524821a072cbe3cc34d7dcbd3b61664da83f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 27 Jul 2026 12:03:48 +0400 Subject: [PATCH] v1.0.67: autotest instances are shown by cloud prefix --- DOCS/ARCHITECTURE.md | 2 +- DOCS/HISTORY.md | 12 +++++++++++- site/app.py | 2 +- site/routes/main.py | 9 ++------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/DOCS/ARCHITECTURE.md b/DOCS/ARCHITECTURE.md index 350ca87..c3f2a85 100644 --- a/DOCS/ARCHITECTURE.md +++ b/DOCS/ARCHITECTURE.md @@ -1,6 +1,6 @@ # Архитектура app-autotest — полный документ -v1.0.66, 27.07.2026 +v1.0.67, 27.07.2026 --- diff --git a/DOCS/HISTORY.md b/DOCS/HISTORY.md index 1fe43e1..79d683c 100644 --- a/DOCS/HISTORY.md +++ b/DOCS/HISTORY.md @@ -1,6 +1,16 @@ # История разработки app-autotest -# v1.0.66 (27.07.2026) — backend status resolver for operations +# v1.0.67 (27.07.2026) — autotest instances are shown by cloud prefix + +### Что изменилось +- В `site/routes/main.py` список инстансов сервиса больше не отфильтровывается через `/tmp/instances.json`. +- Теперь в таблицу попадают все облачные инстансы с префиксом `autotest-`. +- Трекер оставлен только как fallback, если новый autotest-инстанс ещё не успел появиться в ответе облака. + +### Что это чинит +- Ситуацию, когда autotest-инстанс уже есть в облаке, но не показывается в таблице из-за отсутствия записи в json. + +## v1.0.66 (27.07.2026) — backend status resolver for operations ### Что изменилось - В `site/routes/main.py` добавлен канонический резолвер статуса инстанса для `/api/operations/`. diff --git a/site/app.py b/site/app.py index 97b435a..a600ce0 100644 --- a/site/app.py +++ b/site/app.py @@ -6,7 +6,7 @@ from routes.main import bp as main_bp from routes.api import bp as api_bp from routes.api_test import bp as api_test_bp -VERSION = "1.0.66" +VERSION = "1.0.67" app = Flask(__name__, template_folder="templates", static_folder="static") app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc") diff --git a/site/routes/main.py b/site/routes/main.py index 6e00910..e1941e5 100644 --- a/site/routes/main.py +++ b/site/routes/main.py @@ -152,25 +152,20 @@ def api_operations(svc_id): client = HttpClient(current_app.config["NUBES_API_ENDPOINT"], active_token) detail = get_service_detail(client, svc_id) ops = detail.get("operations", []) - # только отслеживаемые инстансы этого сервиса tracked = tracker_list() tracked_by_uid = {t["instanceUid"]: t for t in tracked if t["svcId"] == svc_id} - tracked_uids = set(tracked_by_uid.keys()) instances = get_instances(client) nubes_uids = {i["instanceUid"] for i in instances} svc_instances = [] for i in instances: - uid = i.get("instanceUid") - if uid not in tracked_uids: - continue if not str(i.get("displayName", "")).startswith(AUTOTEST_PREFIX): continue if i.get("explainedStatus") in ("deleted",): continue item = dict(i) - item["status"] = _resolve_instance_status(item, tracked_by_uid.get(uid)) + item["status"] = _resolve_instance_status(item, tracked_by_uid.get(i.get("instanceUid"))) svc_instances.append(item) - # Если Nubes уже не отдаёт tracked-инстанс после reload, добавляем его из трекера. + # Если Nubes ещё не отдаёт только что созданный autotest-инстанс, добавляем его из трекера. for uid, t in tracked_by_uid.items(): if uid not in nubes_uids: svc_instances.append({