fix: skip empty optional ref-params in resolveRefSvcParamValues, bump 5.0.68
This commit is contained in:
@@ -56,3 +56,11 @@ Adopt происходит на **apply**, не на plan. Plan показыва
|
||||
2. **Писать debug в файл, не в stderr** — в плагинах Terraform stderr не виден.
|
||||
3. **Не гадать** — сначала дебаг-лог, потом правка.
|
||||
4. **Выполнять ТОЛЬКО по «делай»** — без разрешения ничего не трогать.
|
||||
|
||||
## 2026-07-09: фикс resolveRefSvcParamValues — пустые опциональные ref-параметры
|
||||
|
||||
### Баг
|
||||
`resolveRefSvcParamValues()` в `client.go:1169` не проверяет пустые значения. Когда юзер не задаёт опциональный ref-параметр (например `vdcGroupUid`), `FormatString` возвращает `""`, функция пытается резолвить `""` как имя → `findInstanceUidByDisplayNameRefSvc(ctx, 29, "")` → uid="" → ошибка "не найден экземпляр".
|
||||
|
||||
### Фикс (v5.0.68)
|
||||
Добавлена проверка `strings.TrimSpace(value) == ""` перед вызовом `findInstanceUidByDisplayNameRefSvc`. Пустые опциональные ref-параметры пропускаются без ошибки. Универсально для всех сервисов.
|
||||
|
||||
@@ -2,7 +2,7 @@ terraform {
|
||||
required_providers {
|
||||
nubes = {
|
||||
source = "terra.k8c.ru/nubes-test/nubes"
|
||||
version = "5.0.67"
|
||||
version = "5.0.68"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ NUBES_API_ENDPOINT="https://lk-api-gateway-test.ngcloud.ru/api/v1/svc"
|
||||
TOKEN_FILE="secrets/test.token"
|
||||
|
||||
# Version
|
||||
VERSION="5.0.67"
|
||||
VERSION="5.0.68"
|
||||
|
||||
# Docs generation — ONLY from docs_gen/<stand>/ (never from docs/)
|
||||
DOCS_GEN_DIR="provider/docs_gen/test"
|
||||
|
||||
@@ -1167,6 +1167,9 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams
|
||||
// но сам всегда возвращает нижний регистр. Регистр пользователя будет
|
||||
// восстановлен в state после RefreshResourceState (generated resource).
|
||||
newValue = strings.ToLower(value)
|
||||
} else if strings.TrimSpace(value) == "" {
|
||||
// Опциональный ref-параметр не задан — оставляем пустым
|
||||
newValue = ""
|
||||
} else if !isUUIDLike(value) {
|
||||
uid, err := c.findInstanceUidByDisplayNameRefSvc(ctx, refSvcId, value)
|
||||
if err != nil {
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
version string = "5.0.67"
|
||||
version string = "5.0.68"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
Reference in New Issue
Block a user