v1.0.67: autotest instances are shown by cloud prefix
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Архитектура app-autotest — полный документ
|
||||
|
||||
v1.0.66, 27.07.2026
|
||||
v1.0.67, 27.07.2026
|
||||
|
||||
---
|
||||
|
||||
|
||||
+11
-1
@@ -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/<svc_id>`.
|
||||
|
||||
+1
-1
@@ -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")
|
||||
|
||||
+2
-7
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user