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