From 7354d9c1255eaeb7a563e11f107de1f5a8331198 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Thu, 30 Jul 2026 15:51:22 +0400 Subject: [PATCH] v1.1.52: fix scenario create (drop svcOperationId) + http_client _status debug --- site/api/http_client.py | 3 ++- site/app.py | 2 +- site/operations/scenario.py | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/site/api/http_client.py b/site/api/http_client.py index 61213c5..59be952 100644 --- a/site/api/http_client.py +++ b/site/api/http_client.py @@ -105,11 +105,12 @@ class HttpClient: r = self._session.post(url, json=(data if data is not None else {}), **kwargs) if not r.ok: raise Exception(f"POST {path}: {r.status_code} {r.reason}: {r.text[:200]}") - result = {} + result = {"_status": r.status_code} try: parsed = r.json() if isinstance(parsed, dict): result = parsed + result["_status"] = r.status_code except Exception: pass # тело не JSON или не dict — ок, Location всё равно извлечём loc = r.headers.get("Location", "") diff --git a/site/app.py b/site/app.py index 6b0eb70..95de4d3 100644 --- a/site/app.py +++ b/site/app.py @@ -18,7 +18,7 @@ from routes.api_test import bp as api_test_bp from routes.api_scenario import bp as api_scenario_bp # Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI. -VERSION = "1.1.51" +VERSION = "1.1.52" app = Flask(__name__, template_folder="templates", static_folder="static") app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc") diff --git a/site/operations/scenario.py b/site/operations/scenario.py index ac63486..ac97717 100644 --- a/site/operations/scenario.py +++ b/site/operations/scenario.py @@ -124,7 +124,10 @@ def run_scenario(client, steps, client_id, stand, user_email, app_version, scena raise RuntimeError(f"No instance for service_id {svc_id} — need CREATE first") # 4. Запуск операции - op_payload = {"instanceUid": instance_uid, "svcOperationId": svc_op_id, "operation": op_name} + if op_name == "create": + op_payload = {"instanceUid": instance_uid, "operation": op_name} + else: + op_payload = {"instanceUid": instance_uid, "svcOperationId": svc_op_id, "operation": op_name} op_resp = client.post("/instanceOperations", op_payload) op_uid = op_resp.get("instanceOperationUid") or _find_uid(op_resp) or _uid_from_location(op_resp.get("_location", "")) if not op_uid: