From 423de314dd3f242e4ff0afdb23b2db69b660aad1 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Tue, 22 Sep 2026 16:40:20 +0300 Subject: [PATCH] =?UTF-8?q?docs(opus):=20prompt=20=D0=BA=D0=BE=D0=B4-?= =?UTF-8?q?=D1=80=D0=B5=D0=B2=D1=8C=D1=8E=20=D0=BC=D0=BE=D0=B4=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=82=D0=BE=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prompt_for_opus_modifiers_review.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 prompt_for_opus_modifiers_review.md diff --git a/prompt_for_opus_modifiers_review.md b/prompt_for_opus_modifiers_review.md new file mode 100644 index 0000000..70e6455 --- /dev/null +++ b/prompt_for_opus_modifiers_review.md @@ -0,0 +1,29 @@ +# Код-ревью: модификаторы (kind: modifier) в универсальном провайдере + +## Контекст + +terraform-provider-nubes (universal). Операции с `kind: modifier` генерируются как отдельные TF-ресурсы и запускают операцию `modify`, передавая параметры **по коду** (`vIPConfigure`, `needEnableAVI`...), а не по числовому id. + +Актуальные модификаторы: +- `nubes_vc_org_ip_space` (vc_org.ip_space, modify 207) — выделение внешних IP (`vIPConfigure`). +- `nubes_vc_nsxt_network` (vc_nsxt.network, modify 111) — сеть/SNAT Edge. + +## Ключевые файлы + +- генератор: `TOOLS/resource-generator/internal/templates/modifier.go`, `internal/loader/loader.go` (LoadSpecs → GenModifier), `internal/writers/writers.go` (WriteModifierResource) +- рантайм: `provider/internal/resources_core/crud.go` (RunOperationByCodeWithTimeout) +- клиент: `provider/internal/core/client.go` (RunInstanceOperationUniversalByCode) +- сгенерированное: `generated/dev/go/19_vc_org_ip_space_modifier.go`, `22_vc_nsxt_network_modifier.go`, `registry.go` + +## Известная проблема (уже диагностирована — НЕ ревьюить) + +`GET /instanceOperations/{opUid}?fields=cfsParams` падает 500 (`getResourceRealmConfig` Struct→string) на проблемных инстансах. Fallback на `/instanceOperations/default/{opId}` планируется отдельно. + +## Задание — короткий код-ревью + +1. Корректность жизненного цикла modifier-ресурса: Create/Update/Read/Delete, идемпотентность, refresh из API. +2. Реального Delete нет (destroy не откатывает операцию) — это ожидаемо? Подводные камни при повторном apply. +3. Риски передачи параметров по коду (code → id) в `RunInstanceOperationUniversalByCode`. +4. ТОП-3 самых критичных замечания именно по модификаторам. + +Ответ — кратко, тезисно, без кода-простыней.