Skip to content

Commit 209531f

Browse files
authored
chore(apple-silicon): add support for fast retry with cassettes (#1188)
1 parent 487d9d6 commit 209531f

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

scaleway/helpers_apple_silicon.go

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

33
import (
4+
"context"
45
"time"
56

67
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -9,7 +10,8 @@ import (
910
)
1011

1112
const (
12-
defaultAppleSiliconServerTimeout = 2 * time.Minute
13+
defaultAppleSiliconServerTimeout = 2 * time.Minute
14+
defaultAppleSiliconServerRetryInterval = 5 * time.Second
1315
)
1416

1517
const (
@@ -39,3 +41,19 @@ func asAPIWithZoneAndID(m interface{}, id string) (*applesilicon.API, scw.Zone,
3941
}
4042
return asAPI, zone, ID, nil
4143
}
44+
45+
func waitForAppleSiliconServer(ctx context.Context, api *applesilicon.API, zone scw.Zone, ID string, timeout time.Duration) (*applesilicon.Server, error) {
46+
retryInterval := defaultAppleSiliconServerRetryInterval
47+
if DefaultWaitRetryInterval != nil {
48+
retryInterval = *DefaultWaitRetryInterval
49+
}
50+
51+
server, err := api.WaitForServer(&applesilicon.WaitForServerRequest{
52+
ServerID: ID,
53+
Zone: zone,
54+
Timeout: scw.TimeDurationPtr(timeout),
55+
RetryInterval: &retryInterval,
56+
}, scw.WithContext(ctx))
57+
58+
return server, err
59+
}

scaleway/resource_apple_silicon_server.go

+2-6
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,7 @@ func resourceScalewayAppleSiliconServerCreate(ctx context.Context, d *schema.Res
9898

9999
d.SetId(newZonedIDString(zone, res.ID))
100100

101-
_, err = asAPI.WaitForServer(&applesilicon.WaitForServerRequest{
102-
ServerID: res.ID,
103-
Timeout: scw.TimeDurationPtr(defaultAppleSiliconServerTimeout),
104-
RetryInterval: DefaultWaitRetryInterval,
105-
}, scw.WithContext(ctx))
101+
_, err = waitForAppleSiliconServer(ctx, asAPI, zone, res.ID, d.Timeout(schema.TimeoutCreate))
106102
if err != nil {
107103
return diag.FromErr(err)
108104
}
@@ -137,7 +133,7 @@ func resourceScalewayAppleSiliconServerRead(ctx context.Context, d *schema.Resou
137133
_ = d.Set("ip", res.IP.String())
138134
_ = d.Set("vnc_url", res.VncURL)
139135

140-
_ = d.Set("zone", zone.String())
136+
_ = d.Set("zone", res.Zone.String())
141137
_ = d.Set("organization_id", res.OrganizationID)
142138
_ = d.Set("project_id", res.ProjectID)
143139

0 commit comments

Comments
 (0)