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