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
+10 -2
View File
@@ -25,7 +25,8 @@ def get_params_with_current_values(client, op_id, instance_uid):
# --- Шаг 1: текущие значения из инстанса ---
inst_data = client.get(f"/instances/{instance_uid}")
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: шаблон параметров операции ---
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)
tmpl_default = p.get("defaultValue") # шаблонный default
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-параметры)
# Берём текущее значение из state.params по коду,
@@ -65,7 +73,7 @@ def get_params_with_current_values(client, op_id, instance_uid):
"dataType": data_type,
"isRequired": required,
"defaultValue": merged_value,
"valueList": value_list,
"valueList": _normalize_value_list(value_list),
"refSvcId": p.get("refSvcId"), # если параметр ссылается на другой сервис
"dataDescriptor": (
{