diff --git a/.gitignore b/.gitignore index 64d612d..8f218cf 100644 --- a/.gitignore +++ b/.gitignore @@ -13,10 +13,24 @@ devops/profiles/*/generated/ *.sha256sum # === Go binaries (compiled tools) === -universal_rebuild/tools/gen_v2/gen_v2 -universal_rebuild/tools/gen/gen -universal_rebuild/docs_template_gen_v2 +# Каждый тул в tools/ компилируется в бинарник с именем пакета. +# Паттерн ловит ВСЕ бинарники во всех поддиректориях tools/. +universal_rebuild/tools/*/gen +universal_rebuild/tools/*/gen_v2 +universal_rebuild/tools/*/service_spec_gen +universal_rebuild/tools/*/service_ops_gen +universal_rebuild/tools/*/service_params_gen +universal_rebuild/tools/*/docs_template_gen +universal_rebuild/tools/*/docs_template_gen_v2 +# Бинарники в корне universal_rebuild/ +universal_rebuild/gen +universal_rebuild/gen_v2 +universal_rebuild/service_spec_gen +universal_rebuild/service_ops_gen +universal_rebuild/service_params_gen universal_rebuild/docs_template_gen +universal_rebuild/docs_template_gen_v2 +universal_rebuild/terraform-provider-nubes_* *.exe *.test *.out diff --git a/universal_rebuild/tools/service_spec_gen/generate_service_spec.go b/universal_rebuild/tools/service_spec_gen/generate_service_spec.go index cc91655..57d63d5 100644 --- a/universal_rebuild/tools/service_spec_gen/generate_service_spec.go +++ b/universal_rebuild/tools/service_spec_gen/generate_service_spec.go @@ -519,29 +519,19 @@ func (c *apiClient) collectOperations(ops []operationInfo) ([]OperationSpec, boo func classifyOperation(name string) (string, string, string) { // Canonical classification rules: - // - create/modify/delete/suspend/resume -> instance - // - create_*/modify_*/delete_* -> subresource - // - everything else -> action + // - create/modify/delete/suspend/resume (exact match) → instance + // - verb_subresource (any prefix with underscore) → subresource (verb: action, suffix: subresource name) + // - everything else → action n := strings.ToLower(strings.TrimSpace(name)) if n == "create" || n == "modify" || n == "delete" || n == "suspend" || n == "resume" { return "instance", n, "" } - if strings.HasPrefix(n, "create_") { - sub := strings.TrimPrefix(n, "create_") + // Any name with underscore → subresource (e.g. create_user, modify_database, restart_service) + if idx := strings.Index(n, "_"); idx > 0 { + verb := n[:idx] + sub := n[idx+1:] if sub != "" { - return "subresource", "create", sub - } - } - if strings.HasPrefix(n, "modify_") { - sub := strings.TrimPrefix(n, "modify_") - if sub != "" { - return "subresource", "modify", sub - } - } - if strings.HasPrefix(n, "delete_") { - sub := strings.TrimPrefix(n, "delete_") - if sub != "" { - return "subresource", "delete", sub + return "subresource", verb, sub } } return "action", n, ""