From 125e175186d93efe843f0c4b11afe61a70457572 Mon Sep 17 00:00:00 2001 From: Krzysztof Wilczynski Date: Wed, 21 Sep 2016 19:22:40 +0100 Subject: [PATCH] Handle JSON parsing error in the ReadFunc for the policy document. Signed-off-by: Krzysztof Wilczynski --- .../providers/aws/resource_aws_vpc_endpoint.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/builtin/providers/aws/resource_aws_vpc_endpoint.go b/builtin/providers/aws/resource_aws_vpc_endpoint.go index e159439d2..3835c39a3 100644 --- a/builtin/providers/aws/resource_aws_vpc_endpoint.go +++ b/builtin/providers/aws/resource_aws_vpc_endpoint.go @@ -7,6 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/ec2" + "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/schema" ) @@ -64,7 +65,10 @@ func resourceAwsVPCEndpointCreate(d *schema.ResourceData, meta interface{}) erro } if v, ok := d.GetOk("policy"); ok { - policy, _ := normalizeJsonString(v) + policy, err := normalizeJsonString(v) + if err != nil { + return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) + } input.PolicyDocument = aws.String(policy) } @@ -132,7 +136,10 @@ func resourceAwsVPCEndpointRead(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("There are multiple prefix lists associated with the service name '%s'. Unexpected", prefixListServiceName) } - policy, _ := normalizeJsonString(*vpce.PolicyDocument) + policy, err := normalizeJsonString(*vpce.PolicyDocument) + if err != nil { + return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) + } d.Set("vpc_id", vpce.VpcId) d.Set("policy", policy) @@ -168,7 +175,10 @@ func resourceAwsVPCEndpointUpdate(d *schema.ResourceData, meta interface{}) erro } if d.HasChange("policy") { - policy, _ := normalizeJsonString(d.Get("policy")) + policy, err := normalizeJsonString(d.Get("policy")) + if err != nil { + return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) + } input.PolicyDocument = aws.String(policy) }