tweaks to restore TypeSet functionality
This commit is contained in:
parent
25f9aeb30a
commit
2cf64ef72c
|
@ -269,7 +269,7 @@ func expandCacheBehavior(m map[string]interface{}) *cloudfront.CacheBehavior {
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := m["lambda_function_association"]; ok {
|
if v, ok := m["lambda_function_association"]; ok {
|
||||||
cb.LambdaFunctionAssociations = expandLambdaFunctionAssociations(v)
|
cb.LambdaFunctionAssociations = expandLambdaFunctionAssociations(v.(*schema.Set).List())
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := m["smooth_streaming"]; ok {
|
if v, ok := m["smooth_streaming"]; ok {
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package aws
|
package aws
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/aws/aws-sdk-go/aws"
|
"github.com/aws/aws-sdk-go/aws"
|
||||||
"github.com/aws/aws-sdk-go/service/cloudfront"
|
"github.com/aws/aws-sdk-go/service/cloudfront"
|
||||||
|
"github.com/hashicorp/terraform/helper/hashcode"
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -46,8 +49,20 @@ func trustedSignersConf() []interface{} {
|
||||||
return []interface{}{"1234567890EX", "1234567891EX"}
|
return []interface{}{"1234567890EX", "1234567891EX"}
|
||||||
}
|
}
|
||||||
|
|
||||||
func lambdaFunctionAssociationsConf() []interface{} {
|
func lambdaSetHash(v interface{}) int {
|
||||||
s := []interface{}{
|
var buf bytes.Buffer
|
||||||
|
m := v.(map[string]interface{})
|
||||||
|
if v, ok := m["event_type"]; ok {
|
||||||
|
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
|
||||||
|
}
|
||||||
|
if v, ok := m["lambda_arn"]; ok {
|
||||||
|
buf.WriteString(fmt.Sprintf("%d-", v.(string)))
|
||||||
|
}
|
||||||
|
return hashcode.String(buf.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
func lambdaFunctionAssociationsConf() *schema.Set {
|
||||||
|
x := []interface{}{
|
||||||
map[string]interface{}{
|
map[string]interface{}{
|
||||||
"event_type": "viewer-request",
|
"event_type": "viewer-request",
|
||||||
"lambda_arn": "arn:aws:lambda:us-east-1:999999999:function1:alias",
|
"lambda_arn": "arn:aws:lambda:us-east-1:999999999:function1:alias",
|
||||||
|
@ -57,6 +72,9 @@ func lambdaFunctionAssociationsConf() []interface{} {
|
||||||
"lambda_arn": "arn:aws:lambda:us-east-1:999999999:function2:alias",
|
"lambda_arn": "arn:aws:lambda:us-east-1:999999999:function2:alias",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s := schema.NewSet(lambdaSetHash, x)
|
||||||
|
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,7 +472,7 @@ func TestCloudFrontStructure_expandTrustedSigners_empty(t *testing.T) {
|
||||||
|
|
||||||
func TestCloudFrontStructure_expandLambdaFunctionAssociations(t *testing.T) {
|
func TestCloudFrontStructure_expandLambdaFunctionAssociations(t *testing.T) {
|
||||||
data := lambdaFunctionAssociationsConf()
|
data := lambdaFunctionAssociationsConf()
|
||||||
lfa := expandLambdaFunctionAssociations(data)
|
lfa := expandLambdaFunctionAssociations(data.List())
|
||||||
if *lfa.Quantity != 2 {
|
if *lfa.Quantity != 2 {
|
||||||
t.Fatalf("Expected Quantity to be 2, got %v", *lfa.Quantity)
|
t.Fatalf("Expected Quantity to be 2, got %v", *lfa.Quantity)
|
||||||
}
|
}
|
||||||
|
@ -471,17 +489,17 @@ func TestCloudFrontStructure_expandLambdaFunctionAssociations(t *testing.T) {
|
||||||
|
|
||||||
func TestCloudFrontStructure_flattenlambdaFunctionAssociations(t *testing.T) {
|
func TestCloudFrontStructure_flattenlambdaFunctionAssociations(t *testing.T) {
|
||||||
in := lambdaFunctionAssociationsConf()
|
in := lambdaFunctionAssociationsConf()
|
||||||
lfa := expandLambdaFunctionAssociations(in)
|
lfa := expandLambdaFunctionAssociations(in.List())
|
||||||
out := flattenLambdaFunctionAssociations(lfa)
|
out := flattenLambdaFunctionAssociations(lfa)
|
||||||
|
|
||||||
if reflect.DeepEqual(in, out) != true {
|
if reflect.DeepEqual(in.List(), out) != true {
|
||||||
t.Fatalf("Expected out to be %v, got %v", in, out)
|
t.Fatalf("Expected out to be %v, got %v", in, out)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCloudFrontStructure_expandlambdaFunctionAssociations_empty(t *testing.T) {
|
func TestCloudFrontStructure_expandlambdaFunctionAssociations_empty(t *testing.T) {
|
||||||
data := []interface{}{}
|
data := new(schema.Set)
|
||||||
lfa := expandLambdaFunctionAssociations(data)
|
lfa := expandLambdaFunctionAssociations(data.List())
|
||||||
if *lfa.Quantity != 0 {
|
if *lfa.Quantity != 0 {
|
||||||
t.Fatalf("Expected Quantity to be 0, got %v", *lfa.Quantity)
|
t.Fatalf("Expected Quantity to be 0, got %v", *lfa.Quantity)
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"lambda_function_association": {
|
"lambda_function_association": {
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeSet,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
MaxItems: 4,
|
MaxItems: 4,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
|
@ -250,7 +250,7 @@ func resourceAwsCloudFrontDistribution() *schema.Resource {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"lambda_function_association": {
|
"lambda_function_association": {
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeSet,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
MaxItems: 4,
|
MaxItems: 4,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
|
|
Loading…
Reference in New Issue