From 9c41aec0a8b43874f3fd99dc15fd9ed79f4dc28e Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 28 Jun 2017 11:01:09 +0100 Subject: [PATCH] Switching the backup params to be native types --- azurerm/resource_arm_redis_cache.go | 53 +++++++++++------------- azurerm/resource_arm_redis_cache_test.go | 8 ++-- 2 files changed, 29 insertions(+), 32 deletions(-) diff --git a/azurerm/resource_arm_redis_cache.go b/azurerm/resource_arm_redis_cache.go index 79bff8f205c2..f62ec18f087a 100644 --- a/azurerm/resource_arm_redis_cache.go +++ b/azurerm/resource_arm_redis_cache.go @@ -3,15 +3,14 @@ package azurerm import ( "fmt" "log" - "net/http" + "strconv" "strings" "time" "github.com/Azure/azure-sdk-for-go/arm/redis" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" - "github.com/hashicorp/terraform/helper/validation" "github.com/jen20/riviera/azure" ) @@ -103,21 +102,16 @@ func resourceArmRedisCache() *schema.Resource { ValidateFunc: validateRedisMaxMemoryPolicy, }, "rdb_backup_enabled": { - Type: schema.TypeString, - Optional: true, - DiffSuppressFunc: ignoreCaseDiffSuppressFunc, - ValidateFunc: validation.StringInSlice([]string{ - "true", - "false", - }, true), + Type: schema.TypeBool, + Optional: true, }, "rdb_backup_frequency": { - Type: schema.TypeString, + Type: schema.TypeInt, Optional: true, ValidateFunc: validateRedisBackupFrequency, }, "rdb_backup_max_snapshot_count": { - Type: schema.TypeString, + Type: schema.TypeInt, Optional: true, }, "rdb_storage_connection_string": { @@ -421,19 +415,22 @@ func expandRedisConfiguration(d *schema.ResourceData) *map[string]*string { output["maxmemory-policy"] = azure.String(maxMemoryPolicy) } - backupEnabled := config["rdb_backup_enabled"].(string) - if backupEnabled != "" { - output["rdb-backup-enabled"] = azure.String(backupEnabled) + if v := config["rdb_backup_enabled"]; v != nil { + enabledB := v.(bool) + enabled := strconv.FormatBool(enabledB) + output["rdb-backup-enabled"] = azure.String(enabled) } - backupFrequency := config["rdb_backup_frequency"].(string) - if backupFrequency != "" { - output["rdb-backup-frequency"] = azure.String(backupFrequency) + if v := config["rdb_backup_frequency"]; v != nil { + frequencyI := v.(int) + frequency := strconv.Itoa(frequencyI) + output["rdb-backup-frequency"] = azure.String(frequency) } - backupMaxSnapshotCount := config["rdb_backup_max_snapshot_count"].(string) - if backupMaxSnapshotCount != "" { - output["rdb-backup-max-snapshot-count"] = azure.String(backupMaxSnapshotCount) + if v := config["rdb_backup_max_snapshot_count"]; v != nil { + countI := v.(int) + count := strconv.Itoa(countI) + output["rdb-backup-max-snapshot-count"] = azure.String(count) } backupStorageConnectionString := config["rdb_storage_connection_string"].(string) @@ -508,14 +505,14 @@ func validateRedisSku(v interface{}, k string) (ws []string, errors []error) { } func validateRedisBackupFrequency(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - families := map[string]bool{ - "15": true, - "30": true, - "60": true, - "360": true, - "720": true, - "1440": true, + value := v.(int) + families := map[int]bool{ + 15: true, + 30: true, + 60: true, + 360: true, + 720: true, + 1440: true, } if !families[value] { diff --git a/azurerm/resource_arm_redis_cache_test.go b/azurerm/resource_arm_redis_cache_test.go index 0fdc0f9c9133..78bb83819285 100644 --- a/azurerm/resource_arm_redis_cache_test.go +++ b/azurerm/resource_arm_redis_cache_test.go @@ -459,7 +459,7 @@ resource "azurerm_redis_cache" "test" { enable_non_ssl_port = false redis_configuration { maxclients = "256" - rdb_backup_enabled = "false" + rdb_backup_enabled = false } } `, ri, ri) @@ -492,9 +492,9 @@ resource "azurerm_redis_cache" "test" { enable_non_ssl_port = false redis_configuration { maxclients = "256" - rdb_backup_enabled = "true" - rdb_backup_frequency = "60" - rdb_backup_max_snapshot_count = "1" + rdb_backup_enabled = true + rdb_backup_frequency = 60 + rdb_backup_max_snapshot_count = 1 rdb_storage_connection_string = "DefaultEndpointsProtocol=https;BlobEndpoint=${azurerm_storage_account.test.primary_blob_endpoint};AccountName=${azurerm_storage_account.test.name};AccountKey=${azurerm_storage_account.test.primary_access_key}" } }