From ee3d89a4cd4986b791658923724779b51f4d4ecd Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Wed, 27 Apr 2016 20:07:34 +0100 Subject: [PATCH] provider/aws: refresh state on SQS Queue not found (#6381) When an SQS queue was deleted from the AWS Console, an error was thrown to say that the Queue could not be found. This is now fixed to remove the queue from the state on a specific not found exception --- builtin/providers/aws/resource_aws_sqs_queue.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/builtin/providers/aws/resource_aws_sqs_queue.go b/builtin/providers/aws/resource_aws_sqs_queue.go index fb38330729..7d7733bf32 100644 --- a/builtin/providers/aws/resource_aws_sqs_queue.go +++ b/builtin/providers/aws/resource_aws_sqs_queue.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform/helper/schema" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/sqs" ) @@ -177,6 +178,14 @@ func resourceAwsSqsQueueRead(d *schema.ResourceData, meta interface{}) error { }) if err != nil { + if awsErr, ok := err.(awserr.Error); ok { + log.Printf("ERROR Found %s", awsErr.Code()) + if "AWS.SimpleQueueService.NonExistentQueue" == awsErr.Code() { + d.SetId("") + log.Printf("[DEBUG] SQS Queue (%s) not found", d.Get("name").(string)) + return nil + } + } return err }