Fix timeout issue with project services (#737)

* retry api enablement/disablement for 10 minutes

* retry to retryTime
This commit is contained in:
Dana Hoffman 2017-11-14 11:41:57 -08:00 committed by GitHub
parent 3bd6e35c80
commit 2c8dbac663
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 5 deletions

View File

@ -186,7 +186,7 @@ func getApiServices(pid string, config *Config, ignore map[string]struct{}) ([]s
func enableService(s, pid string, config *Config) error {
esr := newEnableServiceRequest(pid)
err := retry(func() error {
err := retryTime(func() error {
sop, err := config.clientServiceMan.Services.Enable(s, esr).Do()
if err != nil {
return err
@ -196,7 +196,7 @@ func enableService(s, pid string, config *Config) error {
return waitErr
}
return nil
})
}, 10)
if err != nil {
return fmt.Errorf("Error enabling service %q for project %q: %v", s, pid, err)
}
@ -205,7 +205,7 @@ func enableService(s, pid string, config *Config) error {
func disableService(s, pid string, config *Config) error {
dsr := newDisableServiceRequest(pid)
err := retry(func() error {
err := retryTime(func() error {
sop, err := config.clientServiceMan.Services.Disable(s, dsr).Do()
if err != nil {
return err
@ -216,7 +216,7 @@ func disableService(s, pid string, config *Config) error {
return waitErr
}
return nil
})
}, 10)
if err != nil {
return fmt.Errorf("Error disabling service %q for project %q: %v", s, pid, err)
}

View File

@ -385,7 +385,11 @@ func mergeSchemas(a, b map[string]*schema.Schema) map[string]*schema.Schema {
}
func retry(retryFunc func() error) error {
return resource.Retry(1*time.Minute, func() *resource.RetryError {
return retryTime(retryFunc, 1)
}
func retryTime(retryFunc func() error, minutes int) error {
return resource.Retry(time.Duration(minutes)*time.Minute, func() *resource.RetryError {
err := retryFunc()
if err == nil {
return nil