fix: lifecycle bugs A+B (HasError guard, not_created hard error) + bump 5.0.72
This commit is contained in:
@@ -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, "")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user