Merge pull request #2246 from hashicorp/b-aws-elb-listeners-hash-case
provider/aws: fix case in ELB listener protocols
This commit is contained in:
commit
27c6b868eb
|
@ -4,6 +4,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/aws/awserr"
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||||
|
@ -541,9 +542,11 @@ func resourceAwsElbListenerHash(v interface{}) int {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
m := v.(map[string]interface{})
|
m := v.(map[string]interface{})
|
||||||
buf.WriteString(fmt.Sprintf("%d-", m["instance_port"].(int)))
|
buf.WriteString(fmt.Sprintf("%d-", m["instance_port"].(int)))
|
||||||
buf.WriteString(fmt.Sprintf("%s-", m["instance_protocol"].(string)))
|
buf.WriteString(fmt.Sprintf("%s-",
|
||||||
|
strings.ToLower(m["instance_protocol"].(string))))
|
||||||
buf.WriteString(fmt.Sprintf("%d-", m["lb_port"].(int)))
|
buf.WriteString(fmt.Sprintf("%d-", m["lb_port"].(int)))
|
||||||
buf.WriteString(fmt.Sprintf("%s-", m["lb_protocol"].(string)))
|
buf.WriteString(fmt.Sprintf("%s-",
|
||||||
|
strings.ToLower(m["lb_protocol"].(string))))
|
||||||
|
|
||||||
if v, ok := m["ssl_certificate_id"]; ok {
|
if v, ok := m["ssl_certificate_id"]; ok {
|
||||||
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
|
|
|
@ -362,6 +362,39 @@ func TestAccAWSELB_SecurityGroups(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unit test for listeners hash
|
||||||
|
func TestResourceAwsElbListenerHash(t *testing.T) {
|
||||||
|
cases := map[string]struct {
|
||||||
|
Left map[string]interface{}
|
||||||
|
Right map[string]interface{}
|
||||||
|
Match bool
|
||||||
|
}{
|
||||||
|
"protocols are case insensitive": {
|
||||||
|
map[string]interface{}{
|
||||||
|
"instance_port": 80,
|
||||||
|
"instance_protocol": "TCP",
|
||||||
|
"lb_port": 80,
|
||||||
|
"lb_protocol": "TCP",
|
||||||
|
},
|
||||||
|
map[string]interface{}{
|
||||||
|
"instance_port": 80,
|
||||||
|
"instance_protocol": "Tcp",
|
||||||
|
"lb_port": 80,
|
||||||
|
"lb_protocol": "tcP",
|
||||||
|
},
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for tn, tc := range cases {
|
||||||
|
leftHash := resourceAwsElbListenerHash(tc.Left)
|
||||||
|
rightHash := resourceAwsElbListenerHash(tc.Right)
|
||||||
|
if (leftHash == rightHash) != tc.Match {
|
||||||
|
t.Fatalf("%s: expected match: %t, but did not get it", tn, tc.Match)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func testAccCheckAWSELBDestroy(s *terraform.State) error {
|
func testAccCheckAWSELBDestroy(s *terraform.State) error {
|
||||||
conn := testAccProvider.Meta().(*AWSClient).elbconn
|
conn := testAccProvider.Meta().(*AWSClient).elbconn
|
||||||
|
|
||||||
|
@ -513,7 +546,8 @@ resource "aws_elb" "bar" {
|
||||||
instance_port = 8000
|
instance_port = 8000
|
||||||
instance_protocol = "http"
|
instance_protocol = "http"
|
||||||
lb_port = 80
|
lb_port = 80
|
||||||
lb_protocol = "http"
|
// Protocol should be case insensitive
|
||||||
|
lb_protocol = "HttP"
|
||||||
}
|
}
|
||||||
|
|
||||||
tags {
|
tags {
|
||||||
|
|
Loading…
Reference in New Issue