From ad53b33741aeab12bf028ab92df653ba5edec19b Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 25 May 2021 10:39:37 +0200 Subject: [PATCH 1/2] `azurerm_static_site`: Add support for `tags` attribute Fixes #11837 --- azurerm/internal/services/web/static_site_resource.go | 6 +++++- azurerm/internal/services/web/static_site_resource_test.go | 5 +++++ website/docs/r/static_site.html.markdown | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/azurerm/internal/services/web/static_site_resource.go b/azurerm/internal/services/web/static_site_resource.go index 18a0a0233f7a..80762e613aad 100644 --- a/azurerm/internal/services/web/static_site_resource.go +++ b/azurerm/internal/services/web/static_site_resource.go @@ -6,6 +6,7 @@ import ( "time" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/location" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tags" azSchema "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/tf/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" @@ -74,6 +75,8 @@ func resourceStaticSite() *schema.Resource { Type: schema.TypeString, Computed: true, }, + + "tags": tags.Schema(), }, } } @@ -110,6 +113,7 @@ func resourceStaticSiteCreateOrUpdate(d *schema.ResourceData, meta interface{}) }, StaticSite: &web.StaticSite{}, Location: &loc, + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } if _, err := client.CreateOrUpdateStaticSite(ctx, id.ResourceGroup, id.Name, siteEnvelope); err != nil { @@ -178,7 +182,7 @@ func resourceStaticSiteRead(d *schema.ResourceData, meta interface{}) error { } d.Set("api_key", apiKey) - return nil + return tags.FlattenAndSet(d, resp.Tags) } func resourceStaticSiteDelete(d *schema.ResourceData, meta interface{}) error { diff --git a/azurerm/internal/services/web/static_site_resource_test.go b/azurerm/internal/services/web/static_site_resource_test.go index a6839a4722b9..47429898bb13 100644 --- a/azurerm/internal/services/web/static_site_resource_test.go +++ b/azurerm/internal/services/web/static_site_resource_test.go @@ -29,6 +29,7 @@ func TestAccAzureStaticSite_basic(t *testing.T) { check.That(data.ResourceName).ExistsInAzure(r), check.That(data.ResourceName).Key("default_host_name").Exists(), check.That(data.ResourceName).Key("api_key").Exists(), + check.That(data.ResourceName).Key("tags.environment").HasValue("acceptance"), ), }, data.ImportStep(), @@ -82,6 +83,10 @@ resource "azurerm_static_site" "test" { name = "acctestSS-%d" location = azurerm_resource_group.test.location resource_group_name = azurerm_resource_group.test.name + + tags = { + environment = "acceptance" + } } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } diff --git a/website/docs/r/static_site.html.markdown b/website/docs/r/static_site.html.markdown index ce4bd1336898..2ff987b7d143 100644 --- a/website/docs/r/static_site.html.markdown +++ b/website/docs/r/static_site.html.markdown @@ -32,6 +32,8 @@ The following arguments are supported: * `resource_group_name` - (Required) The name of the Resource Group where the Static Web App should exist. Changing this forces a new Static Web App to be created. +* `tags` - (Optional) A mapping of tags to assign to the resource. + ## Attributes Reference In addition to the Arguments listed above - the following Attributes are exported: From 055988df20306bea79cb8715c4a005ac98dadbd5 Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 25 May 2021 17:04:29 +0200 Subject: [PATCH 2/2] Add basicUpdate test --- .../services/web/static_site_resource_test.go | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/azurerm/internal/services/web/static_site_resource_test.go b/azurerm/internal/services/web/static_site_resource_test.go index 47429898bb13..a16f13b0c6f1 100644 --- a/azurerm/internal/services/web/static_site_resource_test.go +++ b/azurerm/internal/services/web/static_site_resource_test.go @@ -36,6 +36,34 @@ func TestAccAzureStaticSite_basic(t *testing.T) { }) } +func TestAccAzureStaticSite_basicUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_static_site", "test") + r := StaticSiteResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("default_host_name").Exists(), + check.That(data.ResourceName).Key("api_key").Exists(), + check.That(data.ResourceName).Key("tags.environment").HasValue("acceptance"), + ), + }, + data.ImportStep(), + { + Config: r.basicUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("default_host_name").Exists(), + check.That(data.ResourceName).Key("api_key").Exists(), + check.That(data.ResourceName).Key("tags.environment").HasValue("acceptance"), + check.That(data.ResourceName).Key("tags.updated").HasValue("true"), + ), + }, + }) +} + func TestAccAzureStaticSite_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_static_site", "test") r := StaticSiteResource{} @@ -91,6 +119,30 @@ resource "azurerm_static_site" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } +func (r StaticSiteResource) basicUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_static_site" "test" { + name = "acctestSS-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + + tags = { + environment = "acceptance" + updated = "true" + } +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + func (r StaticSiteResource) requiresImport(data acceptance.TestData) string { template := r.basic(data) return fmt.Sprintf(`