From f24396b904ec75c8a2a3b25b18f0b2ffa21d31c9 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Mon, 5 Jun 2017 09:50:23 +0100 Subject: [PATCH] provider/aws: Retry ECS svc creation on ClusterNotFoundException (#15066) --- builtin/providers/aws/resource_aws_ecs_service.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/builtin/providers/aws/resource_aws_ecs_service.go b/builtin/providers/aws/resource_aws_ecs_service.go index 107f7c188..121e43997 100644 --- a/builtin/providers/aws/resource_aws_ecs_service.go +++ b/builtin/providers/aws/resource_aws_ecs_service.go @@ -222,8 +222,7 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error log.Printf("[DEBUG] Creating ECS service: %s", input) - // Retry due to AWS IAM policy eventual consistency - // See https://github.com/hashicorp/terraform/issues/2869 + // Retry due to AWS IAM & ECS eventual consistency var out *ecs.CreateServiceOutput var err error err = resource.Retry(2*time.Minute, func() *resource.RetryError { @@ -239,6 +238,11 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error awsErr.Message()) return resource.RetryableError(err) } + if awsErr.Code() == "ClusterNotFoundException" { + log.Printf("[DEBUG] Trying to create ECS service again: %q", + awsErr.Message()) + return resource.RetryableError(err) + } return resource.NonRetryableError(err) }