providers/aws: changing order of security group cidrs doesn't affect
things
This commit is contained in:
parent
46b81587ef
commit
cdc2a53553
|
@ -3,6 +3,7 @@ package aws
|
|||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"sort"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
|
@ -89,14 +90,30 @@ func resourceAwsSecurityGroupIngressHash(v interface{}) int {
|
|||
buf.WriteString(fmt.Sprintf("%d-", m["to_port"].(int)))
|
||||
buf.WriteString(fmt.Sprintf("%d-", m["protocol"].(string)))
|
||||
|
||||
// We need to make sure to sort the strings below so that we always
|
||||
// generate the same hash code no matter what is in the set.
|
||||
if v, ok := m["cidr_blocks"]; ok {
|
||||
for _, raw := range v.([]interface{}) {
|
||||
buf.WriteString(fmt.Sprintf("%s-", raw.(string)))
|
||||
vs := v.([]interface{})
|
||||
s := make([]string, len(vs))
|
||||
for i, raw := range vs {
|
||||
s[i] = raw.(string)
|
||||
}
|
||||
sort.Strings(s)
|
||||
|
||||
for _, v := range s {
|
||||
buf.WriteString(fmt.Sprintf("%s-", v))
|
||||
}
|
||||
}
|
||||
if v, ok := m["security_groups"]; ok {
|
||||
for _, raw := range v.([]interface{}) {
|
||||
buf.WriteString(fmt.Sprintf("%s-", raw.(string)))
|
||||
vs := v.([]interface{})
|
||||
s := make([]string, len(vs))
|
||||
for i, raw := range vs {
|
||||
s[i] = raw.(string)
|
||||
}
|
||||
sort.Strings(s)
|
||||
|
||||
for _, v := range s {
|
||||
buf.WriteString(fmt.Sprintf("%s-", v))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue