v1.2.21: fix broken advisory lock (→ partial unique index), escName add " escape, lock_check fallback False

This commit is contained in:
2026-07-31 18:17:09 +04:00
parent 5065019ffd
commit 06eb463088
5 changed files with 27 additions and 52 deletions
+4 -8
View File
@@ -32,7 +32,6 @@ from operations.executor import execute_operation
from operations.poll import poll_until_done
from db.pool import get_conn, put_conn
from db.save_run import save_run
from db.scenario_defs import unlock_scenario
# Все инстансы созданные сценарием имеют такой префикс в displayName
AUTOTEST_PREFIX = "autotest-scenario-"
@@ -175,8 +174,7 @@ def run_scenario(client, steps, client_id, stand, user_email, app_version, scena
bindings = {} # output_name → instance_uid (новый формат, именованные ссылки)
instance_map = {} # service_id → instance_uid (fallback, старый формат)
try:
for i, step in enumerate(steps):
for i, step in enumerate(steps):
step_num = i + 1 # шаги нумеруются с 1 (для пользователя)
svc_id = step.get("service_id")
op_name = (step.get("operation") or "").strip()
@@ -306,8 +304,6 @@ def run_scenario(client, steps, client_id, stand, user_email, app_version, scena
round(time.time() - t0, 1), err)
return
# Все шаги пройдены успешно
_save_scenario_run(scenario_run_id, "OK", total, round(time.time() - t0, 1))
finally:
# Освободить advisory lock ВСЕГДА (даже при исключении)
unlock_scenario(client_id, stand)
# Все шаги пройдены успешно
_save_scenario_run(scenario_run_id, "OK", total, round(time.time() - t0, 1))