40 lines
2.3 KiB
Markdown
40 lines
2.3 KiB
Markdown
# Sonnet 4.6 — Round 3: missing required params in CREATE
|
||
|
||
Дата: 2026-07-29
|
||
Версия: v1.1.18
|
||
|
||
## Проблема
|
||
PostgreSQL create падает с ошибкой Nubes: «Не передан параметр: serviceInstanceUid».
|
||
Redis работает, Болванка работает, PG — нет.
|
||
|
||
## Что нашли
|
||
Terraform-провайдер делает дополнительный шаг после отправки пользовательских параметров:
|
||
отправляет ВСЕ required-параметры с их defaultValue, даже если юзер их не заполнял.
|
||
|
||
Наш код (api_test.py /api/test, CREATE-ветка, примерно строка 230):
|
||
```python
|
||
for pid, pval in params.items():
|
||
client.post("/instanceOperationCfsParams",
|
||
{"instanceOperationUid": op_uid, "svcOperationCfsParamId": int(pid), "paramValue": str(pval)})
|
||
```
|
||
Шлёт ТОЛЬКО то, что пользователь заполнил в форме.
|
||
|
||
## PG имеет 8 map-fixed параметров, все required:
|
||
- startupConfiguration (id=789)
|
||
- clusterConfiguration (id=788)
|
||
- accessConfiguration (id=790)
|
||
- postgresConfiguration (id=791)
|
||
- postgresConf (id=792) — array-map-fixed
|
||
- backupConfiguration (id=793)
|
||
- autoscaleConfiguration (id=794)
|
||
- mtlsConfiguration (id=1094)
|
||
|
||
Если пользователь заполнил только первые 3 — остальные 5 НЕ отправляются → Nubes ругается.
|
||
|
||
## Вопросы
|
||
1. Как лучше реализовать досылку required-параметров с defaultValue?
|
||
- Вариант А: до отправки params сделать GET /instanceOperations/default/{svcOpId}, взять все required с их defaultValue, смержить с пользовательскими
|
||
- Вариант Б: после отправки пользовательских params, дослать оставшиеся required с defaultValue
|
||
2. Terraform делает GET /instanceOperations/{opUid}?fields=cfsParams ПОСЛЕ создания операции. Нужно ли нам тоже?
|
||
3. Не сломает ли это существующие сервисы (Redis, Болванка) где параметров мало и все заполняются?
|