Add timeouts for SQL database resource (#1318)

This simply adds the specification for operation timeouts, and sets
sane defaults. In testing against specific regions, creation of SQL
databases would fluctuate between 7-14 minutes against us-east1. As
such, a 15m creation threshold is recommended for this. Update and
Delete operations will adhere to 10m timeouts.

This follows a similar format as #1309.
This commit is contained in:
conzetti 2018-04-10 18:17:42 -04:00 committed by Nathan McKinley
parent 0d18599f80
commit 7a84ea845d

View File

@ -3,6 +3,7 @@ package google
import (
"fmt"
"strings"
"time"
"github.com/hashicorp/terraform/helper/schema"
@ -56,6 +57,11 @@ func resourceSqlDatabase() *schema.Resource {
Computed: true,
},
},
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(15 * time.Minute),
Update: schema.DefaultTimeout(10 * time.Minute),
Delete: schema.DefaultTimeout(10 * time.Minute),
},
}
}
@ -89,7 +95,7 @@ func resourceSqlDatabaseCreate(d *schema.ResourceData, meta interface{}) error {
instance_name, err)
}
err = sqladminOperationWait(config, op, project, "Insert Database")
err = sqladminOperationWaitTime(config, op, project, "Insert Database", int(d.Timeout(schema.TimeoutCreate).Minutes()))
if err != nil {
return fmt.Errorf("Error, failure waiting for insertion of %s "+
@ -164,7 +170,7 @@ func resourceSqlDatabaseUpdate(d *schema.ResourceData, meta interface{}) error {
instance_name, err)
}
err = sqladminOperationWait(config, op, project, "Update Database")
err = sqladminOperationWaitTime(config, op, project, "Update Database", int(d.Timeout(schema.TimeoutUpdate).Minutes()))
if err != nil {
return fmt.Errorf("Error, failure waiting for update of %s "+
@ -196,7 +202,7 @@ func resourceSqlDatabaseDelete(d *schema.ResourceData, meta interface{}) error {
instance_name, err)
}
err = sqladminOperationWait(config, op, project, "Delete Database")
err = sqladminOperationWaitTime(config, op, project, "Delete Database", int(d.Timeout(schema.TimeoutDelete).Minutes()))
if err != nil {
return fmt.Errorf("Error, failure waiting for deletion of %s "+