From e7bd175971332f8b267cb758da3cdb215bcec077 Mon Sep 17 00:00:00 2001 From: Ryn Daniels Date: Tue, 14 May 2019 16:29:15 +0200 Subject: [PATCH 1/3] Retry modifying LB listener after timeout --- aws/resource_aws_lb_listener.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/aws/resource_aws_lb_listener.go b/aws/resource_aws_lb_listener.go index 7720ddc6ccb2..fc7f0ae70e74 100644 --- a/aws/resource_aws_lb_listener.go +++ b/aws/resource_aws_lb_listener.go @@ -799,6 +799,15 @@ func resourceAwsLbListenerUpdate(d *schema.ResourceData, meta interface{}) error } return nil }) + + if isResourceTimeoutError(err) { + _, err := elbconn.ModifyListener(params) + + if err != nil { + return fmt.Errorf("Error modifying LB Listener: %s", err) + } + } + if err != nil { return fmt.Errorf("Error modifying LB Listener: %s", err) } From a6f58f96bfe52d0b4d91dd33f71a75bba2d3372b Mon Sep 17 00:00:00 2001 From: Ryn Daniels Date: Tue, 14 May 2019 17:39:16 +0200 Subject: [PATCH 2/3] Add final retries to the other methods' timeouts as well --- aws/resource_aws_lb_listener.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/aws/resource_aws_lb_listener.go b/aws/resource_aws_lb_listener.go index fc7f0ae70e74..60f6d0f14da5 100644 --- a/aws/resource_aws_lb_listener.go +++ b/aws/resource_aws_lb_listener.go @@ -493,6 +493,14 @@ func resourceAwsLbListenerCreate(d *schema.ResourceData, meta interface{}) error return nil }) + if isResourceTimeoutError(err) { + _, err := elbconn.CreateListener(params) + + if err != nil { + return fmt.Errorf("Error creating LB Listener: %s", err) + } + } + if err != nil { return fmt.Errorf("Error creating LB Listener: %s", err) } @@ -526,6 +534,14 @@ func resourceAwsLbListenerRead(d *schema.ResourceData, meta interface{}) error { return nil }) + if isResourceTimeoutError(err) { + _, err := elbconn.DescribeListeners(request) + + if err != nil { + return fmt.Errorf("Error retrieving Listener: %s", err) + } + } + if isAWSErr(err, elbv2.ErrCodeListenerNotFoundException, "") { log.Printf("[WARN] ELBv2 Listener (%s) not found - removing from state", d.Id()) d.SetId("") From efa1e287c588eaff7915a94dfd765684f01b8336 Mon Sep 17 00:00:00 2001 From: Ryn Daniels Date: Wed, 15 May 2019 10:31:17 +0200 Subject: [PATCH 3/3] Use direct assignment for the retry methods --- aws/resource_aws_lb_listener.go | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/aws/resource_aws_lb_listener.go b/aws/resource_aws_lb_listener.go index 60f6d0f14da5..2678121d48f8 100644 --- a/aws/resource_aws_lb_listener.go +++ b/aws/resource_aws_lb_listener.go @@ -494,11 +494,7 @@ func resourceAwsLbListenerCreate(d *schema.ResourceData, meta interface{}) error }) if isResourceTimeoutError(err) { - _, err := elbconn.CreateListener(params) - - if err != nil { - return fmt.Errorf("Error creating LB Listener: %s", err) - } + _, err = elbconn.CreateListener(params) } if err != nil { @@ -535,11 +531,7 @@ func resourceAwsLbListenerRead(d *schema.ResourceData, meta interface{}) error { }) if isResourceTimeoutError(err) { - _, err := elbconn.DescribeListeners(request) - - if err != nil { - return fmt.Errorf("Error retrieving Listener: %s", err) - } + _, err = elbconn.DescribeListeners(request) } if isAWSErr(err, elbv2.ErrCodeListenerNotFoundException, "") { @@ -817,11 +809,7 @@ func resourceAwsLbListenerUpdate(d *schema.ResourceData, meta interface{}) error }) if isResourceTimeoutError(err) { - _, err := elbconn.ModifyListener(params) - - if err != nil { - return fmt.Errorf("Error modifying LB Listener: %s", err) - } + _, err = elbconn.ModifyListener(params) } if err != nil {