docs: add detailed package-level comments to all TOOLS/ and provider/
TOOLS: - yaml-generator: types (API↔YAML), client (proxy/REST + retry) - resource-generator: types (3 resource kinds), loader (pipeline), writers (generated files), params (merge/CreateOnly/ForceNew) - docs-generator, ops-generator — already documented provider: - main.go: entrypoint + build instructions - core: API client (GetInstance, RunOperation, GetInstanceState) - provider: provider registration (New, Resources, Schema) - resources_core: shared CRUD, state refresh, params, validation
This commit is contained in:
@@ -1,4 +1,13 @@
|
||||
// Package loader — загрузка YAML-спеков и построение ресурсов.
|
||||
// Package loader — загрузка YAML-спеков и построение GenResource/GenSubresource/GenAction.
|
||||
//
|
||||
// LoadSpecs — главная функция. Для каждого YAML:
|
||||
// 1. Парсит операции (create/modify/delete/suspend/resume/...)
|
||||
// 2. Классифицирует их на instance/subresource/action
|
||||
// 3. Сливает параметры, вычисляет CreateOnly и ForceNew
|
||||
// 4. Строит GenResource/GenSubresource/GenAction
|
||||
// 5. Сортирует результат по имени сервиса
|
||||
//
|
||||
// ValidateSpec — fail-fast валидация (паника при неизвестном Kind).
|
||||
package loader
|
||||
|
||||
import (
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
// Package params — слияние, фильтрация, анализ параметров и ForceNew.
|
||||
//
|
||||
// Основные операции:
|
||||
// - Merge — объединяет параметры из нескольких операций по Code
|
||||
// - ComputeCreateOnly — поля, которые есть в create, но отсутствуют в modify
|
||||
// - BuildSubresourceForceNewCodes — поля, требующие пересоздания subresource
|
||||
// - Analyze — определяет используемые типы (bool/int64/string) для импортов
|
||||
// - AnalyzePlanModifiers — ForceNew-поля, требующие planmodifier.*.RequiresReplace()
|
||||
package params
|
||||
|
||||
import (
|
||||
|
||||
@@ -1,4 +1,14 @@
|
||||
// Package types — структуры данных для генератора Terraform-провайдера.
|
||||
//
|
||||
// Моделирует три вида ресурсов:
|
||||
// - GenResource — основной CRUD инстанса (nubes_{service})
|
||||
// - GenSubresource — подресурсы (nubes_{service}_{user}, ...)
|
||||
// - GenAction — действия (почти не используется, redeploy встроен в GenResource.HasRedeploy)
|
||||
//
|
||||
// Правила обработки action'ов из ARCHITECTURE.md:
|
||||
// - redeploy → HasRedeploy=true, поле git_revision в основном ресурсе
|
||||
// - restart/recovery/reconcile → исключены (ручные, только UI)
|
||||
// - всё остальное → отдельный GenAction
|
||||
package types
|
||||
|
||||
// ─── Входные структуры (из YAML) ───────────────────────────────────────────
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
// Package writers — генерация Go-файлов ресурсов и registry.go.
|
||||
//
|
||||
// Генерирует три типа файлов в internal/resources_gen/:
|
||||
// - {id}_{service}_resource.go — основной CRUD инстанса
|
||||
// - {id}_{service}_{sub}_resource.go — подресурсы
|
||||
// - {id}_{service}_{action}_action.go — action-ресурсы (редко)
|
||||
// - registry.go — AllResources() со списком всех ресурсов
|
||||
//
|
||||
// Каждый файл компилируется через text/template и форматируется через gofmt.
|
||||
package writers
|
||||
|
||||
import (
|
||||
|
||||
Reference in New Issue
Block a user