From f0639ff03257292fd9d5581a761f5d8cd0d3031a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Fri, 24 Jul 2026 08:21:05 +0400 Subject: [PATCH] Extract instanceUid from Location header, v1.0.9 --- site/api/http_client.py | 10 ++++++++-- site/app.py | 2 +- site/routes/api_test.py | 5 +++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/site/api/http_client.py b/site/api/http_client.py index 0eac74e..b3c149c 100644 --- a/site/api/http_client.py +++ b/site/api/http_client.py @@ -20,7 +20,13 @@ class HttpClient: kwargs.setdefault("timeout", 30) r = self._session.post(f"{self._endpoint}{path}", json=data, **kwargs) r.raise_for_status() + result = {} try: - return r.json() + result = r.json() except Exception: - return {} + pass + # instanceUid приходит в Location (для create) + loc = r.headers.get("Location", "") + if loc: + result["_location"] = loc + return result diff --git a/site/app.py b/site/app.py index af26620..b4c84ec 100644 --- a/site/app.py +++ b/site/app.py @@ -6,7 +6,7 @@ from routes.main import bp as main_bp from routes.api import bp as api_bp from routes.api_test import bp as api_test_bp -VERSION = "1.0.8" +VERSION = "1.0.9" 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") diff --git a/site/routes/api_test.py b/site/routes/api_test.py index f9d8682..ecc7f93 100644 --- a/site/routes/api_test.py +++ b/site/routes/api_test.py @@ -95,6 +95,11 @@ def api_test(): payload["cfsParams"] = [{"svcOperationCfsParamId": int(k), "paramValue": str(v)} for k, v in params.items()] resp = client.post("/instances", payload) instance_uid = resp.get("instanceUid") or _find_uid(resp) + # Location header: /instances/{uid} + loc = resp.get("_location", "") + if not instance_uid and loc: + parts = loc.rstrip("/").split("/") + instance_uid = parts[-1] if len(parts[-1]) == 36 else None # wait deadline = time.time() + 300