refactor(generator): реестры исключений (данные) вместо хардкодов svc.ID==N / ServiceID==N
This commit is contained in:
@@ -19,6 +19,23 @@ import (
|
||||
"yaml-generator/internal/types"
|
||||
)
|
||||
|
||||
// serviceSpecificModifiers — реестр исключений (ДАННЫЕ, не логика).
|
||||
// Ключ — стабильное имя сервиса (как в YAML), значение — имя modifier-ресурса,
|
||||
// который генерируется для его операции modify (отложенный modify над инстансом).
|
||||
//
|
||||
// ЧТО: операция modify сервиса помечается kind=modifier + modifier=<имя>.
|
||||
// ЧТО ДЕЛАЕТ: yaml-generator создаёт для неё отдельный ресурс nubes_<svc>_<modifier>.
|
||||
// ПОЧЕМУ: эти modify — отдельный шаг цепочки (аллокация IP / SNAT), их нельзя
|
||||
// выполнять в том же ресурсе инстанса (чередующаяся зависимость).
|
||||
// ГДЕ: TOOLS/ARCHITECTURE.md, раздел «Реестр исключений».
|
||||
//
|
||||
// Добавлять только здесь. Grep-гейт TOOLS/scripts/check_hardcoded_service_ids.sh
|
||||
// запрещает сравнения svc.ID == N вне этого файла.
|
||||
var serviceSpecificModifiers = map[string]string{
|
||||
"vc_org": "ip_space",
|
||||
"vc_nsxt": "network",
|
||||
}
|
||||
|
||||
func main() {
|
||||
cfg, err := config.Load()
|
||||
if err != nil {
|
||||
@@ -72,13 +89,12 @@ func main() {
|
||||
panic(err)
|
||||
}
|
||||
for idx := range ops {
|
||||
if strings.EqualFold(ops[idx].Action, "modify") && svc.ID == 19 {
|
||||
ops[idx].Kind = "modifier"
|
||||
ops[idx].Modifier = "ip_space"
|
||||
if !strings.EqualFold(ops[idx].Action, "modify") {
|
||||
continue
|
||||
}
|
||||
if strings.EqualFold(ops[idx].Action, "modify") && svc.ID == 22 {
|
||||
if modName, ok := serviceSpecificModifiers[name]; ok {
|
||||
ops[idx].Kind = "modifier"
|
||||
ops[idx].Modifier = "network"
|
||||
ops[idx].Modifier = modName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user