v1.0.67: autotest instances are shown by cloud prefix
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Архитектура app-autotest — полный документ
|
# Архитектура app-autotest — полный документ
|
||||||
|
|
||||||
v1.0.66, 27.07.2026
|
v1.0.67, 27.07.2026
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+11
-1
@@ -1,6 +1,16 @@
|
|||||||
# История разработки app-autotest
|
# История разработки 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>`.
|
- В `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 import bp as api_bp
|
||||||
from routes.api_test import bp as api_test_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 = 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")
|
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)
|
client = HttpClient(current_app.config["NUBES_API_ENDPOINT"], active_token)
|
||||||
detail = get_service_detail(client, svc_id)
|
detail = get_service_detail(client, svc_id)
|
||||||
ops = detail.get("operations", [])
|
ops = detail.get("operations", [])
|
||||||
# только отслеживаемые инстансы этого сервиса
|
|
||||||
tracked = tracker_list()
|
tracked = tracker_list()
|
||||||
tracked_by_uid = {t["instanceUid"]: t for t in tracked if t["svcId"] == svc_id}
|
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)
|
instances = get_instances(client)
|
||||||
nubes_uids = {i["instanceUid"] for i in instances}
|
nubes_uids = {i["instanceUid"] for i in instances}
|
||||||
svc_instances = []
|
svc_instances = []
|
||||||
for i in 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):
|
if not str(i.get("displayName", "")).startswith(AUTOTEST_PREFIX):
|
||||||
continue
|
continue
|
||||||
if i.get("explainedStatus") in ("deleted",):
|
if i.get("explainedStatus") in ("deleted",):
|
||||||
continue
|
continue
|
||||||
item = dict(i)
|
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)
|
svc_instances.append(item)
|
||||||
# Если Nubes уже не отдаёт tracked-инстанс после reload, добавляем его из трекера.
|
# Если Nubes ещё не отдаёт только что созданный autotest-инстанс, добавляем его из трекера.
|
||||||
for uid, t in tracked_by_uid.items():
|
for uid, t in tracked_by_uid.items():
|
||||||
if uid not in nubes_uids:
|
if uid not in nubes_uids:
|
||||||
svc_instances.append({
|
svc_instances.append({
|
||||||
|
|||||||
Reference in New Issue
Block a user