Merge pull request #2174 from danawillow/is-2055

add retries for all calls in sql database resource
This commit is contained in:
Paddy 2018-10-04 16:12:22 -07:00 committed by GitHub
commit e615032018
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,8 +86,12 @@ func resourceSqlDatabaseCreate(d *schema.ResourceData, meta interface{}) error {
mutexKV.Lock(instanceMutexKey(project, instance_name))
defer mutexKV.Unlock(instanceMutexKey(project, instance_name))
op, err := config.clientSqlAdmin.Databases.Insert(project, instance_name,
db).Do()
var op *sqladmin.Operation
err = retryTime(func() error {
op, err = config.clientSqlAdmin.Databases.Insert(project, instance_name, db).Do()
return err
}, 5 /* minutes */)
if err != nil {
return fmt.Errorf("Error, failed to insert "+
@ -123,8 +127,11 @@ func resourceSqlDatabaseRead(d *schema.ResourceData, meta interface{}) error {
instance_name := s[0]
database_name := s[1]
db, err := config.clientSqlAdmin.Databases.Get(project, instance_name,
database_name).Do()
var db *sqladmin.Database
err = retryTime(func() error {
db, err = config.clientSqlAdmin.Databases.Get(project, instance_name, database_name).Do()
return err
}, 5 /* minutes */)
if err != nil {
return handleNotFoundError(err, d, fmt.Sprintf("SQL Database %q in instance %q", database_name, instance_name))
@ -161,8 +168,12 @@ func resourceSqlDatabaseUpdate(d *schema.ResourceData, meta interface{}) error {
mutexKV.Lock(instanceMutexKey(project, instance_name))
defer mutexKV.Unlock(instanceMutexKey(project, instance_name))
op, err := config.clientSqlAdmin.Databases.Update(project, instance_name, database_name,
db).Do()
var op *sqladmin.Operation
err = retryTime(func() error {
op, err = config.clientSqlAdmin.Databases.Update(project, instance_name, database_name, db).Do()
return err
}, 5 /* minutes */)
if err != nil {
return fmt.Errorf("Error, failed to update "+
@ -193,8 +204,12 @@ func resourceSqlDatabaseDelete(d *schema.ResourceData, meta interface{}) error {
mutexKV.Lock(instanceMutexKey(project, instance_name))
defer mutexKV.Unlock(instanceMutexKey(project, instance_name))
op, err := config.clientSqlAdmin.Databases.Delete(project, instance_name,
database_name).Do()
var op *sqladmin.Operation
err = retryTime(func() error {
op, err = config.clientSqlAdmin.Databases.Delete(project, instance_name, database_name).Do()
return err
}, 5 /* minutes */)
if err != nil {
return fmt.Errorf("Error, failed to delete"+