aboutsummaryrefslogtreecommitdiffhomepage
path: root/mailgun/resource_mailgun_domain.go
diff options
context:
space:
mode:
Diffstat (limited to 'mailgun/resource_mailgun_domain.go')
-rw-r--r--mailgun/resource_mailgun_domain.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/mailgun/resource_mailgun_domain.go b/mailgun/resource_mailgun_domain.go
index e2bfe73..c195cf0 100644
--- a/mailgun/resource_mailgun_domain.go
+++ b/mailgun/resource_mailgun_domain.go
@@ -4,6 +4,7 @@ import (
4 "context" 4 "context"
5 "fmt" 5 "fmt"
6 "github.com/hashicorp/terraform/helper/schema" 6 "github.com/hashicorp/terraform/helper/schema"
7 "github.com/hashicorp/terraform/helper/resource"
7 "github.com/mailgun/mailgun-go/v3" 8 "github.com/mailgun/mailgun-go/v3"
8 "log" 9 "log"
9 "time" 10 "time"
@@ -493,13 +494,18 @@ func ImportStatePassthroughDomain(d *schema.ResourceData, meta interface{}) ([]*
493} 494}
494 495
495func getIps(ctx context.Context,mg *mailgun.MailgunImpl) ([]mailgun.IPAddress, error){ 496func getIps(ctx context.Context,mg *mailgun.MailgunImpl) ([]mailgun.IPAddress, error){
496 start := time.Now() 497 var ipAddress []mailgun.IPAddress
497 t := time.Now() 498 log.Printf("[DEBUG] begin to fetch ips for %s",mg.Domain())
498 ipAddress, err := mg.ListDomainIPS(ctx) 499 err := resource.Retry(2*time.Minute, func() *resource.RetryError {
499 for (err != nil && t.Sub(start)< 120 * time.Second) { 500 var err error
500 ipAddress, err = mg.ListDomainIPS(ctx) 501 ipAddress, err = mg.ListDomainIPS(ctx)
501 time.Sleep(5 * time.Second) 502 if err != nil {
502 t = time.Now() 503 log.Printf("[DEBUG] failed to fetch ips for %s",mg.Domain())
503 } 504 return resource.RetryableError(err)
505 }
506 log.Printf("[DEBUG] managed to fetch ips for %s",mg.Domain())
507
508 return nil
509 })
504 return ipAddress, err 510 return ipAddress, err
505} 511}