From 38d278427e80e065efa03aa83a139b0b32d1bacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 19 Jul 2026 13:04:31 +0400 Subject: [PATCH] fix: move s3Uid resolve before early return when no refSvcId --- TEST_STAND/LUCEE/main.tf | 2 +- TOOLS/config/dev/profile.env | 2 +- TOOLS/config/prod/profile.env | 2 +- TOOLS/config/test/profile.env | 2 +- provider/internal/core/client.go | 18 +++++++++++++++++- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/TEST_STAND/LUCEE/main.tf b/TEST_STAND/LUCEE/main.tf index 191f5d7..443353a 100644 --- a/TEST_STAND/LUCEE/main.tf +++ b/TEST_STAND/LUCEE/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { nubes = { source = "registry.kube5s.ru/nubes-test/nubes" - version = "5.1.8" + version = "5.1.9" } } } diff --git a/TOOLS/config/dev/profile.env b/TOOLS/config/dev/profile.env index 8356f13..96c715f 100644 --- a/TOOLS/config/dev/profile.env +++ b/TOOLS/config/dev/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token" # Release versions # Version -VERSION="3.1.7" +VERSION="3.1.8" # Registry/S3 settings REGISTRY_HOST="registry.kube5s.ru" diff --git a/TOOLS/config/prod/profile.env b/TOOLS/config/prod/profile.env index 6bd8018..b973632 100644 --- a/TOOLS/config/prod/profile.env +++ b/TOOLS/config/prod/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/prod.token" # Release versions # Version -VERSION="2.1.6" +VERSION="2.1.7" # Registry/S3 settings REGISTRY_HOST="registry.kube5s.ru" diff --git a/TOOLS/config/test/profile.env b/TOOLS/config/test/profile.env index 90f1bb0..e2a8883 100644 --- a/TOOLS/config/test/profile.env +++ b/TOOLS/config/test/profile.env @@ -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.1.9" +VERSION="5.1.10" # Docs generation — ONLY from docs_gen// (never from docs/) DOCS_GEN_DIR="provider/docs_gen/test" diff --git a/provider/internal/core/client.go b/provider/internal/core/client.go index 8bcd44d..5b9e344 100644 --- a/provider/internal/core/client.go +++ b/provider/internal/core/client.go @@ -1187,7 +1187,8 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams } } if len(refById) == 0 { - return params, nil + // Даже без refSvcId — резолвим s3Uid внутри map-fixed (соглашение об именах). + return c.resolveS3UidInAllMapFixed(params, opParams), nil } resolved := make(map[int]string, len(params)) @@ -1218,6 +1219,21 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams return resolved, nil } +// resolveS3UidInAllMapFixed проходит по всем параметрам и для map-fixed +// резолвит s3Uid-подобные значения в UUID. Используется когда нет ни одного +// параметра с refSvcId (ранний выход resolveRefSvcParamValues). +func (c *UniversalClient) resolveS3UidInAllMapFixed(params map[int]string, opParams []universalCfsParam) map[int]string { + result := make(map[int]string, len(params)) + for paramId, value := range params { + if strings.TrimSpace(value) != "" && value != "{}" && strings.HasPrefix(strings.TrimSpace(value), "{") { + result[paramId] = c.resolveS3UidInMapFixed(paramId, value, opParams) + } else { + result[paramId] = value + } + } + return result +} + // resolveS3UidInMapFixed парсит JSON map-fixed-параметра, находит ключи // по паттерну s3.*uid (case-insensitive) и резолвит значения-не-UUID // в UUID через S3 (сервис 12). Соглашение об именах: s3Uid, s3_uid, S3Uid → S3.