v1.0.71: finished status shows instance name

This commit is contained in:
2026-07-27 12:43:07 +04:00
parent 199decf96c
commit a06a147c4c
5 changed files with 42 additions and 9 deletions
+16 -3
View File
@@ -156,7 +156,19 @@ def api_operations(svc_id):
tracked_by_uid = {t["instanceUid"]: t for t in tracked if t["svcId"] == svc_id}
instances = get_instances(client)
nubes_uids = {i["instanceUid"] for i in instances}
svc_instances = []
svc_instances_by_name = {}
def _store_instance(item):
display_name = str(item.get("displayName", "") or "")
if not display_name.startswith(AUTOTEST_PREFIX):
return
existing = svc_instances_by_name.get(display_name)
if existing is None:
svc_instances_by_name[display_name] = item
return
if existing.get("status") == "creating" and item.get("status") != "creating":
svc_instances_by_name[display_name] = item
for i in instances:
if not str(i.get("displayName", "")).startswith(AUTOTEST_PREFIX):
continue
@@ -164,11 +176,11 @@ def api_operations(svc_id):
continue
item = dict(i)
item["status"] = _resolve_instance_status(item, tracked_by_uid.get(i.get("instanceUid")))
svc_instances.append(item)
_store_instance(item)
# Если Nubes ещё не отдаёт только что созданный autotest-инстанс, добавляем его из трекера.
for uid, t in tracked_by_uid.items():
if uid not in nubes_uids:
svc_instances.append({
_store_instance({
"instanceUid": uid,
"displayName": t["displayName"],
"serviceId": svc_id,
@@ -176,6 +188,7 @@ def api_operations(svc_id):
"explainedStatus": "",
"status": "creating",
})
svc_instances = list(svc_instances_by_name.values())
return jsonify({"svc": detail.get("svc", ""), "operations": ops, "instances": svc_instances})
except Exception as e:
return jsonify({"error": str(e)}), 500