Skip to content

Commit 4cd230b

Browse files
committed
manage updating vpc enable update
1 parent dcaa96e commit 4cd230b

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
@@ -43,6 +43,61 @@ func TestAccServer_Basic(t *testing.T) {
4343
})
4444
}
4545

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

0 commit comments

Comments
 (0)