v1.1.39: populate empty valueList from state.out + normalize value_list

This commit is contained in:
2026-07-30 08:47:13 +04:00
parent 363ac7e29c
commit 4dcd61f25d
2 changed files with 11 additions and 3 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ from routes.api import bp as api_bp
from routes.api_test import bp as api_test_bp from routes.api_test import bp as api_test_bp
# Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI. # Версия — меняется при КАЖДОМ изменении кода. Показывается в топбаре UI.
VERSION = "1.1.38" VERSION = "1.1.39"
app = Flask(__name__, template_folder="templates", static_folder="static") 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") app.config["NUBES_API_ENDPOINT"] = os.getenv("NUBES_API_ENDPOINT", "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc")
+10 -2
View File
@@ -25,7 +25,8 @@ def get_params_with_current_values(client, op_id, instance_uid):
# --- Шаг 1: текущие значения из инстанса --- # --- Шаг 1: текущие значения из инстанса ---
inst_data = client.get(f"/instances/{instance_uid}") inst_data = client.get(f"/instances/{instance_uid}")
state_params = inst_data.get("instance", {}).get("state", {}).get("params", {}) or {} state_params = inst_data.get("instance", {}).get("state", {}).get("params", {}) or {}
# state_params — dict вида {"whereFail": "1", "durationMs": "0", "bodymessage": "mess", ...} # state_params — dict вида {"whereFail": "1", "durationMs": "0", ...}
state_out = inst_data.get("instance", {}).get("state", {}).get("out", {}) or {}
# --- Шаг 2: шаблон параметров операции --- # --- Шаг 2: шаблон параметров операции ---
tmpl_data = client.get(f"/instanceOperations/default/{op_id}") tmpl_data = client.get(f"/instanceOperations/default/{op_id}")
@@ -40,6 +41,13 @@ def get_params_with_current_values(client, op_id, instance_uid):
required = p.get("isRequired", False) required = p.get("isRequired", False)
tmpl_default = p.get("defaultValue") # шаблонный default tmpl_default = p.get("defaultValue") # шаблонный default
value_list = p.get("valueList") value_list = p.get("valueList")
# Заполнить пустые valueList из state.out (пользователи/базы PG и др.)
if value_list is not None and not value_list:
code_lower = code.lower()
if ("user" in code_lower or "owner" in code_lower) and isinstance(state_out.get("users"), dict):
value_list = sorted(state_out["users"].keys())
elif "db" in code_lower and isinstance(state_out.get("databases"), dict):
value_list = sorted(state_out["databases"].keys())
dd = p.get("dataDescriptor") # вложенная структура (map-параметры) dd = p.get("dataDescriptor") # вложенная структура (map-параметры)
# Берём текущее значение из state.params по коду, # Берём текущее значение из state.params по коду,
@@ -65,7 +73,7 @@ def get_params_with_current_values(client, op_id, instance_uid):
"dataType": data_type, "dataType": data_type,
"isRequired": required, "isRequired": required,
"defaultValue": merged_value, "defaultValue": merged_value,
"valueList": value_list, "valueList": _normalize_value_list(value_list),
"refSvcId": p.get("refSvcId"), # если параметр ссылается на другой сервис "refSvcId": p.get("refSvcId"), # если параметр ссылается на другой сервис
"dataDescriptor": ( "dataDescriptor": (
{ {