5
5
"log"
6
6
"regexp"
7
7
"strings"
8
+ "time"
8
9
9
10
"github.com/hashicorp/terraform/helper/resource"
10
11
"github.com/hashicorp/terraform/helper/schema"
@@ -41,6 +42,12 @@ func resourceSqlDatabaseInstance() *schema.Resource {
41
42
State : schema .ImportStatePassthrough ,
42
43
},
43
44
45
+ Timeouts : & schema.ResourceTimeout {
46
+ Create : schema .DefaultTimeout (10 * time .Minute ),
47
+ Update : schema .DefaultTimeout (10 * time .Minute ),
48
+ Delete : schema .DefaultTimeout (10 * time .Minute ),
49
+ },
50
+
44
51
Schema : map [string ]* schema.Schema {
45
52
"region" : & schema.Schema {
46
53
Type : schema .TypeString ,
@@ -670,7 +677,7 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{})
670
677
671
678
d .SetId (instance .Name )
672
679
673
- err = sqladminOperationWait (config , op , project , "Create Instance" )
680
+ err = sqladminOperationWaitTime (config , op , project , "Create Instance" , int ( d . Timeout ( schema . TimeoutCreate ). Minutes ()) )
674
681
if err != nil {
675
682
d .SetId ("" )
676
683
return err
@@ -697,7 +704,7 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{})
697
704
err = retry (func () error {
698
705
op , err = config .clientSqlAdmin .Users .Delete (project , instance .Name , u .Host , u .Name ).Do ()
699
706
if err == nil {
700
- err = sqladminOperationWait (config , op , project , "Delete default root User" )
707
+ err = sqladminOperationWaitTime (config , op , project , "Delete default root User" , int ( d . Timeout ( schema . TimeoutCreate ). Minutes ()) )
701
708
}
702
709
return err
703
710
})
@@ -1027,7 +1034,7 @@ func resourceSqlDatabaseInstanceUpdate(d *schema.ResourceData, meta interface{})
1027
1034
return fmt .Errorf ("Error, failed to update instance %s: %s" , instance .Name , err )
1028
1035
}
1029
1036
1030
- err = sqladminOperationWait (config , op , project , "Create Instance" )
1037
+ err = sqladminOperationWaitTime (config , op , project , "Update Instance" , int ( d . Timeout ( schema . TimeoutUpdate ). Minutes ()) )
1031
1038
if err != nil {
1032
1039
return err
1033
1040
}
@@ -1049,7 +1056,7 @@ func resourceSqlDatabaseInstanceDelete(d *schema.ResourceData, meta interface{})
1049
1056
return fmt .Errorf ("Error, failed to delete instance %s: %s" , d .Get ("name" ).(string ), err )
1050
1057
}
1051
1058
1052
- err = sqladminOperationWait (config , op , project , "Delete Instance" )
1059
+ err = sqladminOperationWaitTime (config , op , project , "Delete Instance" , int ( d . Timeout ( schema . TimeoutDelete ). Minutes ()) )
1053
1060
if err != nil {
1054
1061
return err
1055
1062
}
0 commit comments