diff --git a/azurerm/internal/clients/builder.go b/azurerm/internal/clients/builder.go index 8e3e05be01df..d501e1333e34 100644 --- a/azurerm/internal/clients/builder.go +++ b/azurerm/internal/clients/builder.go @@ -3,7 +3,6 @@ package clients import ( "context" "fmt" - "time" "github.com/hashicorp/go-azure-helpers/authentication" "github.com/hashicorp/go-azure-helpers/sender" @@ -84,7 +83,6 @@ func Build(ctx context.Context, builder ClientBuilder) (*Client, error) { ResourceManagerAuthorizer: auth, ResourceManagerEndpoint: endpoint, StorageAuthorizer: storageAuth, - PollingDuration: 180 * time.Minute, SkipProviderReg: builder.SkipProviderRegistration, DisableCorrelationRequestID: builder.DisableCorrelationRequestID, DisableTerraformPartnerID: builder.DisableTerraformPartnerID, diff --git a/azurerm/internal/common/client_options.go b/azurerm/internal/common/client_options.go index dd211a5c7063..f51d51a9b1dd 100644 --- a/azurerm/internal/common/client_options.go +++ b/azurerm/internal/common/client_options.go @@ -5,7 +5,6 @@ import ( "log" "os" "strings" - "time" "github.com/Azure/go-autorest/autorest" "github.com/Azure/go-autorest/autorest/azure" @@ -34,9 +33,6 @@ type ClientOptions struct { Environment azure.Environment Features features.UserFeatures StorageUseAzureAD bool - - // TODO: remove me in 2.0 - PollingDuration time.Duration } func (o ClientOptions) ConfigureClient(c *autorest.Client, authorizer autorest.Authorizer) { @@ -48,11 +44,6 @@ func (o ClientOptions) ConfigureClient(c *autorest.Client, authorizer autorest.A if !o.DisableCorrelationRequestID { c.RequestInspector = withCorrelationRequestID(correlationRequestID()) } - - // TODO: remove in 2.0 - if !features.SupportsCustomTimeouts() { - c.PollingDuration = o.PollingDuration - } } func setUserAgent(client *autorest.Client, tfVersion, partnerID string, disableTerraformPartnerID bool) { diff --git a/azurerm/internal/features/custom_timeouts.go b/azurerm/internal/features/custom_timeouts.go deleted file mode 100644 index a7743fc3ef51..000000000000 --- a/azurerm/internal/features/custom_timeouts.go +++ /dev/null @@ -1,22 +0,0 @@ -package features - -import ( - "os" - "strings" -) - -// SupportsCustomTimeouts returns whether Custom Timeouts are supported -// -// This feature allows Resources to define Custom Timeouts for Creation, Updating and Deletion -// which helps work with Azure resources that take longer to provision/delete. -// When this feature is disabled, all resources have a hard-coded timeout of 3 hours. -// -// This feature-toggle defaults to off in 1.x versions of the Azure Provider, however this will -// become the default behaviour in version 2.0 of the Azure Provider. As outlined in the announcement -// for v2.0 of the Azure Provider: https://github.com/terraform-providers/terraform-provider-azurerm/issues/2807 -// -// Operators wishing to adopt this behaviour can opt-into this behaviour in 1.x versions of the -// Azure Provider by setting the Environment Variable 'ARM_PROVIDER_CUSTOM_TIMEOUTS' to 'true' -func SupportsCustomTimeouts() bool { - return strings.EqualFold(os.Getenv("ARM_PROVIDER_CUSTOM_TIMEOUTS"), "true") -} diff --git a/azurerm/internal/features/custom_timeouts_test.go b/azurerm/internal/features/custom_timeouts_test.go deleted file mode 100644 index cd260cf573b4..000000000000 --- a/azurerm/internal/features/custom_timeouts_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package features - -import ( - "os" - "testing" -) - -func TestCustomTimeouts(t *testing.T) { - testData := []struct { - name string - value string - expected bool - }{ - { - name: "unset", - value: "", - expected: false, - }, - { - name: "disabled lower-case", - value: "false", - expected: false, - }, - { - name: "disabled upper-case", - value: "FALSE", - expected: false, - }, - { - name: "enabled lower-case", - value: "true", - expected: true, - }, - { - name: "enabled upper-case", - value: "TRUE", - expected: true, - }, - { - name: "invalid", - value: "pandas", - expected: false, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Test %q..", v.name) - - os.Setenv("ARM_PROVIDER_CUSTOM_TIMEOUTS", v.value) - actual := SupportsCustomTimeouts() - if v.expected != actual { - t.Fatalf("Expected %t but got %t", v.expected, actual) - } - } -} diff --git a/azurerm/internal/features/deprecated.go b/azurerm/internal/features/deprecated.go new file mode 100644 index 000000000000..4f518c526f6c --- /dev/null +++ b/azurerm/internal/features/deprecated.go @@ -0,0 +1,9 @@ +package features + +// this feature toggle's been removed +// however to ease open PR's this is temporarily kicking around + +// nolint: deadcode unused +func SupportsCustomTimeouts() bool { + return true +} diff --git a/azurerm/internal/features/requires_import.go b/azurerm/internal/features/requires_import.go index 7e4565351099..791e8fe37c73 100644 --- a/azurerm/internal/features/requires_import.go +++ b/azurerm/internal/features/requires_import.go @@ -1,10 +1,5 @@ package features -import ( - "os" - "strings" -) - // ShouldResourcesBeImported returns whether the feature Requiring Resources to be Imported // should be enabled. // @@ -25,5 +20,5 @@ func ShouldResourcesBeImported() bool { // * MySQL|PostgreSQL Configuration // since these resources can't support import // in addition the virtual resources will need adjusting - return strings.EqualFold(os.Getenv("ARM_PROVIDER_STRICT"), "true") + return true } diff --git a/azurerm/internal/features/requires_import_test.go b/azurerm/internal/features/requires_import_test.go deleted file mode 100644 index dd72255dc4b2..000000000000 --- a/azurerm/internal/features/requires_import_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package features - -import ( - "os" - "testing" -) - -func TestRequiresImport(t *testing.T) { - testData := []struct { - name string - value string - expected bool - }{ - { - name: "unset", - value: "", - expected: false, - }, - { - name: "disabled lower-case", - value: "false", - expected: false, - }, - { - name: "disabled upper-case", - value: "FALSE", - expected: false, - }, - { - name: "enabled lower-case", - value: "true", - expected: true, - }, - { - name: "enabled upper-case", - value: "TRUE", - expected: true, - }, - { - name: "invalid", - value: "pandas", - expected: false, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Test %q..", v.name) - - os.Setenv("ARM_PROVIDER_STRICT", v.value) - actual := ShouldResourcesBeImported() - if v.expected != actual { - t.Fatalf("Expected %t but got %t", v.expected, actual) - } - } -} diff --git a/azurerm/internal/features/two_point_oh.go b/azurerm/internal/features/two_point_oh.go index 85602f6b524e..d028d8e88378 100644 --- a/azurerm/internal/features/two_point_oh.go +++ b/azurerm/internal/features/two_point_oh.go @@ -1,10 +1,5 @@ package features -import ( - "os" - "strings" -) - // SupportsTwoPointZeroResources returns whether the new VM and VMSS resources from 2.0 // should be supported // @@ -24,5 +19,5 @@ import ( // Operators wishing to beta-test these resources can opt-into them in 1.x versions of the // Azure Provider by setting the Environment Variable 'ARM_PROVIDER_TWOPOINTZERO_RESOURCES' to 'true' func SupportsTwoPointZeroResources() bool { - return strings.EqualFold(os.Getenv("ARM_PROVIDER_TWOPOINTZERO_RESOURCES"), "true") + return true } diff --git a/azurerm/internal/features/two_point_oh_test.go b/azurerm/internal/features/two_point_oh_test.go deleted file mode 100644 index 25e96da83c86..000000000000 --- a/azurerm/internal/features/two_point_oh_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package features - -import ( - "os" - "testing" -) - -func TestTwoPointZero(t *testing.T) { - testData := []struct { - name string - value string - expected bool - }{ - { - name: "unset", - value: "", - expected: false, - }, - { - name: "disabled lower-case", - value: "false", - expected: false, - }, - { - name: "disabled upper-case", - value: "FALSE", - expected: false, - }, - { - name: "enabled lower-case", - value: "true", - expected: true, - }, - { - name: "enabled upper-case", - value: "TRUE", - expected: true, - }, - { - name: "invalid", - value: "pandas", - expected: false, - }, - } - - for _, v := range testData { - t.Logf("[DEBUG] Test %q..", v.name) - - os.Setenv("ARM_PROVIDER_TWOPOINTZERO_RESOURCES", v.value) - actual := SupportsTwoPointZeroResources() - if v.expected != actual { - t.Fatalf("Expected %t but got %t", v.expected, actual) - } - } -} diff --git a/azurerm/internal/provider/provider.go b/azurerm/internal/provider/provider.go index 628499e4069b..275bd38598de 100644 --- a/azurerm/internal/provider/provider.go +++ b/azurerm/internal/provider/provider.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/hashicorp/terraform-plugin-sdk/terraform" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/features" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) @@ -51,14 +50,6 @@ func AzureProvider() terraform.ResourceProvider { } } - // TODO: remove all of this in 2.0 once Custom Timeouts are supported - if !features.SupportsCustomTimeouts() { - // ensure any timeouts configured on the resources are removed until 2.0 - for _, v := range resources { - v.Timeouts = nil - } - } - p := &schema.Provider{ Schema: map[string]*schema.Schema{ "subscription_id": { diff --git a/azurerm/internal/services/automation/resource_arm_automation_module.go b/azurerm/internal/services/automation/resource_arm_automation_module.go index ab69d0483903..8acc095254c9 100644 --- a/azurerm/internal/services/automation/resource_arm_automation_module.go +++ b/azurerm/internal/services/automation/resource_arm_automation_module.go @@ -157,18 +157,13 @@ func resourceArmAutomationModuleCreateUpdate(d *schema.ResourceData, meta interf return resp, "Unknown", nil }, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } - _, err := stateConf.WaitForState() - if err != nil { + if _, err := stateConf.WaitForState(); err != nil { return fmt.Errorf("Error waiting for Module %q (Automation Account %q / Resource Group %q) to finish provisioning: %+v", name, accName, resGroup, err) } diff --git a/azurerm/internal/services/compute/resource_arm_dedicated_host.go b/azurerm/internal/services/compute/resource_arm_dedicated_host.go index dfa334e9fa22..11031012f622 100644 --- a/azurerm/internal/services/compute/resource_arm_dedicated_host.go +++ b/azurerm/internal/services/compute/resource_arm_dedicated_host.go @@ -272,12 +272,7 @@ func resourceArmDedicatedHostDelete(d *schema.ResourceData, meta interface{}) er Refresh: dedicatedHostDeletedRefreshFunc(ctx, client, id), MinTimeout: 10 * time.Second, ContinuousTargetOccurence: 10, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 10 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/containers/resource_arm_container_group.go b/azurerm/internal/services/containers/resource_arm_container_group.go index 83fe46bc95c8..2d376e60d290 100644 --- a/azurerm/internal/services/containers/resource_arm_container_group.go +++ b/azurerm/internal/services/containers/resource_arm_container_group.go @@ -664,12 +664,7 @@ func resourceArmContainerGroupDelete(d *schema.ResourceData, meta interface{}) e Refresh: containerGroupEnsureDetachedFromNetworkProfileRefreshFunc(ctx, networkProfileClient, networkProfileResourceGroup, networkProfileName, resourceGroup, name), MinTimeout: 15 * time.Second, ContinuousTargetOccurence: 5, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 10 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/containers/resource_arm_container_service.go b/azurerm/internal/services/containers/resource_arm_container_service.go index 90132090948e..58ea61f2b927 100644 --- a/azurerm/internal/services/containers/resource_arm_container_service.go +++ b/azurerm/internal/services/containers/resource_arm_container_service.go @@ -284,14 +284,10 @@ func resourceArmContainerServiceCreateUpdate(d *schema.ResourceData, meta interf MinTimeout: 15 * time.Second, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/cosmos/resource_arm_cosmosdb_account.go b/azurerm/internal/services/cosmos/resource_arm_cosmosdb_account.go index 88fc6394bb86..0bec359d958a 100644 --- a/azurerm/internal/services/cosmos/resource_arm_cosmosdb_account.go +++ b/azurerm/internal/services/cosmos/resource_arm_cosmosdb_account.go @@ -716,6 +716,7 @@ func resourceArmCosmosDbAccountDelete(d *schema.ResourceData, meta interface{}) Pending: []string{"Deleting"}, Target: []string{"NotFound"}, MinTimeout: 30 * time.Second, + Timeout: d.Timeout(schema.TimeoutDelete), Refresh: func() (interface{}, string, error) { resp, err2 := client.Get(ctx, resourceGroup, name) if err2 != nil { @@ -729,11 +730,6 @@ func resourceArmCosmosDbAccountDelete(d *schema.ResourceData, meta interface{}) }, } - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 180 * time.Minute - } if _, err = stateConf.WaitForState(); err != nil { return fmt.Errorf("Waiting forCosmosDB Account %q to delete (Resource Group %q): %+v", name, resourceGroup, err) } @@ -774,14 +770,10 @@ func resourceArmCosmosDbAccountApiUpsert(client *documentdb.DatabaseAccountsClie }, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 180 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := stateConf.WaitForState() diff --git a/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace.go b/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace.go index 53ea63e992eb..75ae45576d15 100644 --- a/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace.go +++ b/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace.go @@ -371,12 +371,7 @@ func waitForEventHubNamespaceToBeDeleted(ctx context.Context, client *eventhub.N Pending: []string{"200"}, Target: []string{"404"}, Refresh: eventHubNamespaceStateStatusCodeRefreshFunc(ctx, client, resourceGroup, name), - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 40 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace_disaster_recovery_config.go b/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace_disaster_recovery_config.go index 76ffa953d771..e513b767fc4a 100644 --- a/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace_disaster_recovery_config.go +++ b/azurerm/internal/services/eventhub/resource_arm_eventhub_namespace_disaster_recovery_config.go @@ -242,6 +242,7 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigDelete(d *schema.Resource Pending: []string{"200"}, Target: []string{"404"}, MinTimeout: 30 * time.Second, + Timeout: d.Timeout(schema.TimeoutDelete), Refresh: func() (interface{}, string, error) { resp, err := client.Get(ctx, resourceGroup, namespaceName, name) @@ -256,12 +257,6 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigDelete(d *schema.Resource }, } - if features.SupportsCustomTimeouts() { - deleteWait.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - deleteWait.Timeout = 30 * time.Minute - } - if _, err := deleteWait.WaitForState(); err != nil { return fmt.Errorf("Error waiting the deletion of EventHub Namespace Disaster Recovery Configs %q deletion (Namespace %q / Resource Group %q): %v", name, namespaceName, resourceGroup, err) } @@ -272,6 +267,7 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigDelete(d *schema.Resource Pending: []string{"NameInUse"}, Target: []string{"None"}, MinTimeout: 30 * time.Second, + Timeout: d.Timeout(schema.TimeoutDelete), Refresh: func() (interface{}, string, error) { resp, err := client.CheckNameAvailability(ctx, resourceGroup, namespaceName, eventhub.CheckNameAvailabilityParameter{Name: utils.String(name)}) if err != nil { @@ -282,12 +278,6 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigDelete(d *schema.Resource }, } - if features.SupportsCustomTimeouts() { - nameFreeWait.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - nameFreeWait.Timeout = 30 * time.Minute - } - if _, err := nameFreeWait.WaitForState(); err != nil { return fmt.Errorf("Error waiting the the EventHub Namespace Disaster Recovery Configs %q name to be available (Namespace %q / Resource Group %q): %v", name, namespaceName, resourceGroup, err) } @@ -300,6 +290,7 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigWaitForState(ctx context. Pending: []string{string(eventhub.Accepted)}, Target: []string{string(eventhub.Succeeded)}, MinTimeout: 30 * time.Second, + Timeout: timeout, Refresh: func() (interface{}, string, error) { read, err := client.Get(ctx, resourceGroup, namespaceName, name) if err != nil { @@ -317,12 +308,6 @@ func resourceArmEventHubNamespaceDisasterRecoveryConfigWaitForState(ctx context. }, } - if features.SupportsCustomTimeouts() { - stateConf.Timeout = timeout - } else { - stateConf.Timeout = 30 * time.Minute - } - _, err := stateConf.WaitForState() return err } diff --git a/azurerm/internal/services/hdinsight/common_hdinsight.go b/azurerm/internal/services/hdinsight/common_hdinsight.go index c5cc0405e8ba..98aed1c185cb 100644 --- a/azurerm/internal/services/hdinsight/common_hdinsight.go +++ b/azurerm/internal/services/hdinsight/common_hdinsight.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/features" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tags" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" @@ -98,12 +97,7 @@ func hdinsightClusterUpdate(clusterKind string, readFunc schema.ReadFunc) schema Target: []string{"Running"}, Refresh: hdInsightWaitForReadyRefreshFunc(ctx, client, resourceGroup, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutUpdate), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/hdinsight/resource_arm_hdinsight_hadoop_cluster.go b/azurerm/internal/services/hdinsight/resource_arm_hdinsight_hadoop_cluster.go index ec5a0ecf6f48..e9623d8ce35e 100644 --- a/azurerm/internal/services/hdinsight/resource_arm_hdinsight_hadoop_cluster.go +++ b/azurerm/internal/services/hdinsight/resource_arm_hdinsight_hadoop_cluster.go @@ -275,12 +275,7 @@ func resourceArmHDInsightHadoopClusterCreate(d *schema.ResourceData, meta interf Target: []string{"Running"}, Refresh: hdInsightWaitForReadyRefreshFunc(ctx, client, resourceGroup, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutCreate), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/iothub/resource_arm_iot_dps.go b/azurerm/internal/services/iothub/resource_arm_iot_dps.go index 1d6e47d21097..31818c1d88e8 100644 --- a/azurerm/internal/services/iothub/resource_arm_iot_dps.go +++ b/azurerm/internal/services/iothub/resource_arm_iot_dps.go @@ -277,12 +277,7 @@ func waitForIotDPSToBeDeleted(ctx context.Context, client *iothub.IotDpsResource Pending: []string{"200"}, Target: []string{"404"}, Refresh: iotdpsStateStatusCodeRefreshFunc(ctx, client, resourceGroup, name), - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 40 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/iothub/resource_arm_iothub.go b/azurerm/internal/services/iothub/resource_arm_iothub.go index 80f525c1749d..82501ef838a7 100644 --- a/azurerm/internal/services/iothub/resource_arm_iothub.go +++ b/azurerm/internal/services/iothub/resource_arm_iothub.go @@ -682,12 +682,7 @@ func waitForIotHubToBeDeleted(ctx context.Context, client *devices.IotHubResourc Pending: []string{"200"}, Target: []string{"404"}, Refresh: iothubStateStatusCodeRefreshFunc(ctx, client, resourceGroup, name), - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 40 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/iothub/resource_arm_iothub_dps.go b/azurerm/internal/services/iothub/resource_arm_iothub_dps.go index 8cc79ddb01bb..6313b3283c11 100644 --- a/azurerm/internal/services/iothub/resource_arm_iothub_dps.go +++ b/azurerm/internal/services/iothub/resource_arm_iothub_dps.go @@ -295,12 +295,7 @@ func waitForIotHubDPSToBeDeleted(ctx context.Context, client *iothub.IotDpsResou Pending: []string{"200"}, Target: []string{"404"}, Refresh: iothubdpsStateStatusCodeRefreshFunc(ctx, client, resourceGroup, name), - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 40 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/keyvault/resource_arm_key_vault.go b/azurerm/internal/services/keyvault/resource_arm_key_vault.go index 55ed0d17c98a..62d559c4d2f1 100644 --- a/azurerm/internal/services/keyvault/resource_arm_key_vault.go +++ b/azurerm/internal/services/keyvault/resource_arm_key_vault.go @@ -323,12 +323,7 @@ func resourceArmKeyVaultCreateUpdate(d *schema.ResourceData, meta interface{}) e Delay: 30 * time.Second, PollInterval: 10 * time.Second, ContinuousTargetOccurence: 10, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutCreate), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/keyvault/resource_arm_key_vault_certificate.go b/azurerm/internal/services/keyvault/resource_arm_key_vault_certificate.go index 910872e38463..0355f164ba80 100644 --- a/azurerm/internal/services/keyvault/resource_arm_key_vault_certificate.go +++ b/azurerm/internal/services/keyvault/resource_arm_key_vault_certificate.go @@ -421,12 +421,7 @@ func resourceArmKeyVaultCertificateCreate(d *schema.ResourceData, meta interface Target: []string{"Ready"}, Refresh: keyVaultCertificateCreationRefreshFunc(ctx, client, keyVaultBaseUrl, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutCreate), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/mariadb/resource_arm_mariadb_virtual_network_rule.go b/azurerm/internal/services/mariadb/resource_arm_mariadb_virtual_network_rule.go index 3397166609db..0a07e309edb1 100644 --- a/azurerm/internal/services/mariadb/resource_arm_mariadb_virtual_network_rule.go +++ b/azurerm/internal/services/mariadb/resource_arm_mariadb_virtual_network_rule.go @@ -147,15 +147,10 @@ func resourceArmMariaDbVirtualNetworkRuleCreateUpdate(d *schema.ResourceData, me MinTimeout: 1 * time.Minute, ContinuousTargetOccurence: 5, } - - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/monitor/resource_arm_monitor_diagnostic_setting.go b/azurerm/internal/services/monitor/resource_arm_monitor_diagnostic_setting.go index 0c97178b081d..f8681aa328c1 100644 --- a/azurerm/internal/services/monitor/resource_arm_monitor_diagnostic_setting.go +++ b/azurerm/internal/services/monitor/resource_arm_monitor_diagnostic_setting.go @@ -352,12 +352,7 @@ func resourceArmMonitorDiagnosticSettingDelete(d *schema.ResourceData, meta inte Refresh: monitorDiagnosticSettingDeletedRefreshFunc(ctx, client, targetResourceId, id.name), MinTimeout: 15 * time.Second, ContinuousTargetOccurence: 5, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/monitor/resource_arm_monitor_log_profile.go b/azurerm/internal/services/monitor/resource_arm_monitor_log_profile.go index 077e175bc86c..7f46925481cc 100644 --- a/azurerm/internal/services/monitor/resource_arm_monitor_log_profile.go +++ b/azurerm/internal/services/monitor/resource_arm_monitor_log_profile.go @@ -145,24 +145,19 @@ func resourceArmLogProfileCreateUpdate(d *schema.ResourceData, meta interface{}) return fmt.Errorf("Error Creating/Updating Log Profile %q: %+v", name, err) } - duration := 600 * time.Second - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - duration = d.Timeout(schema.TimeoutCreate) - } else { - duration = d.Timeout(schema.TimeoutUpdate) - } - } - log.Printf("[DEBUG] Waiting for Log Profile %q to be provisioned", name) stateConf := &resource.StateChangeConf{ Pending: []string{"NotFound"}, Target: []string{"Available"}, Refresh: logProfilesCreateRefreshFunc(ctx, client, name), - Timeout: duration, MinTimeout: 15 * time.Second, ContinuousTargetOccurence: 5, } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) + } else { + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) + } if _, err := stateConf.WaitForState(); err != nil { return fmt.Errorf("Error waiting for Log Profile %q to become available: %s", name, err) diff --git a/azurerm/internal/services/mysql/resource_arm_mysql_virtual_network_rule.go b/azurerm/internal/services/mysql/resource_arm_mysql_virtual_network_rule.go index 083880d15973..303935da3ec1 100644 --- a/azurerm/internal/services/mysql/resource_arm_mysql_virtual_network_rule.go +++ b/azurerm/internal/services/mysql/resource_arm_mysql_virtual_network_rule.go @@ -106,15 +106,10 @@ func resourceArmMySqlVirtualNetworkRuleCreateUpdate(d *schema.ResourceData, meta MinTimeout: 1 * time.Minute, ContinuousTargetOccurence: 5, } - - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/netapp/resource_arm_netapp_pool.go b/azurerm/internal/services/netapp/resource_arm_netapp_pool.go index 1129372b03e6..9c898e8f78d1 100644 --- a/azurerm/internal/services/netapp/resource_arm_netapp_pool.go +++ b/azurerm/internal/services/netapp/resource_arm_netapp_pool.go @@ -197,12 +197,7 @@ func resourceArmNetAppPoolDelete(d *schema.ResourceData, meta interface{}) error Pending: []string{"200", "202"}, Target: []string{"404"}, Refresh: netappPoolDeleteStateRefreshFunc(ctx, client, resourceGroup, accountName, name), - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 20 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/netapp/resource_arm_netapp_volume.go b/azurerm/internal/services/netapp/resource_arm_netapp_volume.go index ef66ae94bd36..e795aadd9b64 100644 --- a/azurerm/internal/services/netapp/resource_arm_netapp_volume.go +++ b/azurerm/internal/services/netapp/resource_arm_netapp_volume.go @@ -276,11 +276,7 @@ func resourceArmNetAppVolumeDelete(d *schema.ResourceData, meta interface{}) err Pending: []string{"200", "202"}, Target: []string{"404"}, Refresh: netappVolumeDeleteStateRefreshFunc(ctx, client, resourceGroup, accountName, poolName, name), - } - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 20 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/network/resource_arm_private_link_service.go b/azurerm/internal/services/network/resource_arm_private_link_service.go index d8f77abc53ea..b2e1f8c5a621 100644 --- a/azurerm/internal/services/network/resource_arm_private_link_service.go +++ b/azurerm/internal/services/network/resource_arm_private_link_service.go @@ -230,14 +230,10 @@ func resourceArmPrivateLinkServiceCreateUpdate(d *schema.ResourceData, meta inte MinTimeout: 15 * time.Second, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 60 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/network/resource_arm_vpn_gateway.go b/azurerm/internal/services/network/resource_arm_vpn_gateway.go index 0888dfb24b8b..db9d644d4fe5 100644 --- a/azurerm/internal/services/network/resource_arm_vpn_gateway.go +++ b/azurerm/internal/services/network/resource_arm_vpn_gateway.go @@ -148,14 +148,10 @@ func resourceArmVPNGatewayCreateUpdate(d *schema.ResourceData, meta interface{}) ContinuousTargetOccurence: 3, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 90 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/notificationhub/resource_arm_notification_hub.go b/azurerm/internal/services/notificationhub/resource_arm_notification_hub.go index 9088a0dd6026..fb8533ea59bb 100644 --- a/azurerm/internal/services/notificationhub/resource_arm_notification_hub.go +++ b/azurerm/internal/services/notificationhub/resource_arm_notification_hub.go @@ -199,14 +199,10 @@ func resourceArmNotificationHubCreateUpdate(d *schema.ResourceData, meta interfa ContinuousTargetOccurence: 10, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 10 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err2 := stateConf.WaitForState(); err2 != nil { diff --git a/azurerm/internal/services/notificationhub/resource_arm_notification_hub_namespace.go b/azurerm/internal/services/notificationhub/resource_arm_notification_hub_namespace.go index 1cff9fd3e75c..a9975f893dce 100644 --- a/azurerm/internal/services/notificationhub/resource_arm_notification_hub_namespace.go +++ b/azurerm/internal/services/notificationhub/resource_arm_notification_hub_namespace.go @@ -183,14 +183,10 @@ func resourceArmNotificationHubNamespaceCreateUpdate(d *schema.ResourceData, met ContinuousTargetOccurence: 10, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 10 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { @@ -287,11 +283,7 @@ func resourceArmNotificationHubNamespaceDelete(d *schema.ResourceData, meta inte Pending: []string{"200", "202"}, Target: []string{"404"}, Refresh: notificationHubNamespaceDeleteStateRefreshFunc(ctx, client, resourceGroup, name), - } - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 10 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { return fmt.Errorf("Error waiting for Notification Hub %q (Resource Group %q) to be deleted: %s", name, resourceGroup, err) diff --git a/azurerm/internal/services/policy/resource_arm_policy_assignment.go b/azurerm/internal/services/policy/resource_arm_policy_assignment.go index 7af97d20fb25..d845f8095b4b 100644 --- a/azurerm/internal/services/policy/resource_arm_policy_assignment.go +++ b/azurerm/internal/services/policy/resource_arm_policy_assignment.go @@ -186,14 +186,10 @@ func resourceArmPolicyAssignmentCreateUpdate(d *schema.ResourceData, meta interf ContinuousTargetOccurence: 10, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 5 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/policy/resource_arm_policy_definition.go b/azurerm/internal/services/policy/resource_arm_policy_definition.go index e939c9648549..aa03c8994460 100644 --- a/azurerm/internal/services/policy/resource_arm_policy_definition.go +++ b/azurerm/internal/services/policy/resource_arm_policy_definition.go @@ -191,14 +191,10 @@ func resourceArmPolicyDefinitionCreateUpdate(d *schema.ResourceData, meta interf ContinuousTargetOccurence: 10, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 5 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/policy/resource_arm_policy_set_definition.go b/azurerm/internal/services/policy/resource_arm_policy_set_definition.go index 142ab5b3abe1..2857805640de 100644 --- a/azurerm/internal/services/policy/resource_arm_policy_set_definition.go +++ b/azurerm/internal/services/policy/resource_arm_policy_set_definition.go @@ -197,14 +197,10 @@ func resourceArmPolicySetDefinitionCreateUpdate(d *schema.ResourceData, meta int ContinuousTargetOccurence: 10, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 5 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_virtual_network_rule.go b/azurerm/internal/services/postgres/resource_arm_postgresql_virtual_network_rule.go index 88e37caf7afc..ba39d406f937 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_virtual_network_rule.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_virtual_network_rule.go @@ -117,14 +117,10 @@ func resourceArmPostgreSQLVirtualNetworkRuleCreateUpdate(d *schema.ResourceData, ContinuousTargetOccurence: 5, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 10 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/privatedns/resource_arm_private_dns_zone_virtual_network_link.go b/azurerm/internal/services/privatedns/resource_arm_private_dns_zone_virtual_network_link.go index d775608b6cb8..16359d4bc4f2 100644 --- a/azurerm/internal/services/privatedns/resource_arm_private_dns_zone_virtual_network_link.go +++ b/azurerm/internal/services/privatedns/resource_arm_private_dns_zone_virtual_network_link.go @@ -219,12 +219,7 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkDelete(d *schema.ResourceData, m Delay: 30 * time.Second, PollInterval: 10 * time.Second, ContinuousTargetOccurence: 10, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/recoveryservices/resource_arm_backup_container_storage_account.go b/azurerm/internal/services/recoveryservices/resource_arm_backup_container_storage_account.go index 3d5c49f8870b..1327702cf926 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_backup_container_storage_account.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_backup_container_storage_account.go @@ -213,14 +213,10 @@ func resourceArmBackupProtectionContainerStorageAccountWaitForOperation(ctx cont ContinuousTargetOccurence: 5, // Without this buffer, file share backups and storage account deletions may fail if performed immediately after creating/destroying the container } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } log.Printf("[DEBUG] Waiting for backup container operation %q (Vault %q) to complete", operationID, vaultName) diff --git a/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_file_share.go b/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_file_share.go index a784642603d4..82e0ecc20e19 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_file_share.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_file_share.go @@ -323,14 +323,10 @@ func resourceArmBackupProtectionPolicyFileShareWaitForUpdate(ctx context.Context Refresh: resourceArmBackupProtectionPolicyFileShareRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := state.WaitForState() @@ -348,12 +344,7 @@ func resourceArmBackupProtectionPolicyFileShareWaitForDeletion(ctx context.Conte Pending: []string{"Found"}, Target: []string{"NotFound"}, Refresh: resourceArmBackupProtectionPolicyFileShareRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), - } - - if features.SupportsCustomTimeouts() { - state.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - state.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } resp, err := state.WaitForState() diff --git a/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_vm.go b/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_vm.go index ca2d508e4f13..ab6a31120502 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_vm.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_backup_policy_vm.go @@ -715,14 +715,10 @@ func resourceArmBackupProtectionPolicyVMWaitForUpdate(ctx context.Context, clien Refresh: resourceArmBackupProtectionPolicyVMRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := state.WaitForState() @@ -740,12 +736,7 @@ func resourceArmBackupProtectionPolicyVMWaitForDeletion(ctx context.Context, cli Pending: []string{"Found"}, Target: []string{"NotFound"}, Refresh: resourceArmBackupProtectionPolicyVMRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), - } - - if features.SupportsCustomTimeouts() { - state.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - state.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } resp, err := state.WaitForState() diff --git a/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_file_share.go b/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_file_share.go index 7676d783810b..550205b18ecb 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_file_share.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_file_share.go @@ -255,14 +255,10 @@ func resourceArmBackupProtectedFileShareWaitForOperation(ctx context.Context, cl Refresh: resourceArmBackupProtectedFileShareCheckOperation(ctx, client, vaultName, resourceGroup, operationID), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } log.Printf("[DEBUG] Waiting for backup operation %s (Vault %s) to complete", operationID, vaultName) diff --git a/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_vm.go b/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_vm.go index 5feb86ed15db..36f3c38584f8 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_vm.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_backup_protected_vm.go @@ -216,14 +216,10 @@ func resourceArmRecoveryServicesBackupProtectedVMWaitForStateCreateUpdate(ctx co Refresh: resourceArmRecoveryServicesBackupProtectedVMRefreshFunc(ctx, client, vaultName, resourceGroup, containerName, protectedItemName, policyId, true), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := state.WaitForState() @@ -242,12 +238,7 @@ func resourceArmRecoveryServicesBackupProtectedVMWaitForDeletion(ctx context.Con Pending: []string{"Found"}, Target: []string{"NotFound"}, Refresh: resourceArmRecoveryServicesBackupProtectedVMRefreshFunc(ctx, client, vaultName, resourceGroup, containerName, protectedItemName, policyId, false), - } - - if features.SupportsCustomTimeouts() { - state.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - state.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } resp, err := state.WaitForState() diff --git a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protected_vm.go b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protected_vm.go index 883141a63eee..68181b97366c 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protected_vm.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protected_vm.go @@ -217,14 +217,10 @@ func resourceArmRecoveryServicesProtectedVmWaitForStateCreateUpdate(ctx context. Refresh: resourceArmRecoveryServicesProtectedVmRefreshFunc(ctx, client, vaultName, resourceGroup, containerName, protectedItemName, policyId, true), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := state.WaitForState() @@ -243,12 +239,7 @@ func resourceArmRecoveryServicesProtectedVmWaitForDeletion(ctx context.Context, Pending: []string{"Found"}, Target: []string{"NotFound"}, Refresh: resourceArmRecoveryServicesProtectedVmRefreshFunc(ctx, client, vaultName, resourceGroup, containerName, protectedItemName, policyId, false), - } - - if features.SupportsCustomTimeouts() { - state.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - state.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } resp, err := state.WaitForState() diff --git a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protection_policy_vm.go b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protection_policy_vm.go index 02df8b78c0e1..9239c1d79349 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protection_policy_vm.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_protection_policy_vm.go @@ -716,14 +716,10 @@ func resourceArmRecoveryServicesProtectionPolicyWaitForUpdate(ctx context.Contex Refresh: resourceArmRecoveryServicesProtectionPolicyRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - state.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - state.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + state.Timeout = d.Timeout(schema.TimeoutCreate) } else { - state.Timeout = 30 * time.Minute + state.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := state.WaitForState() @@ -741,12 +737,7 @@ func resourceArmRecoveryServicesProtectionPolicyWaitForDeletion(ctx context.Cont Pending: []string{"Found"}, Target: []string{"NotFound"}, Refresh: resourceArmRecoveryServicesProtectionPolicyRefreshFunc(ctx, client, vaultName, resourceGroup, policyName), - } - - if features.SupportsCustomTimeouts() { - state.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - state.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } resp, err := state.WaitForState() diff --git a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_vault.go b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_vault.go index 6eea0d8f13f6..2daf177226b1 100644 --- a/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_vault.go +++ b/azurerm/internal/services/recoveryservices/resource_arm_recovery_services_vault.go @@ -141,14 +141,10 @@ func resourceArmRecoveryServicesVaultCreateUpdate(d *schema.ResourceData, meta i }, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/redis/resource_arm_redis_cache.go b/azurerm/internal/services/redis/resource_arm_redis_cache.go index 9e2ed80a57a4..6c98387f405e 100644 --- a/azurerm/internal/services/redis/resource_arm_redis_cache.go +++ b/azurerm/internal/services/redis/resource_arm_redis_cache.go @@ -372,12 +372,7 @@ func resourceArmRedisCacheCreate(d *schema.ResourceData, meta interface{}) error Target: []string{"Succeeded"}, Refresh: redisStateRefreshFunc(ctx, client, resGroup, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutCreate), } if _, err = stateConf.WaitForState(); err != nil { @@ -461,12 +456,7 @@ func resourceArmRedisCacheUpdate(d *schema.ResourceData, meta interface{}) error Target: []string{"Succeeded"}, Refresh: redisStateRefreshFunc(ctx, client, resGroup, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutUpdate), } if _, err = stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/relay/resource_arm_relay_hybrid_connection.go b/azurerm/internal/services/relay/resource_arm_relay_hybrid_connection.go index 8efeaf967a42..a702f5d223cf 100644 --- a/azurerm/internal/services/relay/resource_arm_relay_hybrid_connection.go +++ b/azurerm/internal/services/relay/resource_arm_relay_hybrid_connection.go @@ -187,12 +187,7 @@ func resourceArmHybridConnectionDelete(d *schema.ResourceData, meta interface{}) Target: []string{"Deleted"}, Refresh: hybridConnectionDeleteRefreshFunc(ctx, client, resourceGroup, relayNamespace, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 30 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/relay/resource_arm_relay_namespace.go b/azurerm/internal/services/relay/resource_arm_relay_namespace.go index af2e43af3f98..c39207255de3 100644 --- a/azurerm/internal/services/relay/resource_arm_relay_namespace.go +++ b/azurerm/internal/services/relay/resource_arm_relay_namespace.go @@ -283,12 +283,7 @@ func resourceArmRelayNamespaceDelete(d *schema.ResourceData, meta interface{}) e Target: []string{"Deleted"}, Refresh: relayNamespaceDeleteRefreshFunc(ctx, client, resourceGroup, name), MinTimeout: 15 * time.Second, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 60 * time.Minute + Timeout: d.Timeout(schema.TimeoutDelete), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/resource/resource_arm_template_deployment.go b/azurerm/internal/services/resource/resource_arm_template_deployment.go index cdeefef24500..c734d17366a1 100644 --- a/azurerm/internal/services/resource/resource_arm_template_deployment.go +++ b/azurerm/internal/services/resource/resource_arm_template_deployment.go @@ -309,14 +309,8 @@ func waitForTemplateDeploymentToBeDeleted(ctx context.Context, client *resources Pending: []string{"200"}, Target: []string{"404"}, Refresh: templateDeploymentStateStatusCodeRefreshFunc(ctx, client, resourceGroup, name), + Timeout: d.Timeout(schema.TimeoutDelete), } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutDelete) - } else { - stateConf.Timeout = 40 * time.Minute - } - if _, err := stateConf.WaitForState(); err != nil { return fmt.Errorf("Error waiting for Template Deployment (%q in Resource Group %q) to be deleted: %+v", name, resourceGroup, err) } diff --git a/azurerm/internal/services/securitycenter/resource_arm_security_center_workspace.go b/azurerm/internal/services/securitycenter/resource_arm_security_center_workspace.go index 90832d9db487..e3c437c01a78 100644 --- a/azurerm/internal/services/securitycenter/resource_arm_security_center_workspace.go +++ b/azurerm/internal/services/securitycenter/resource_arm_security_center_workspace.go @@ -128,14 +128,10 @@ func resourceArmSecurityCenterWorkspaceCreateUpdate(d *schema.ResourceData, meta }, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 30 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } resp, err := stateConf.WaitForState() diff --git a/azurerm/internal/services/sql/resource_arm_sql_database.go b/azurerm/internal/services/sql/resource_arm_sql_database.go index 486bf8f88612..34ef8acfea75 100644 --- a/azurerm/internal/services/sql/resource_arm_sql_database.go +++ b/azurerm/internal/services/sql/resource_arm_sql_database.go @@ -473,14 +473,6 @@ func resourceArmSqlDatabaseCreateUpdate(d *schema.ResourceData, meta interface{} return err2 } - // TODO: remove me in 2.0 - if !features.SupportsCustomTimeouts() { - // this is set in config.go, but something sets - // it back to 15 minutes, which isn't long enough - // for most imports - client.Client.PollingDuration = 60 * time.Minute - } - if err = importFuture.WaitForCompletionRef(ctx, client.Client); err != nil { return err } diff --git a/azurerm/internal/services/sql/resource_arm_sql_virtual_network_rule.go b/azurerm/internal/services/sql/resource_arm_sql_virtual_network_rule.go index 1028dfccf391..29194cd5e6a2 100644 --- a/azurerm/internal/services/sql/resource_arm_sql_virtual_network_rule.go +++ b/azurerm/internal/services/sql/resource_arm_sql_virtual_network_rule.go @@ -113,14 +113,10 @@ func resourceArmSqlVirtualNetworkRuleCreateUpdate(d *schema.ResourceData, meta i ContinuousTargetOccurence: 5, } - if features.SupportsCustomTimeouts() { - if d.IsNewResource() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) - } + if d.IsNewResource() { + stateConf.Timeout = d.Timeout(schema.TimeoutCreate) } else { - stateConf.Timeout = 10 * time.Minute + stateConf.Timeout = d.Timeout(schema.TimeoutUpdate) } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/services/storage/resource_arm_storage_share_directory.go b/azurerm/internal/services/storage/resource_arm_storage_share_directory.go index da602c2093d3..e334dbf06638 100644 --- a/azurerm/internal/services/storage/resource_arm_storage_share_directory.go +++ b/azurerm/internal/services/storage/resource_arm_storage_share_directory.go @@ -112,12 +112,7 @@ func resourceArmStorageShareDirectoryCreate(d *schema.ResourceData, meta interfa Refresh: storageShareDirectoryRefreshFunc(ctx, client, accountName, shareName, directoryName), MinTimeout: 10 * time.Second, ContinuousTargetOccurence: 5, - } - - if features.SupportsCustomTimeouts() { - stateConf.Timeout = d.Timeout(schema.TimeoutCreate) - } else { - stateConf.Timeout = 5 * time.Minute + Timeout: d.Timeout(schema.TimeoutCreate), } if _, err := stateConf.WaitForState(); err != nil { diff --git a/azurerm/internal/timeouts/determine.go b/azurerm/internal/timeouts/determine.go index 4b1818ff7253..b5d209446704 100644 --- a/azurerm/internal/timeouts/determine.go +++ b/azurerm/internal/timeouts/determine.go @@ -5,11 +5,8 @@ import ( "time" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/features" ) -// TODO: tests for this - // ForCreate returns the context wrapped with the timeout for an Create operation // // If the 'SupportsCustomTimeouts' feature toggle is enabled - this is wrapped with a context @@ -55,12 +52,5 @@ func ForUpdate(ctx context.Context, d *schema.ResourceData) (context.Context, co } func buildWithTimeout(ctx context.Context, timeout time.Duration) (context.Context, context.CancelFunc) { - if features.SupportsCustomTimeouts() { - return context.WithTimeout(ctx, timeout) - } - - nullFunc := func() { - // do nothing on cancel since timeouts aren't enabled - } - return ctx, nullFunc + return context.WithTimeout(ctx, timeout) }