Skip to content

Commit c807502

Browse files
committed
add waiter terminal state vpc_enable
1 parent 4509cd2 commit c807502

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
@@ -142,24 +142,34 @@ func TestAccServer_EnableVPC(t *testing.T) {
142142
},
143143
{
144144
Config: `
145-
resource scaleway_apple_silicon_server main {
146-
name = "TestAccServerEnableVPC"
147-
type = "M2-M"
148-
enable_vpc = false
149-
}
150-
`,
145+
resource "scaleway_vpc" "vpc02" {
146+
name = "TestAccServerEnableVPCTwo"
147+
}
148+
149+
resource "scaleway_vpc_private_network" "pn02" {
150+
name = "TestAccServerEnableVPCNumbertwo"
151+
vpc_id = scaleway_vpc.vpc02.id
152+
}
153+
154+
resource scaleway_apple_silicon_server main {
155+
name = "TestAccServerEnableVPC"
156+
type = "M2-M"
157+
enable_vpc = true
158+
private_network {
159+
id = scaleway_vpc_private_network.pn02.id
160+
}
161+
}
162+
`,
151163
Check: resource.ComposeTestCheckFunc(
152164
isServerPresent(tt, "scaleway_apple_silicon_server.main"),
153165
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "name", "TestAccServerEnableVPC"),
154166
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "type", "M2-M"),
155-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "private_network"),
156167
// Computed
157168
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "ip"),
158169
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "vnc_url"),
159170
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "created_at"),
160171
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "deletable_at"),
161172
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "vpc_status", "vpc_updating"),
162-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "vpc_id"),
163173
),
164174
},
165175
},

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)