fix: S3 refSvcId=12 — разрешить имя наравне с UUID, версия 5.1.3
This commit is contained in:
@@ -1158,16 +1158,7 @@ func (c *UniversalClient) resolveRefSvcParamValues(ctx context.Context, opParams
|
||||
for paramId, value := range params {
|
||||
newValue := value
|
||||
if refSvcId, ok := refById[paramId]; ok {
|
||||
if refSvcId == 12 {
|
||||
if !isUUIDLike(value) {
|
||||
return nil, fmt.Errorf("параметр %d должен быть UUID (S3 Object Storage, serviceId=12): %s", paramId, value)
|
||||
}
|
||||
// FIX(uuid-case): нормализуем UUID к lowercase для отправки в API.
|
||||
// Пользователь мог написать "6214BA32-...", API принимает оба варианта,
|
||||
// но сам всегда возвращает нижний регистр. Регистр пользователя будет
|
||||
// восстановлен в state после RefreshResourceState (generated resource).
|
||||
newValue = strings.ToLower(value)
|
||||
} else if strings.TrimSpace(value) == "" {
|
||||
if strings.TrimSpace(value) == "" {
|
||||
// Опциональный ref-параметр не задан — оставляем пустым
|
||||
newValue = ""
|
||||
} else if !isUUIDLike(value) {
|
||||
|
||||
@@ -453,9 +453,6 @@ func isValidRefValue(options []core.RefServiceInstanceOption, refSvcId int, valu
|
||||
if strings.EqualFold(strings.TrimSpace(opt.InstanceUID), value) {
|
||||
return true
|
||||
}
|
||||
if refSvcId == 12 {
|
||||
continue
|
||||
}
|
||||
if strings.EqualFold(strings.TrimSpace(opt.DisplayName), value) {
|
||||
return true
|
||||
}
|
||||
@@ -465,21 +462,12 @@ func isValidRefValue(options []core.RefServiceInstanceOption, refSvcId int, valu
|
||||
|
||||
func formatRefOptions(options []core.RefServiceInstanceOption, refSvcId int, limit int) string {
|
||||
if len(options) == 0 {
|
||||
if refSvcId == 12 {
|
||||
return "требуется UUID существующего инстанса"
|
||||
}
|
||||
return "список пуст"
|
||||
}
|
||||
formatted := make([]string, 0, len(options))
|
||||
for _, opt := range options {
|
||||
uid := strings.TrimSpace(opt.InstanceUID)
|
||||
name := strings.TrimSpace(opt.DisplayName)
|
||||
if refSvcId == 12 {
|
||||
if uid != "" {
|
||||
formatted = append(formatted, uid)
|
||||
}
|
||||
continue
|
||||
}
|
||||
if name != "" && uid != "" {
|
||||
formatted = append(formatted, name+" ("+uid+")")
|
||||
} else if uid != "" {
|
||||
|
||||
Reference in New Issue
Block a user