Merge pull request #3120 from apparentlymart/elasticache-subnet-names

aws_elasticache_subnet_group normalizes name to lowercase.
This commit is contained in:
Paul Hinze 2015-09-04 13:21:06 -05:00
commit 5f3b6f9952
3 changed files with 17 additions and 4 deletions

View File

@ -3,6 +3,7 @@ package aws
import (
"fmt"
"log"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws"
@ -29,6 +30,12 @@ func resourceAwsElasticacheSubnetGroup() *schema.Resource {
Type: schema.TypeString,
Required: true,
ForceNew: true,
StateFunc: func(val interface{}) string {
// Elasticache normalizes subnet names to lowercase,
// so we have to do this too or else we can end up
// with non-converging diffs.
return strings.ToLower(val.(string))
},
},
"subnet_ids": &schema.Schema{
Type: schema.TypeSet,
@ -66,7 +73,10 @@ func resourceAwsElasticacheSubnetGroupCreate(d *schema.ResourceData, meta interf
}
// Assign the group name as the resource ID
d.SetId(name)
// Elasticache always retains the name in lower case, so we have to
// mimic that or else we won't be able to refresh a resource whose
// name contained uppercase characters.
d.SetId(strings.ToLower(name))
return nil
}

View File

@ -150,7 +150,10 @@ resource "aws_subnet" "foo" {
}
resource "aws_elasticache_subnet_group" "bar" {
name = "tf-test-cache-subnet-%03d"
// Including uppercase letters in this name to ensure
// that we correctly handle the fact that the API
// normalizes names to lowercase.
name = "tf-TEST-cache-subnet-%03d"
description = "tf-test-cache-subnet-group-descr"
subnet_ids = ["${aws_subnet.foo.id}"]
}

View File

@ -45,8 +45,8 @@ resource "aws_elasticache_subnet_group" "bar" {
The following arguments are supported:
* `description` (Required) Description for the cache subnet group
* `name` (Required) Name for the cache subnet group. This value is stored as
a lowercase string
* `name` (Required) Name for the cache subnet group. Elasticache converts
this name to lowercase.
* `subnet_ids` (Required) List of VPC Subnet IDs for the cache subnet group
## Attributes Reference