fix: lifecycle bugs A+B (HasError guard, not_created hard error) + bump 5.0.72

This commit is contained in:
“Naeel”
2026-07-16 14:51:01 +04:00
parent f31bedfe05
commit 6929562fc9
5 changed files with 19 additions and 11 deletions
+4 -8
View File
@@ -153,14 +153,10 @@ func adoptExistingInstanceOnCreate(ctx context.Context, client *core.UniversalCl
switch state {
case StateNotCreated:
// P0.2: авто-cleanup orphan-инстанса при adopt_existing_on_create=true.
unlock := client.LockInstance(existing.InstanceUid)
defer unlock()
if err := client.RunInstanceOperationUniversal(ctx, existing.InstanceUid, "delete", nil); err != nil {
return "", fmt.Errorf("не удалось авто-удалить orphan-инстанс %s (статус: %s): %w. %s",
existing.InstanceUid, statusText, err, formatInstanceDetails(existing, serviceID, displayName))
}
return client.CreateGenericInstanceUniversalV6(ctx, serviceID, displayName, params)
// Философия (provider_philosophy.md раздел 8): not created → hard error,
// без auto-adopt/create. Пользователь должен проверить ресурс в ЛК.
return "", fmt.Errorf("инстанс %s в статусе 'not created' — проверьте ресурс в личном кабинете Nubes. %s",
existing.InstanceUid, formatInstanceDetails(existing, serviceID, displayName))
case StateRunning, StateRunningPending:
refIssues, err := ValidateRefParamsOnAdopt(ctx, client, serviceID, params, existing.InstanceUid)
@@ -61,7 +61,7 @@ func PlanExistingResourceDiagnostics(ctx context.Context, client *core.Universal
return diags
}
// CreateExistingResourceDiagnostics returns warnings for existing resources during create.
// CreateExistingResourceDiagnostics returns diagnostics (errors for conflicts, warnings for adopt) during create.
func CreateExistingResourceDiagnostics(ctx context.Context, client *core.UniversalClient, serviceID int, resourceName string, adoptExistingOnCreate bool) diag.Diagnostics {
return CreateExistingResourceDiagnosticsWithDomain(ctx, client, serviceID, resourceName, adoptExistingOnCreate, "")
}