v1.0.74: version bump before push
This commit is contained in:
@@ -129,12 +129,14 @@ def api_test():
|
||||
svc_op_id = data["svcOperationId"]
|
||||
params = data.get("params", {})
|
||||
instance_uid = data.get("instanceUid")
|
||||
display_name = data.get("displayName", f"autotest-{svc_id}")
|
||||
display_name = data.get("displayName") or ""
|
||||
|
||||
client = _client()
|
||||
|
||||
try:
|
||||
if op_name == "create":
|
||||
if not display_name:
|
||||
display_name = f"autotest-{svc_id}"
|
||||
display_name = _unique_display_name(client, display_name)
|
||||
payload = {"serviceId": svc_id, "displayName": display_name, "descr": ""}
|
||||
resp = client.post("/instances", payload)
|
||||
@@ -190,8 +192,9 @@ def api_test():
|
||||
|
||||
# фоном ждать завершения
|
||||
is_delete = (op_name == "delete")
|
||||
display_name = display_name or instance_uid or f"instance-{svc_id}"
|
||||
threading.Thread(target=_finish_op, args=(client, op_uid, instance_uid, svc_id, display_name, op_name, svc_op_id, False, is_delete), daemon=True).start()
|
||||
return jsonify({"status": "RUNNING", "opUid": op_uid, "instanceUid": instance_uid})
|
||||
return jsonify({"status": "RUNNING", "opUid": op_uid, "instanceUid": instance_uid, "displayName": display_name})
|
||||
|
||||
except Exception as e:
|
||||
import traceback
|
||||
|
||||
+13
-17
@@ -156,39 +156,35 @@ 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_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
|
||||
svc_instances = []
|
||||
cloud_names = set()
|
||||
|
||||
for i in instances:
|
||||
if not str(i.get("displayName", "")).startswith(AUTOTEST_PREFIX):
|
||||
display_name = str(i.get("displayName", "") or "")
|
||||
if not display_name.startswith(AUTOTEST_PREFIX):
|
||||
continue
|
||||
if i.get("explainedStatus") in ("deleted",):
|
||||
continue
|
||||
item = dict(i)
|
||||
item["status"] = _resolve_instance_status(item, tracked_by_uid.get(i.get("instanceUid")))
|
||||
_store_instance(item)
|
||||
# Если Nubes ещё не отдаёт только что созданный autotest-инстанс, добавляем его из трекера.
|
||||
svc_instances.append(item)
|
||||
cloud_names.add(display_name)
|
||||
|
||||
# tracker — только временный fallback, если cloud ещё не отдал конкретный autotest-инстанс
|
||||
for uid, t in tracked_by_uid.items():
|
||||
if uid not in nubes_uids:
|
||||
_store_instance({
|
||||
display_name = str(t.get("displayName", "") or "")
|
||||
if display_name in cloud_names:
|
||||
continue
|
||||
svc_instances.append({
|
||||
"instanceUid": uid,
|
||||
"displayName": t["displayName"],
|
||||
"displayName": display_name,
|
||||
"serviceId": svc_id,
|
||||
"svc": detail.get("svc", ""),
|
||||
"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
|
||||
|
||||
Reference in New Issue
Block a user