Files
tf_provider/prompt_for_opus_bugs.md
T

2.7 KiB
Raw Blame History

Prompt for Opus — поиск багов в 3 файлах

Проверь эти 3 конкретных файла на баги, аналогичные skip_missing_on_delete (провайдерский параметр с плохим дефолтом, которого нет в API YAML).

Файл 1: Шаблон генератора

/home/naeel/tf_provider/TOOLS/resource-generator/internal/templates/templates.go

Смотри все хардкодженные атрибуты (НЕ из .SchemaParams / .OutputParams):

  • resource_name
  • operation_timeout
  • log_level
  • suspend_on_destroy
  • adopt_existing_on_create
  • skip_missing_on_delete
  • git_revision
  • {service}_id

Вопросы:

  • У каждого: правильный ли дефолт?
  • Не создаёт ли проблем при параллельных/повторных apply?
  • skip_missing_on_delete с дефолтом false — уже известный баг. Есть ли другие?

Файл 2: CRUD-логика

/home/naeel/tf_provider/provider/internal/resources_core/crud.go

Вопросы:

  • FindSubresourceInStateOut — не должна ли проверка молча пропускать удаление?
  • IsSubresourceMissingError — все ли ошибки ловит?
  • adoptExistingInstanceOnCreate — есть ли гонки при параллельном adopt?

Файл 3: Сгенерированный subresource

/home/naeel/tf_provider/generated/test/go/90_postgres_database_resource.go

Вопросы:

  • Delete (строки 251-330): правильный ли handling "объект уже удалён"?
  • Create: что при duplicate?
  • skipMissingOnDelete — везде ли корректно?

Что искать

  1. Ошибки вместо идемпотентности (delete/create должны быть идемпотентны)
  2. Плохие дефолты (как skip_missing_on_delete=false)
  3. Гонки при параллельных операциях
  4. Провайдерские параметры не из API — все ли оправданы?

Контекст

  • API не поддерживает параллельные операции на одном инстансе
  • Subresource delete падает с ошибкой если объект уже удалён
  • skip_missing_on_delete — костыль для обхода, дефолт false (баг)
  • Уже добавлен instance-level mutex в v5.0.63

Формат ответа

Для каждого бага: файл:строка → симптом → причина → исправление. Не читай другие файлы без необходимости.