From 14d50117cee03a9368ea06746883d8031e15089e Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Fri, 12 Feb 2021 13:57:20 +0100 Subject: [PATCH] r/resource_group_template_deployment: checking for the resource name insensitively Fixes #10439 Before this change: ``` $ TF_ACC=1 envchain azurerm go test -v ./azurerm/internal/services/resource/... -run=TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing -timeout=60m -mod=vendor === RUN TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing === PAUSE TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing === CONT TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing testing.go:766: Error destroying resource! WARNING: Dangling resources may exist. The full state and error is shown below. Error: errors during apply: removing items provisioned by this Template Deployment: determining API Versions for Resource Providers: unable to determine API version for Resource Type "actionGroups" (Resource Provider "microsoft.insights") State: azurerm_resource_group.test: ID = /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acctestrg-210212135344425112 provider = provider.azurerm location = westeurope name = acctestrg-210212135344425112 tags.% = 0 azurerm_resource_group_template_deployment.test: ID = /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/acctestrg-210212135344425112/providers/Microsoft.Resources/deployments/acctest provider = provider.azurerm debug_level = deployment_mode = Complete name = acctest output_content = {} parameters_content = {"someParam":{"value":"first"}} resource_group_name = acctestrg-210212135344425112 tags.% = 0 template_content = {"$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","parameters":{"someParam":{"allowedValues":["first","second","third"],"type":"String"}},"resources":[{"apiVersion":"2019-06-01","dependsOn":[],"location":"Global","name":"acctestTemplateDeployAG-210212135344425112","properties":{"emailReceivers":[{"emailAddress":"rick@example.com","name":"Rick Sanchez"}],"enabled":true,"groupShortName":"rick-c137","smsReceivers":[],"webhookReceivers":[]},"tags":{},"type":"microsoft.insights/actionGroups"}],"variables":{}} --- FAIL: TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing (128.13s) FAIL FAIL github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource 129.826s ? github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/client [no test files] testing: warning: no tests to run PASS ok github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/parse (cached) [no tests to run] testing: warning: no tests to run PASS ok github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/validate (cached) [no tests to run] FAIL ``` After this change: ``` $ TF_ACC=1 envchain azurerm go test -v ./azurerm/internal/services/resource/... -run=TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing -timeout=60m -mod=vendor === RUN TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing === PAUSE TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing === CONT TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing --- PASS: TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing (193.09s) PASS ok github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource 194.774s ? github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/client [no test files] testing: warning: no tests to run PASS ok github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/parse (cached) [no tests to run] testing: warning: no tests to run PASS ok github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/resource/validate (cached) [no tests to run] ``` --- ...group_template_deployment_resource_test.go | 82 +++++++++++++++++++ .../resource/template_deployment_common.go | 2 +- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/azurerm/internal/services/resource/resource_group_template_deployment_resource_test.go b/azurerm/internal/services/resource/resource_group_template_deployment_resource_test.go index 0df53d552e74..15d3d821b1c4 100644 --- a/azurerm/internal/services/resource/resource_group_template_deployment_resource_test.go +++ b/azurerm/internal/services/resource/resource_group_template_deployment_resource_test.go @@ -63,6 +63,21 @@ func TestAccResourceGroupTemplateDeployment_incremental(t *testing.T) { }) } +func TestAccResourceGroupTemplateDeployment_singleItemIncorrectCasing(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_resource_group_template_deployment", "test") + r := ResourceGroupTemplateDeploymentResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.singleItemWithIncorrectCasingConfig(data, "first"), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func TestAccResourceGroupTemplateDeployment_singleItemUpdatingParams(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_resource_group_template_deployment", "test") r := ResourceGroupTemplateDeploymentResource{} @@ -264,6 +279,73 @@ TEMPLATE `, data.RandomInteger, data.Locations.Primary, deploymentMode) } +func (ResourceGroupTemplateDeploymentResource) singleItemWithIncorrectCasingConfig(data acceptance.TestData, value string) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestrg-%d" + location = %q +} + +resource "azurerm_resource_group_template_deployment" "test" { + name = "acctest" + resource_group_name = azurerm_resource_group.test.name + deployment_mode = "Complete" + + template_content = <