Skip to content

Commit 0c320fa

Browse files
committed
add waiter terminal state vpc_enable
1 parent 14c2388 commit 0c320fa

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

internal/services/applesilicon/server.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
266266
return diag.FromErr(err)
267267
}
268268

269+
_, err = waitForAppleSiliconPrivateNetworkServer(ctx, appleSilisonPrivateNetworkAPI, zone, ID, d.Timeout(schema.TimeoutCreate))
270+
if err != nil {
271+
return diag.FromErr(err)
272+
}
273+
269274
if d.HasChange("private_network") && *req.EnableVpc {
270275
privateNetwork := d.Get("private_network")
271276
req := &applesilicon.PrivateNetworkAPISetServerPrivateNetworksRequest{

internal/services/applesilicon/server_test.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,24 +143,34 @@ func TestAccServer_EnableVPC(t *testing.T) {
143143
},
144144
{
145145
Config: `
146-
resource scaleway_apple_silicon_server main {
147-
name = "TestAccServerEnableVPC"
148-
type = "M2-M"
149-
enable_vpc = false
150-
}
151-
`,
146+
resource "scaleway_vpc" "vpc02" {
147+
name = "TestAccServerEnableVPCTwo"
148+
}
149+
150+
resource "scaleway_vpc_private_network" "pn02" {
151+
name = "TestAccServerEnableVPCNumbertwo"
152+
vpc_id = scaleway_vpc.vpc02.id
153+
}
154+
155+
resource scaleway_apple_silicon_server main {
156+
name = "TestAccServerEnableVPC"
157+
type = "M2-M"
158+
enable_vpc = true
159+
private_network {
160+
id = scaleway_vpc_private_network.pn02.id
161+
}
162+
}
163+
`,
152164
Check: resource.ComposeTestCheckFunc(
153165
isServerPresent(tt, "scaleway_apple_silicon_server.main"),
154166
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "name", "TestAccServerEnableVPC"),
155167
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "type", "M2-M"),
156-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "private_network"),
157168
// Computed
158169
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "ip"),
159170
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "vnc_url"),
160171
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "created_at"),
161172
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "deletable_at"),
162173
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "vpc_status", "vpc_updating"),
163-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "vpc_id"),
164174
),
165175
},
166176
},

internal/services/applesilicon/waiters.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,17 @@ func waitForAppleSiliconPrivateNetworkServer(ctx context.Context, api *applesili
4545

4646
return privateNetwork, err
4747
}
48+
49+
func waitForTerminalVPCState(ctx context.Context, api *applesilicon.API, zone scw.Zone, serverID string, timeout time.Duration) {
50+
retryInterval := defaultAppleSiliconServerRetryInterval
51+
if transport.DefaultWaitRetryInterval != nil {
52+
retryInterval = *transport.DefaultWaitRetryInterval
53+
}
54+
55+
_ = api.WaitForServerVPCOptionTerminalState(&applesilicon.WaitForServerRequest{
56+
ServerID: serverID,
57+
Zone: zone,
58+
Timeout: scw.TimeDurationPtr(timeout),
59+
RetryInterval: &retryInterval,
60+
}, scw.WithContext(ctx))
61+
}

0 commit comments

Comments
 (0)