Skip to content

Commit a162f0d

Browse files
authored
chore: enable explicit default timeout on all resources (#696)
1 parent 7f5223a commit a162f0d

28 files changed

+94
-15
lines changed

scaleway/helpers_account.go

+6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
package scaleway
22

33
import (
4+
"time"
5+
46
account "github.com/scaleway/scaleway-sdk-go/api/account/v2alpha1"
57
)
68

9+
const (
10+
defaultAccountSSHKeyTimeout = 1 * time.Minute
11+
)
12+
713
// accountAPI returns a new account API.
814
func accountAPI(m interface{}) *account.API {
915
meta := m.(*Meta)

scaleway/helpers_baremetal.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ import (
1111
const (
1212
baremetalServerWaitForTimeout = 60 * time.Minute
1313
baremetalServerRetryFuncTimeout = baremetalServerWaitForTimeout + time.Minute // some RetryFunc are calling a WaitFor
14+
defaultBaremetalServerTimeout = baremetalServerRetryFuncTimeout + time.Minute
1415
)
1516

16-
var baremetalServerResourceTimeout = baremetalServerRetryFuncTimeout + time.Minute
17-
1817
// instanceAPIWithZone returns a new baremetal API and the zone for a Create request
1918
func baremetalAPIWithZone(d *schema.ResourceData, m interface{}) (*baremetal.API, scw.Zone, error) {
2019
meta := m.(*Meta)

scaleway/helpers_instance.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ const (
1717
InstanceServerStateStarted = "started"
1818
InstanceServerStateStandby = "standby"
1919

20-
InstanceServerWaitForTimeout = 10 * time.Minute
21-
InstanceVolumeDeleteTimeout = 10 * time.Minute
20+
defaultInstanceServerWaitTimeout = 10 * time.Minute
21+
defaultInstanceVolumeDeleteTimeout = 10 * time.Minute
22+
defaultInstanceSecurityGroupTimeout = 1 * time.Minute
23+
defaultInstanceSecurityGroupRuleTimeout = 1 * time.Minute
24+
defaultInstancePlacementGroupTimeout = 1 * time.Minute
25+
defaultInstanceIPTimeout = 1 * time.Minute
2226
)
2327

2428
// instanceAPIWithZone returns a new instance API and the zone for a Create request
@@ -147,7 +151,7 @@ func reachState(ctx context.Context, instanceAPI *instance.API, zone scw.Zone, s
147151
ServerID: serverID,
148152
Action: a,
149153
Zone: zone,
150-
Timeout: scw.TimeDurationPtr(InstanceServerWaitForTimeout),
154+
Timeout: scw.TimeDurationPtr(defaultInstanceServerWaitTimeout),
151155
})
152156
if err != nil {
153157
return err

scaleway/helpers_k8s.go

+2
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ type KubeconfigStruct struct {
3737
}
3838

3939
const (
40+
defaultK8SClusterTimeout = 10 * time.Minute
41+
defaultK8SPoolTimeout = 10 * time.Minute
4042
K8SClusterWaitForPoolRequiredTimeout = 10 * time.Minute
4143
K8SClusterWaitForDeletedTimeout = 10 * time.Minute
4244
K8SPoolWaitForReadyTimeout = 10 * time.Minute

scaleway/helpers_lb.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import (
1010
)
1111

1212
const (
13-
LbWaitForTimeout = 10 * time.Minute
13+
LbWaitForTimeout = 10 * time.Minute
14+
defaultLbLbTimeout = 10 * time.Minute
1415
)
1516

1617
// lbAPI returns a new lb API

scaleway/helpers_object.go

+5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"os"
77
"strings"
8+
"time"
89

910
"github.com/aws/aws-sdk-go/aws"
1011
"github.com/aws/aws-sdk-go/aws/awserr"
@@ -15,6 +16,10 @@ import (
1516
"github.com/scaleway/scaleway-sdk-go/scw"
1617
)
1718

19+
const (
20+
defaultObjectBucketTimeout = 10 * time.Minute
21+
)
22+
1823
func newS3Client(region, accessKey, secretKey string) (*s3.S3, error) {
1924
config := &aws.Config{}
2025
config.WithRegion(region)

scaleway/helpers_rdb.go

+6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package scaleway
22

33
import (
4+
"time"
5+
46
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
57
"github.com/scaleway/scaleway-sdk-go/api/rdb/v1"
68
"github.com/scaleway/scaleway-sdk-go/scw"
79
)
810

11+
const (
12+
defaultRdbInstanceTimeout = 15 * time.Minute
13+
)
14+
915
// rdbAPIWithRegion returns a new lb API and the region for a Create request
1016
func rdbAPIWithRegion(d *schema.ResourceData, m interface{}) (*rdb.API, scw.Region, error) {
1117
meta := m.(*Meta)

scaleway/helpers_registry.go

+6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package scaleway
22

33
import (
4+
"time"
5+
46
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
57
"github.com/scaleway/scaleway-sdk-go/api/registry/v1"
68
"github.com/scaleway/scaleway-sdk-go/scw"
79
)
810

11+
const (
12+
defaultRegistryNamespaceTimeout = 5 * time.Minute
13+
)
14+
915
// registryAPIWithRegion returns a new container registry API and the region.
1016
func registryAPIWithRegion(d *schema.ResourceData, m interface{}) (*registry.API, scw.Region, error) {
1117
meta := m.(*Meta)

scaleway/resource_account_ssh_key.go

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ func resourceScalewayAccountSSKKey() *schema.Resource {
1919
Importer: &schema.ResourceImporter{
2020
StateContext: schema.ImportStatePassthroughContext,
2121
},
22+
Timeouts: &schema.ResourceTimeout{
23+
Default: schema.DefaultTimeout(defaultAccountSSHKeyTimeout),
24+
},
2225
Schema: map[string]*schema.Schema{
2326
"name": {
2427
Type: schema.TypeString,

scaleway/resource_baremetal_server.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ func resourceScalewayBaremetalServer() *schema.Resource {
2222
},
2323
SchemaVersion: 0,
2424
Timeouts: &schema.ResourceTimeout{
25-
Create: &baremetalServerResourceTimeout,
26-
Delete: &baremetalServerResourceTimeout,
25+
Default: schema.DefaultTimeout(defaultBaremetalServerTimeout),
2726
},
2827
Schema: map[string]*schema.Schema{
2928
"name": {

scaleway/resource_instance_ip.go

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ func resourceScalewayInstanceIP() *schema.Resource {
1717
Importer: &schema.ResourceImporter{
1818
StateContext: schema.ImportStatePassthroughContext,
1919
},
20+
Timeouts: &schema.ResourceTimeout{
21+
Default: schema.DefaultTimeout(defaultInstanceIPTimeout),
22+
},
2023
SchemaVersion: 0,
2124
Schema: map[string]*schema.Schema{
2225
"address": {

scaleway/resource_instance_ip_reverse_dns.go

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ func resourceScalewayInstanceIPReverseDNS() *schema.Resource {
1818
Importer: &schema.ResourceImporter{
1919
StateContext: schema.ImportStatePassthroughContext,
2020
},
21+
Timeouts: &schema.ResourceTimeout{
22+
Default: schema.DefaultTimeout(defaultInstanceIPTimeout),
23+
},
2124
SchemaVersion: 0,
2225
Schema: map[string]*schema.Schema{
2326
"ip_id": {

scaleway/resource_instance_placement_group.go

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ func resourceScalewayInstancePlacementGroup() *schema.Resource {
1919
Importer: &schema.ResourceImporter{
2020
StateContext: schema.ImportStatePassthroughContext,
2121
},
22+
Timeouts: &schema.ResourceTimeout{
23+
Default: schema.DefaultTimeout(defaultInstancePlacementGroupTimeout),
24+
},
2225
SchemaVersion: 0,
2326
Schema: map[string]*schema.Schema{
2427
"name": {

scaleway/resource_instance_security_group.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ func resourceScalewayInstanceSecurityGroup() *schema.Resource {
2121
Importer: &schema.ResourceImporter{
2222
StateContext: schema.ImportStatePassthroughContext,
2323
},
24-
24+
Timeouts: &schema.ResourceTimeout{
25+
Default: schema.DefaultTimeout(defaultInstanceSecurityGroupTimeout),
26+
},
2527
Schema: map[string]*schema.Schema{
2628
"name": {
2729
Type: schema.TypeString,

scaleway/resource_instance_security_group_rules.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ func resourceScalewayInstanceSecurityGroupRules() *schema.Resource {
1616
Importer: &schema.ResourceImporter{
1717
StateContext: schema.ImportStatePassthroughContext,
1818
},
19-
19+
Timeouts: &schema.ResourceTimeout{
20+
Default: schema.DefaultTimeout(defaultInstanceSecurityGroupRuleTimeout),
21+
},
2022
Schema: map[string]*schema.Schema{
2123
"security_group_id": {
2224
Type: schema.TypeString,

scaleway/resource_instance_server.go

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ func resourceScalewayInstanceServer() *schema.Resource {
2525
Importer: &schema.ResourceImporter{
2626
StateContext: schema.ImportStatePassthroughContext,
2727
},
28+
Timeouts: &schema.ResourceTimeout{
29+
Default: schema.DefaultTimeout(defaultInstanceServerWaitTimeout),
30+
},
2831
SchemaVersion: 0,
2932
Schema: map[string]*schema.Schema{
3033
"name": {

scaleway/resource_instance_volume.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@ func resourceScalewayInstanceVolume() *schema.Resource {
2222
StateContext: schema.ImportStatePassthroughContext,
2323
},
2424
Timeouts: &schema.ResourceTimeout{
25-
Delete: scw.TimeDurationPtr(InstanceVolumeDeleteTimeout),
25+
Default: schema.DefaultTimeout(defaultInstanceVolumeDeleteTimeout),
2626
},
27-
2827
Schema: map[string]*schema.Schema{
2928
"name": {
3029
Type: schema.TypeString,

scaleway/resource_k8s_cluster.go

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ func resourceScalewayK8SCluster() *schema.Resource {
2222
Importer: &schema.ResourceImporter{
2323
StateContext: schema.ImportStatePassthroughContext,
2424
},
25+
Timeouts: &schema.ResourceTimeout{
26+
Default: schema.DefaultTimeout(defaultK8SClusterTimeout),
27+
},
2528
SchemaVersion: 0,
2629
Schema: map[string]*schema.Schema{
2730
"name": {

scaleway/resource_k8s_pool.go

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ func resourceScalewayK8SPool() *schema.Resource {
2020
Importer: &schema.ResourceImporter{
2121
StateContext: schema.ImportStatePassthroughContext,
2222
},
23+
Timeouts: &schema.ResourceTimeout{
24+
Default: schema.DefaultTimeout(defaultK8SPoolTimeout),
25+
},
2326
SchemaVersion: 0,
2427
Schema: map[string]*schema.Schema{
2528
"cluster_id": {

scaleway/resource_lb.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ func resourceScalewayLb() *schema.Resource {
1919
Importer: &schema.ResourceImporter{
2020
StateContext: schema.ImportStatePassthroughContext,
2121
},
22+
Timeouts: &schema.ResourceTimeout{
23+
Default: schema.DefaultTimeout(defaultLbLbTimeout),
24+
},
2225
SchemaVersion: 0,
2326
Schema: map[string]*schema.Schema{
2427
"name": {
@@ -90,7 +93,7 @@ func resourceScalewayLbCreate(ctx context.Context, d *schema.ResourceData, m int
9093
_, err = lbAPI.WaitForLb(&lb.WaitForLBRequest{
9194
Region: region,
9295
LBID: res.ID,
93-
Timeout: scw.TimeDurationPtr(InstanceServerWaitForTimeout),
96+
Timeout: scw.TimeDurationPtr(defaultInstanceServerWaitTimeout),
9497
}, scw.WithContext(ctx))
9598
if err != nil {
9699
return diag.FromErr(err)

scaleway/resource_lb_backend.go

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ func resourceScalewayLbBackend() *schema.Resource {
1919
Importer: &schema.ResourceImporter{
2020
StateContext: schema.ImportStatePassthroughContext,
2121
},
22+
Timeouts: &schema.ResourceTimeout{
23+
Default: schema.DefaultTimeout(defaultLbLbTimeout),
24+
},
2225
SchemaVersion: 0,
2326
Schema: map[string]*schema.Schema{
2427
"lb_id": {

scaleway/resource_lb_certificate.go

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ func resourceScalewayLbCertificate() *schema.Resource {
1717
UpdateContext: resourceScalewayLbCertificateUpdate,
1818
DeleteContext: resourceScalewayLbCertificateDelete,
1919
SchemaVersion: 0,
20+
Timeouts: &schema.ResourceTimeout{
21+
Default: schema.DefaultTimeout(defaultLbLbTimeout),
22+
},
2023
Schema: map[string]*schema.Schema{
2124
"lb_id": {
2225
Type: schema.TypeString,

scaleway/resource_lb_frontend.go

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ func resourceScalewayLbFrontend() *schema.Resource {
2222
Importer: &schema.ResourceImporter{
2323
StateContext: schema.ImportStatePassthroughContext,
2424
},
25+
Timeouts: &schema.ResourceTimeout{
26+
Default: schema.DefaultTimeout(defaultLbLbTimeout),
27+
},
2528
SchemaVersion: 0,
2629
Schema: map[string]*schema.Schema{
2730
"lb_id": {

scaleway/resource_lb_ip.go

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ func resourceScalewayLbIP() *schema.Resource {
1818
Importer: &schema.ResourceImporter{
1919
StateContext: schema.ImportStatePassthroughContext,
2020
},
21+
Timeouts: &schema.ResourceTimeout{
22+
Default: schema.DefaultTimeout(defaultLbLbTimeout),
23+
},
2124
SchemaVersion: 0,
2225
Schema: map[string]*schema.Schema{
2326
"reverse": {

scaleway/resource_object_bucket.go

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ func resourceScalewayObjectBucket() *schema.Resource {
1818
ReadContext: resourceScalewayObjectBucketRead,
1919
UpdateContext: resourceScalewayObjectBucketUpdate,
2020
DeleteContext: resourceScalewayObjectBucketDelete,
21+
Timeouts: &schema.ResourceTimeout{
22+
Default: schema.DefaultTimeout(defaultObjectBucketTimeout),
23+
},
2124
Importer: &schema.ResourceImporter{
2225
StateContext: schema.ImportStatePassthroughContext,
2326
},

scaleway/resource_rdb_instance.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ func resourceScalewayRdbInstance() *schema.Resource {
1717
ReadContext: resourceScalewayRdbInstanceRead,
1818
UpdateContext: resourceScalewayRdbInstanceUpdate,
1919
DeleteContext: resourceScalewayRdbInstanceDelete,
20+
Timeouts: &schema.ResourceTimeout{
21+
Default: schema.DefaultTimeout(defaultRdbInstanceTimeout),
22+
},
2023
Importer: &schema.ResourceImporter{
2124
StateContext: schema.ImportStatePassthroughContext,
2225
},
@@ -150,7 +153,7 @@ func resourceScalewayRdbInstanceCreate(ctx context.Context, d *schema.ResourceDa
150153
_, err = rdbAPI.WaitForInstance(&rdb.WaitForInstanceRequest{
151154
Region: region,
152155
InstanceID: res.ID,
153-
Timeout: scw.TimeDurationPtr(InstanceServerWaitForTimeout),
156+
Timeout: scw.TimeDurationPtr(defaultInstanceServerWaitTimeout),
154157
}, scw.WithContext(ctx))
155158
if err != nil {
156159
return diag.FromErr(err)
@@ -267,7 +270,7 @@ func resourceScalewayRdbInstanceUpdate(ctx context.Context, d *schema.ResourceDa
267270
_, err = rdbAPI.WaitForInstance(&rdb.WaitForInstanceRequest{
268271
Region: region,
269272
InstanceID: ID,
270-
Timeout: scw.TimeDurationPtr(InstanceServerWaitForTimeout * 3), // upgrade takes some time
273+
Timeout: scw.TimeDurationPtr(defaultInstanceServerWaitTimeout * 3), // upgrade takes some time
271274
}, scw.WithContext(ctx))
272275
if err != nil {
273276
return diag.FromErr(err)

scaleway/resource_rdb_user.go

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ func resourceScalewayRdbUser() *schema.Resource {
2020
Importer: &schema.ResourceImporter{
2121
StateContext: schema.ImportStatePassthroughContext,
2222
},
23+
Timeouts: &schema.ResourceTimeout{
24+
Default: schema.DefaultTimeout(defaultRdbInstanceTimeout),
25+
},
2326
SchemaVersion: 0,
2427
Schema: map[string]*schema.Schema{
2528
"instance_id": {

scaleway/resource_registry_namespace.go

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ func resourceScalewayRegistryNamespace() *schema.Resource {
1818
Importer: &schema.ResourceImporter{
1919
StateContext: schema.ImportStatePassthroughContext,
2020
},
21+
Timeouts: &schema.ResourceTimeout{
22+
Default: schema.DefaultTimeout(defaultRegistryNamespaceTimeout),
23+
},
2124
SchemaVersion: 0,
2225
Schema: map[string]*schema.Schema{
2326
"name": {

0 commit comments

Comments
 (0)