v1.1.39: populate empty valueList from state.out + normalize value_list
This commit is contained in:
@@ -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": (
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user