Skip to content

Commit 94cd533

Browse files
committed
manage updating vpc enable update
1 parent 6460e00 commit 94cd533

File tree

4 files changed

+2881
-475
lines changed

4 files changed

+2881
-475
lines changed

internal/services/applesilicon/server.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,13 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
262262
req.EnableVpc = &enableVpc
263263
}
264264

265+
_, err = asAPI.UpdateServer(req, scw.WithContext(ctx))
266+
if err != nil {
267+
return diag.FromErr(err)
268+
}
269+
265270
if d.HasChange("private_network") && *req.EnableVpc {
266271
privateNetwork := d.Get("private_network")
267-
268272
req := &applesilicon.PrivateNetworkAPISetServerPrivateNetworksRequest{
269273
Zone: zone,
270274
ServerID: ID,
@@ -279,11 +283,6 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
279283
_, err = waitForAppleSiliconPrivateNetworkServer(ctx, appleSilisonPrivateNetworkAPI, zone, ID, d.Timeout(schema.TimeoutCreate))
280284
}
281285

282-
_, err = asAPI.UpdateServer(req, scw.WithContext(ctx))
283-
if err != nil {
284-
return diag.FromErr(err)
285-
}
286-
287286
return ResourceAppleSiliconServerRead(ctx, d, m)
288287
}
289288

internal/services/applesilicon/server_test.go

Lines changed: 61 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,61 @@ func TestAccServer_Basic(t *testing.T) {
4444
})
4545
}
4646

47+
func TestAccServer_EnableDisabledVPC(t *testing.T) {
48+
//t.Skip("Skipping AppleSilicon VPC not available")
49+
tt := acctest.NewTestTools(t)
50+
defer tt.Cleanup()
51+
resource.ParallelTest(t, resource.TestCase{
52+
PreCheck: func() { acctest.PreCheck(t) },
53+
ProviderFactories: tt.ProviderFactories,
54+
CheckDestroy: isServerDestroyed(tt),
55+
Steps: []resource.TestStep{
56+
{
57+
Config: `
58+
59+
resource scaleway_apple_silicon_server main {
60+
name = "TestAccServerEnableVPC"
61+
type = "M2-M"
62+
enable_vpc = true
63+
}
64+
`,
65+
Check: resource.ComposeTestCheckFunc(
66+
isServerPresent(tt, "scaleway_apple_silicon_server.main"),
67+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "name", "TestAccServerEnableVPC"),
68+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "type", "M2-M"),
69+
// Computed
70+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "ip"),
71+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "vnc_url"),
72+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "created_at"),
73+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "deletable_at"),
74+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "vpc_status", "vpc_enabled"),
75+
),
76+
},
77+
{
78+
Config: `
79+
80+
resource scaleway_apple_silicon_server main {
81+
name = "TestAccServerEnableVPC"
82+
type = "M2-M"
83+
enable_vpc = false
84+
}
85+
`,
86+
Check: resource.ComposeTestCheckFunc(
87+
isServerPresent(tt, "scaleway_apple_silicon_server.main"),
88+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "name", "TestAccServerEnableVPC"),
89+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "type", "M2-M"),
90+
// Computed
91+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "ip"),
92+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "vnc_url"),
93+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "created_at"),
94+
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "deletable_at"),
95+
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "vpc_status", "vpc_updating"),
96+
),
97+
},
98+
},
99+
})
100+
}
101+
47102
func TestAccServer_EnableVPC(t *testing.T) {
48103
//t.Skip("Skipping AppleSilicon VPC not available")
49104
tt := acctest.NewTestTools(t)
@@ -61,9 +116,6 @@ func TestAccServer_EnableVPC(t *testing.T) {
61116
62117
resource "scaleway_vpc_private_network" "pn01" {
63118
name = "TestAccServerEnableVPC"
64-
ipv4_subnet {
65-
subnet = "172.16.64.0/22"
66-
}
67119
vpc_id = scaleway_vpc.vpc01.id
68120
}
69121
@@ -91,24 +143,22 @@ func TestAccServer_EnableVPC(t *testing.T) {
91143
},
92144
{
93145
Config: `
94-
resource scaleway_apple_silicon_server main {
95-
name = "TestAccServerEnableVPC"
96-
type = "M2-M"
97-
enable_vpc = false
98-
}
99-
`,
146+
resource scaleway_apple_silicon_server main {
147+
name = "TestAccServerEnableVPC"
148+
type = "M2-M"
149+
enable_vpc = false
150+
}
151+
`,
100152
Check: resource.ComposeTestCheckFunc(
101153
isServerPresent(tt, "scaleway_apple_silicon_server.main"),
102154
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "name", "TestAccServerEnableVPC"),
103155
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "type", "M2-M"),
104-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "private_network"),
105156
// Computed
106157
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "ip"),
107158
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "vnc_url"),
108159
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "created_at"),
109160
resource.TestCheckResourceAttrSet("scaleway_apple_silicon_server.main", "deletable_at"),
110161
resource.TestCheckResourceAttr("scaleway_apple_silicon_server.main", "vpc_status", "vpc_updating"),
111-
resource.TestCheckNoResourceAttr("scaleway_apple_silicon_server.main", "vpc_id"),
112162
),
113163
},
114164
},

0 commit comments

Comments
 (0)