Fixing a small bug in the ACL rule hash function
Since the default value is not available in the initial config (when `action` or `traffic_type` is omitted), the result would be `nil` instead of a string when trying to access one of these the values.
This commit is contained in:
parent
221b48bd5a
commit
033cee31f3
|
@ -455,12 +455,27 @@ func resourceCloudStackNetworkACLRuleDeleteRule(
|
||||||
func resourceCloudStackNetworkACLRuleHash(v interface{}) int {
|
func resourceCloudStackNetworkACLRuleHash(v interface{}) int {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
m := v.(map[string]interface{})
|
m := v.(map[string]interface{})
|
||||||
|
|
||||||
|
// This is a little ugly, but it's needed because these arguments have
|
||||||
|
// a default value that needs to be part of the string to hash
|
||||||
|
var action, trafficType string
|
||||||
|
if a, ok := m["action"]; ok {
|
||||||
|
action = a.(string)
|
||||||
|
} else {
|
||||||
|
action = "allow"
|
||||||
|
}
|
||||||
|
if t, ok := m["traffic_type"]; ok {
|
||||||
|
trafficType = t.(string)
|
||||||
|
} else {
|
||||||
|
trafficType = "ingress"
|
||||||
|
}
|
||||||
|
|
||||||
buf.WriteString(fmt.Sprintf(
|
buf.WriteString(fmt.Sprintf(
|
||||||
"%s-%s-%s-%s-",
|
"%s-%s-%s-%s-",
|
||||||
m["action"].(string),
|
action,
|
||||||
m["source_cidr"].(string),
|
m["source_cidr"].(string),
|
||||||
m["protocol"].(string),
|
m["protocol"].(string),
|
||||||
m["traffic_type"].(string)))
|
trafficType))
|
||||||
|
|
||||||
if v, ok := m["icmp_type"]; ok {
|
if v, ok := m["icmp_type"]; ok {
|
||||||
buf.WriteString(fmt.Sprintf("%d-", v.(int)))
|
buf.WriteString(fmt.Sprintf("%d-", v.(int)))
|
||||||
|
|
|
@ -190,7 +190,6 @@ resource "cloudstack_network_acl_rule" "foo" {
|
||||||
aclid = "${cloudstack_network_acl.foo.id}"
|
aclid = "${cloudstack_network_acl.foo.id}"
|
||||||
|
|
||||||
rule {
|
rule {
|
||||||
action = "allow"
|
|
||||||
source_cidr = "172.16.100.0/24"
|
source_cidr = "172.16.100.0/24"
|
||||||
protocol = "tcp"
|
protocol = "tcp"
|
||||||
ports = ["80", "443"]
|
ports = ["80", "443"]
|
||||||
|
|
Loading…
Reference in New Issue