From cc98a8deb8747dc22b3230d315618291a75cd996 Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 12 Jan 2020 10:23:24 -0800 Subject: [PATCH 1/8] azurerm_postgresql_server: deprecate sku in favour of sku_name --- .../resource_arm_postgresql_server.go | 138 ++++++++++++++---- ...ource_arm_postgresql_configuration_test.go | 7 +- .../resource_arm_postgresql_database_test.go | 28 +--- ...ource_arm_postgresql_firewall_rule_test.go | 7 +- .../resource_arm_postgresql_server_test.go | 102 +++++++------ ...rm_postgresql_virtual_network_rule_test.go | 35 +---- .../guides/2.0-upgrade-guide.html.markdown | 4 + .../docs/r/postgresql_server.html.markdown | 21 +-- ...tgresql_virtual_network_rule.html.markdown | 7 +- 9 files changed, 184 insertions(+), 165 deletions(-) diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go index 0a42f24364be..5c48fa6626c5 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go @@ -3,6 +3,7 @@ package postgres import ( "fmt" "log" + "strconv" "strings" "time" @@ -49,10 +50,42 @@ func resourceArmPostgreSQLServer() *schema.Resource { "resource_group_name": azure.SchemaResourceGroupName(), + "sku_name": { + Type: schema.TypeString, + Optional: true, // required in 2.0 + Computed: true, // remove in 2.0 + ConflictsWith: []string{"sku"}, + ValidateFunc: validation.StringInSlice([]string{ + "B_Gen4_1", + "B_Gen4_2", + "B_Gen5_1", + "B_Gen5_2", + "GP_Gen4_2", + "GP_Gen4_4", + "GP_Gen4_8", + "GP_Gen4_16", + "GP_Gen4_32", + "GP_Gen5_2", + "GP_Gen5_4", + "GP_Gen5_8", + "GP_Gen5_16", + "GP_Gen5_32", + "GP_Gen5_64", + "MO_Gen5_2", + "MO_Gen5_4", + "MO_Gen5_8", + "MO_Gen5_16", + "MO_Gen5_32", + }, false), + }, + + // remove in 2.0 "sku": { - Type: schema.TypeList, - Required: true, - MaxItems: 1, + Type: schema.TypeList, + Optional: true, + Computed: true, + ConflictsWith: []string{"sku_name"}, + MaxItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "name": { @@ -229,13 +262,6 @@ func resourceArmPostgreSQLServerCreate(d *schema.ResourceData, meta interface{}) location := azure.NormalizeLocation(d.Get("location").(string)) resourceGroup := d.Get("resource_group_name").(string) - adminLogin := d.Get("administrator_login").(string) - adminLoginPassword := d.Get("administrator_login_password").(string) - sslEnforcement := d.Get("ssl_enforcement").(string) - version := d.Get("version").(string) - createMode := "Default" - t := d.Get("tags").(map[string]interface{}) - if features.ShouldResourcesBeImported() { existing, err := client.Get(ctx, resourceGroup, name) if err != nil { @@ -249,21 +275,31 @@ func resourceArmPostgreSQLServerCreate(d *schema.ResourceData, meta interface{}) } } - sku := expandAzureRmPostgreSQLServerSku(d) - storageProfile := expandAzureRmPostgreSQLStorageProfile(d) + var sku *postgresql.Sku + if b, ok := d.GetOk("sku_name"); ok { + var err error + sku, err = expandServerSkuName(b.(string)) + if err != nil { + fmt.Errorf("error expanding sku_name for PostgreSQL Server % (Resource Group %q): %v", name, resourceGroup, err) + } + } else if _, ok := d.GetOk("sku"); ok { + sku = expandAzureRmPostgreSQLServerSku(d) + } else { + return fmt.Errorf("One of `sku` or `sku_name` must be set for PostgreSQL Server %q (Resource Group %q)", name, resourceGroup) + } properties := postgresql.ServerForCreate{ Location: &location, Properties: &postgresql.ServerPropertiesForDefaultCreate{ - AdministratorLogin: utils.String(adminLogin), - AdministratorLoginPassword: utils.String(adminLoginPassword), - Version: postgresql.ServerVersion(version), - SslEnforcement: postgresql.SslEnforcementEnum(sslEnforcement), - StorageProfile: storageProfile, - CreateMode: postgresql.CreateMode(createMode), + AdministratorLogin: utils.String(d.Get("administrator_login").(string)), + AdministratorLoginPassword: utils.String(d.Get("administrator_login_password").(string)), + Version: postgresql.ServerVersion(d.Get("version").(string)), + SslEnforcement: postgresql.SslEnforcementEnum(d.Get("ssl_enforcement").(string)), + StorageProfile: expandAzureRmPostgreSQLStorageProfile(d), + CreateMode: postgresql.CreateMode("Default"), }, Sku: sku, - Tags: tags.Expand(t), + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } future, err := client.Create(ctx, resourceGroup, name, properties) @@ -299,22 +335,28 @@ func resourceArmPostgreSQLServerUpdate(d *schema.ResourceData, meta interface{}) name := d.Get("name").(string) resourceGroup := d.Get("resource_group_name").(string) - adminLoginPassword := d.Get("administrator_login_password").(string) - sslEnforcement := d.Get("ssl_enforcement").(string) - version := d.Get("version").(string) - sku := expandAzureRmPostgreSQLServerSku(d) - storageProfile := expandAzureRmPostgreSQLStorageProfile(d) - t := d.Get("tags").(map[string]interface{}) + var sku *postgresql.Sku + if b, ok := d.GetOk("sku_name"); ok { + var err error + sku, err = expandServerSkuName(b.(string)) + if err != nil { + fmt.Errorf("error expanding sku_name for PostgreSQL Server % (Resource Group %q): %v", name, resourceGroup, err) + } + } else if _, ok := d.GetOk("sku"); ok { + sku = expandAzureRmPostgreSQLServerSku(d) + } else { + return fmt.Errorf("One of `sku` or `sku_name` must be set for PostgreSQL Server %q (Resource Group %q)", name, resourceGroup) + } properties := postgresql.ServerUpdateParameters{ ServerUpdateParametersProperties: &postgresql.ServerUpdateParametersProperties{ - StorageProfile: storageProfile, - AdministratorLoginPassword: utils.String(adminLoginPassword), - Version: postgresql.ServerVersion(version), - SslEnforcement: postgresql.SslEnforcementEnum(sslEnforcement), + AdministratorLoginPassword: utils.String(d.Get("administrator_login_password").(string)), + Version: postgresql.ServerVersion(d.Get("version").(string)), + SslEnforcement: postgresql.SslEnforcementEnum(d.Get("ssl_enforcement").(string)), + StorageProfile: expandAzureRmPostgreSQLStorageProfile(d), }, Sku: sku, - Tags: tags.Expand(t), + Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } future, err := client.Update(ctx, resourceGroup, name, properties) @@ -330,7 +372,6 @@ func resourceArmPostgreSQLServerUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return fmt.Errorf("Error retrieving PostgreSQL Server %q (Resource Group %q): %+v", name, resourceGroup, err) } - if read.ID == nil { return fmt.Errorf("Cannot read PostgreSQL Server %s (resource group %s) ID", name, resourceGroup) } @@ -377,6 +418,9 @@ func resourceArmPostgreSQLServerRead(d *schema.ResourceData, meta interface{}) e if err := d.Set("sku", flattenPostgreSQLServerSku(resp.Sku)); err != nil { return fmt.Errorf("Error setting `sku`: %+v", err) } + if sku := resp.Sku; sku != nil { + d.Set("sku_name", sku.Name) + } if err := d.Set("storage_profile", flattenPostgreSQLStorageProfile(resp.StorageProfile)); err != nil { return fmt.Errorf("Error setting `storage_profile`: %+v", err) @@ -420,6 +464,38 @@ func resourceArmPostgreSQLServerDelete(d *schema.ResourceData, meta interface{}) return nil } +func expandServerSkuName(skuName string) (*postgresql.Sku, error) { + + parts := strings.Split(skuName, "_") + if len(parts) != 3 { + return nil, fmt.Errorf("sku_name (%s) has the worng numberof parts (%d) after splitting on _", skuName, len(parts)) + } + + var tier postgresql.SkuTier + switch parts[0] { + case "B": + tier = postgresql.Basic + case "GP": + tier = postgresql.GeneralPurpose + case "MO": + tier = postgresql.MemoryOptimized + default: + + } + + capacity, err := strconv.Atoi(parts[2]) + if err != nil { + return nil, fmt.Errorf("cannot convert skuname %s capcity %s to int", skuName, parts[2]) + } + + return &postgresql.Sku{ + Name: utils.String(skuName), + Tier: tier, + Capacity: utils.Int32(int32(capacity)), + Family: utils.String(parts[1]), + }, nil +} + func expandAzureRmPostgreSQLServerSku(d *schema.ResourceData) *postgresql.Sku { skus := d.Get("sku").([]interface{}) sku := skus[0].(map[string]interface{}) diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go index 3b52f01e8db2..cb7aae2433e0 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_configuration_test.go @@ -213,12 +213,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go index a7bc1a79bb91..e1037e8ce285 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_database_test.go @@ -184,12 +184,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -240,12 +235,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -281,12 +271,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -322,12 +307,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go index 531c7a709af5..2cb0643faed6 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_firewall_rule_test.go @@ -129,12 +129,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go index e4d88ca70eac..23f6627b3360 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go @@ -33,6 +33,28 @@ func TestAccAzureRMPostgreSQLServer_basicNinePointFive(t *testing.T) { }) } +// remove in 2.0 +func TestAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_postgresql_server", "test") + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acceptance.PreCheck(t) }, + Providers: acceptance.SupportedProviders, + CheckDestroy: testCheckAzureRMPostgreSQLServerDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(data), + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMPostgreSQLServerExists(data.ResourceName), + resource.TestCheckResourceAttr(data.ResourceName, "administrator_login", "acctestun"), + resource.TestCheckResourceAttr(data.ResourceName, "version", "9.5"), + resource.TestCheckResourceAttr(data.ResourceName, "ssl_enforcement", "Enabled"), + ), + }, + data.ImportStep("administrator_login_password"), + }, + }) +} + func TestAccAzureRMPostgreSQLServer_basicNinePointSix(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_postgresql_server", "test") resource.ParallelTest(t, resource.TestCase{ @@ -342,12 +364,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -364,6 +381,35 @@ resource "azurerm_postgresql_server" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, version) } +func testAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(data acceptance.TestData) string { + return fmt.Sprintf(` +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_postgresql_server" "test" { + name = "acctestpsqlsvr-%d" + location = "${azurerm_resource_group.test.location}" + resource_group_name = "${azurerm_resource_group.test.name}" + + sku_name = "GP_Gen5_2" + + storage_profile { + storage_mb = 51200 + backup_retention_days = 7 + geo_redundant_backup = "Disabled" + auto_grow = "Disabled" + } + + administrator_login = "acctestun" + administrator_login_password = "H@Sh1CoR3!" + version = "%s" + ssl_enforcement = "Enabled" +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, "9.5") +} + func testAccAzureRMPostgreSQLServer_basicNinePointFive(data acceptance.TestData) string { return testAccAzureRMPostgreSQLServer_basic(data, "9.5") } @@ -390,12 +436,7 @@ resource "azurerm_postgresql_server" "import" { location = "${azurerm_postgresql_server.test.location}" resource_group_name = "${azurerm_postgresql_server.test.resource_group_name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -423,12 +464,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -456,12 +492,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_4" - capacity = 4 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_4" storage_profile { storage_mb = 640000 @@ -489,12 +520,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 947200 @@ -523,13 +549,8 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_32" - capacity = 32 - tier = "GeneralPurpose" - family = "Gen5" - } - + sku_name = "GP_Gen5_32" + storage_profile { storage_mb = 640000 backup_retention_days = 7 @@ -556,12 +577,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "MO_Gen5_16" - capacity = 16 - tier = "MemoryOptimized" - family = "Gen5" - } + sku_name = "MO_Gen5_16" storage_profile { storage_mb = 4194304 diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go index 90305b89d1a7..46cf98c731ef 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_virtual_network_rule_test.go @@ -268,12 +268,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -344,12 +339,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -406,12 +396,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -483,12 +468,7 @@ resource "azurerm_postgresql_server" "test" { version = "9.5" ssl_enforcement = "Enabled" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 @@ -550,12 +530,7 @@ resource "azurerm_postgresql_server" "test" { location = "${azurerm_resource_group.test.location}" resource_group_name = "${azurerm_resource_group.test.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 51200 diff --git a/website/docs/guides/2.0-upgrade-guide.html.markdown b/website/docs/guides/2.0-upgrade-guide.html.markdown index a3b41e341ecf..ef0bdf32bcc6 100644 --- a/website/docs/guides/2.0-upgrade-guide.html.markdown +++ b/website/docs/guides/2.0-upgrade-guide.html.markdown @@ -365,6 +365,10 @@ This resource has been renamed to `azurerm_private_endpoint` which is available The deprecated `network_interface_ids` field will be removed. +### Resource: `azurerm_postgresql_server` + +The deprecated `sku` block has been simplified down to the `sku_name` block and will be removed. + ### Resource: `azurerm_public_ip` The deprecated `public_ip_address_allocation` field will be removed. This field has been replaced by `allocation_method`. diff --git a/website/docs/r/postgresql_server.html.markdown b/website/docs/r/postgresql_server.html.markdown index 4058d3b56050..137beb65e2a8 100644 --- a/website/docs/r/postgresql_server.html.markdown +++ b/website/docs/r/postgresql_server.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen5" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 @@ -54,7 +49,7 @@ The following arguments are supported: * `location` - (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. -* `sku` - (Required) A `sku` block as defined below. +* `sku_name` - (Required) Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. `B_Gen4_1`, `GP_Gen5_8`). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#sku). * `storage_profile` - (Required) A `storage_profile` block as defined below. @@ -70,18 +65,6 @@ The following arguments are supported: --- -`sku` supports the following: - -* `name` - (Required) Specifies the SKU Name for this PostgreSQL Server. The name of the SKU, follows the `tier` + `family` + `cores` pattern (e.g. B_Gen4_1, GP_Gen5_8). For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#sku). - -* `capacity` - (Required) The scale up/out capacity, representing server's compute units. - -* `tier` - (Required) The tier of the particular SKU. Possible values are `Basic`, `GeneralPurpose`, and `MemoryOptimized`. For more information see the [product documentation](https://docs.microsoft.com/en-us/azure/postgresql/concepts-pricing-tiers). - -* `family` - (Required) The `family` of hardware `Gen4` or `Gen5`, before selecting your `family` check the [product documentation](https://docs.microsoft.com/en-us/azure/postgresql/concepts-pricing-tiers#compute-generations-vcores-and-memory) for availability in your region. - ---- - `storage_profile` supports the following: * `storage_mb` - (Required) Max storage allowed for a server. Possible values are between `5120` MB(5GB) and `1048576` MB(1TB) for the Basic SKU and between `5120` MB(5GB) and `4194304` MB(4TB) for General Purpose/Memory Optimized SKUs. For more information see the [product documentation](https://docs.microsoft.com/en-us/rest/api/postgresql/servers/create#StorageProfile). diff --git a/website/docs/r/postgresql_virtual_network_rule.html.markdown b/website/docs/r/postgresql_virtual_network_rule.html.markdown index 65353b234f3b..870cd10f0fea 100644 --- a/website/docs/r/postgresql_virtual_network_rule.html.markdown +++ b/website/docs/r/postgresql_virtual_network_rule.html.markdown @@ -40,12 +40,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "GP_Gen5_2" - capacity = 2 - tier = "GeneralPurpose" - family = "Gen5" - } + sku_name = "GP_Gen5_2" storage_profile { storage_mb = 5120 From 82000c4a6efdfaa54307a6613129a0e2f0f31418 Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 12 Jan 2020 12:39:43 -0800 Subject: [PATCH 2/8] make fmt --- .../internal/services/postgres/resource_arm_postgresql_server.go | 1 + 1 file changed, 1 insertion(+) diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go index 5c48fa6626c5..bf8b9dabbe29 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go @@ -85,6 +85,7 @@ func resourceArmPostgreSQLServer() *schema.Resource { Optional: true, Computed: true, ConflictsWith: []string{"sku_name"}, + Deprecated: "This property has been deprecated in favour of the 'sku_name' property and will be removed in version 2.0 of the provider", MaxItems: 1, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ From 86ed00bd6362a2d1162f475d0651c023dbc98634 Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 12 Jan 2020 13:28:52 -0800 Subject: [PATCH 3/8] fix linting errors --- .../services/postgres/resource_arm_postgresql_server.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go index bf8b9dabbe29..d0deb989924c 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go @@ -281,7 +281,7 @@ func resourceArmPostgreSQLServerCreate(d *schema.ResourceData, meta interface{}) var err error sku, err = expandServerSkuName(b.(string)) if err != nil { - fmt.Errorf("error expanding sku_name for PostgreSQL Server % (Resource Group %q): %v", name, resourceGroup, err) + return fmt.Errorf("error expanding sku_name for PostgreSQL Server %s (Resource Group %q): %v", name, resourceGroup, err) } } else if _, ok := d.GetOk("sku"); ok { sku = expandAzureRmPostgreSQLServerSku(d) @@ -341,7 +341,7 @@ func resourceArmPostgreSQLServerUpdate(d *schema.ResourceData, meta interface{}) var err error sku, err = expandServerSkuName(b.(string)) if err != nil { - fmt.Errorf("error expanding sku_name for PostgreSQL Server % (Resource Group %q): %v", name, resourceGroup, err) + return fmt.Errorf("error expanding sku_name for PostgreSQL Server %q (Resource Group %q): %v", name, resourceGroup, err) } } else if _, ok := d.GetOk("sku"); ok { sku = expandAzureRmPostgreSQLServerSku(d) @@ -466,7 +466,6 @@ func resourceArmPostgreSQLServerDelete(d *schema.ResourceData, meta interface{}) } func expandServerSkuName(skuName string) (*postgresql.Sku, error) { - parts := strings.Split(skuName, "_") if len(parts) != 3 { return nil, fmt.Errorf("sku_name (%s) has the worng numberof parts (%d) after splitting on _", skuName, len(parts)) @@ -481,7 +480,7 @@ func expandServerSkuName(skuName string) (*postgresql.Sku, error) { case "MO": tier = postgresql.MemoryOptimized default: - + return nil, fmt.Errorf("sku_name %s has unknown sku tier %s", skuName, parts[0]) } capacity, err := strconv.Atoi(parts[2]) From e30d82478f29be2040349e55d970d1b45022a340 Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 12 Jan 2020 13:45:41 -0800 Subject: [PATCH 4/8] small fixes --- website/docs/r/postgresql_configuration.html.markdown | 7 +------ website/docs/r/postgresql_database.html.markdown | 7 +------ .../docs/r/postgresql_virtual_network_rule.html.markdown | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/website/docs/r/postgresql_configuration.html.markdown b/website/docs/r/postgresql_configuration.html.markdown index 86aea454504a..1f113fe23eb5 100644 --- a/website/docs/r/postgresql_configuration.html.markdown +++ b/website/docs/r/postgresql_configuration.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen4" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 diff --git a/website/docs/r/postgresql_database.html.markdown b/website/docs/r/postgresql_database.html.markdown index 336cbe8c3a7c..278c11ad71ec 100644 --- a/website/docs/r/postgresql_database.html.markdown +++ b/website/docs/r/postgresql_database.html.markdown @@ -23,12 +23,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku { - name = "B_Gen5_2" - capacity = 2 - tier = "Basic" - family = "Gen5" - } + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 diff --git a/website/docs/r/postgresql_virtual_network_rule.html.markdown b/website/docs/r/postgresql_virtual_network_rule.html.markdown index 870cd10f0fea..b0e0447ee65d 100644 --- a/website/docs/r/postgresql_virtual_network_rule.html.markdown +++ b/website/docs/r/postgresql_virtual_network_rule.html.markdown @@ -40,7 +40,7 @@ resource "azurerm_postgresql_server" "example" { location = "${azurerm_resource_group.example.location}" resource_group_name = "${azurerm_resource_group.example.name}" - sku_name = "GP_Gen5_2" + sku_name = "B_Gen5_2" storage_profile { storage_mb = 5120 From ab19ee56c7ac1b475fd9d87ace05e91fdaa5b5be Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 12 Jan 2020 14:47:30 -0800 Subject: [PATCH 5/8] tidy up guide wording --- website/docs/guides/2.0-upgrade-guide.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/guides/2.0-upgrade-guide.html.markdown b/website/docs/guides/2.0-upgrade-guide.html.markdown index ef0bdf32bcc6..1d353f909490 100644 --- a/website/docs/guides/2.0-upgrade-guide.html.markdown +++ b/website/docs/guides/2.0-upgrade-guide.html.markdown @@ -367,7 +367,7 @@ The deprecated `network_interface_ids` field will be removed. ### Resource: `azurerm_postgresql_server` -The deprecated `sku` block has been simplified down to the `sku_name` block and will be removed. +The deprecated `sku` block has been simplified and replaced by the `sku_name` property and will be removed. ### Resource: `azurerm_public_ip` From 57bf52859315fa0191c02a681ac3f8390c171a5d Mon Sep 17 00:00:00 2001 From: kt Date: Mon, 13 Jan 2020 04:46:10 -0800 Subject: [PATCH 6/8] Update azurerm/internal/services/postgres/resource_arm_postgresql_server.go Co-Authored-By: Tom Harvey --- .../services/postgres/resource_arm_postgresql_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go index d0deb989924c..5dd8ee7fcea5 100644 --- a/azurerm/internal/services/postgres/resource_arm_postgresql_server.go +++ b/azurerm/internal/services/postgres/resource_arm_postgresql_server.go @@ -468,7 +468,7 @@ func resourceArmPostgreSQLServerDelete(d *schema.ResourceData, meta interface{}) func expandServerSkuName(skuName string) (*postgresql.Sku, error) { parts := strings.Split(skuName, "_") if len(parts) != 3 { - return nil, fmt.Errorf("sku_name (%s) has the worng numberof parts (%d) after splitting on _", skuName, len(parts)) + return nil, fmt.Errorf("sku_name (%s) has the wrong number of parts (%d) after splitting on _", skuName, len(parts)) } var tier postgresql.SkuTier From afd64cad2fec1e75b0db668abaa8140c93398a4e Mon Sep 17 00:00:00 2001 From: kt Date: Mon, 13 Jan 2020 04:46:16 -0800 Subject: [PATCH 7/8] Update azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go Co-Authored-By: Tom Harvey --- .../postgres/tests/resource_arm_postgresql_server_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go index 23f6627b3360..3da8ef9691e3 100644 --- a/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go +++ b/azurerm/internal/services/postgres/tests/resource_arm_postgresql_server_test.go @@ -33,7 +33,7 @@ func TestAccAzureRMPostgreSQLServer_basicNinePointFive(t *testing.T) { }) } -// remove in 2.0 +// TODO: remove in 2.0 func TestAccAzureRMPostgreSQLServer_basicNinePointFiveOldSku(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_postgresql_server", "test") resource.ParallelTest(t, resource.TestCase{ From 7b51adc8df7096a824b697c8318a440655ca450c Mon Sep 17 00:00:00 2001 From: kt Date: Mon, 13 Jan 2020 04:46:23 -0800 Subject: [PATCH 8/8] Update website/docs/guides/2.0-upgrade-guide.html.markdown Co-Authored-By: Tom Harvey --- website/docs/guides/2.0-upgrade-guide.html.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/website/docs/guides/2.0-upgrade-guide.html.markdown b/website/docs/guides/2.0-upgrade-guide.html.markdown index 1d353f909490..1df8dc28bd0d 100644 --- a/website/docs/guides/2.0-upgrade-guide.html.markdown +++ b/website/docs/guides/2.0-upgrade-guide.html.markdown @@ -367,7 +367,9 @@ The deprecated `network_interface_ids` field will be removed. ### Resource: `azurerm_postgresql_server` -The deprecated `sku` block has been simplified and replaced by the `sku_name` property and will be removed. +The deprecated `sku` block has been replaced by the `sku_name` field and will be removed. + +The `sku_name` field will become Required. ### Resource: `azurerm_public_ip`