Skip to content

Commit

Permalink
resource/aws_acm_certificate: Check for resource.TimeoutError on dele…
Browse files Browse the repository at this point in the history
…tion

Reference: #12985

Output from acceptance testing:

```
--- PASS: TestAccAWSAcmCertificate_disableCTLogging (26.96s)
--- PASS: TestAccAWSAcmCertificate_dnsValidation (30.48s)
--- PASS: TestAccAWSAcmCertificate_emailValidation (28.03s)
--- PASS: TestAccAWSAcmCertificate_imported_DomainName (61.12s)
--- PASS: TestAccAWSAcmCertificate_imported_IpAddress (23.20s)
--- PASS: TestAccAWSAcmCertificate_privateCert (31.56s)
--- PASS: TestAccAWSAcmCertificate_PrivateKey_Tags (39.80s)
--- PASS: TestAccAWSAcmCertificate_root (29.49s)
--- PASS: TestAccAWSAcmCertificate_root_TrailingPeriod (3.09s)
--- PASS: TestAccAWSAcmCertificate_rootAndWildcardSan (25.69s)
--- PASS: TestAccAWSAcmCertificate_san_multiple (31.05s)
--- PASS: TestAccAWSAcmCertificate_san_single (25.76s)
--- PASS: TestAccAWSAcmCertificate_san_TrailingPeriod (28.42s)
--- PASS: TestAccAWSAcmCertificate_SubjectAlternativeNames_EmptyString (3.41s)
--- PASS: TestAccAWSAcmCertificate_wildcard (29.34s)
--- PASS: TestAccAWSAcmCertificate_wildcardAndRootSan (28.22s)
--- PASS: TestAccAWSAcmCertificate_tags (81.57s)
```
  • Loading branch information
bflad committed Oct 6, 2020
1 parent bd5d7f7 commit bd04b61
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions aws/resource_aws_acm_certificate.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ import (

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/acm"
"github.com/hashicorp/aws-sdk-go-base/tfawserr"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/hashcode"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags"
"github.com/terraform-providers/terraform-provider-aws/aws/internal/tfresource"
)

const (
Expand Down Expand Up @@ -461,18 +463,28 @@ func resourceAwsAcmCertificateDelete(d *schema.ResourceData, meta interface{}) e

err := resource.Retry(AcmCertificateCrossServicePropagationTimeout, func() *resource.RetryError {
_, err := acmconn.DeleteCertificate(params)

if tfawserr.ErrCodeEquals(err, acm.ErrCodeResourceInUseException) {
return resource.RetryableError(err)
}

if err != nil {
if isAWSErr(err, acm.ErrCodeResourceInUseException, "") {
log.Printf("[WARN] Conflict deleting certificate in use: %s, retrying", err.Error())
return resource.RetryableError(err)
}
return resource.NonRetryableError(err)
}

return nil
})

if err != nil && !isAWSErr(err, acm.ErrCodeResourceNotFoundException, "") {
return fmt.Errorf("Error deleting certificate: %s", err)
if tfresource.TimedOut(err) {
_, err = acmconn.DeleteCertificate(params)
}

if tfawserr.ErrCodeEquals(err, acm.ErrCodeResourceNotFoundException) {
return nil
}

if err != nil {
return fmt.Errorf("error deleting ACM Certificate (%s): %w", d.Id(), err)
}

return nil
Expand Down

0 comments on commit bd04b61

Please sign in to comment.