@@ -2,19 +2,19 @@ package applesilicon
22
33import (
44 "context"
5- "github.com/scaleway/terraform-provider-scaleway/v2/internal/locality"
6- "github.com/scaleway/terraform-provider-scaleway/v2/internal/meta"
7- "github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
85 "time"
96
107 "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
118 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
129 applesilicon "github.com/scaleway/scaleway-sdk-go/api/applesilicon/v1alpha1"
1310 "github.com/scaleway/scaleway-sdk-go/scw"
1411 "github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
12+ "github.com/scaleway/terraform-provider-scaleway/v2/internal/locality"
1513 "github.com/scaleway/terraform-provider-scaleway/v2/internal/locality/zonal"
14+ "github.com/scaleway/terraform-provider-scaleway/v2/internal/meta"
1615 "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account"
1716 "github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
17+ "github.com/scaleway/terraform-provider-scaleway/v2/internal/verify"
1818)
1919
2020func ResourceServer () * schema.Resource {
@@ -176,11 +176,16 @@ func ResourceAppleSiliconServerCreate(ctx context.Context, d *schema.ResourceDat
176176 ServerID : res .ID ,
177177 PerPrivateNetworkIpamIPIDs : expandPrivateNetworks (pn ),
178178 }
179+
179180 _ , err := privateNetworkAPI .SetServerPrivateNetworks (req , scw .WithContext (ctx ))
180181 if err != nil {
181182 return diag .FromErr (err )
182183 }
184+
183185 _ , err = waitForAppleSiliconPrivateNetworkServer (ctx , privateNetworkAPI , zone , res .ID , d .Timeout (schema .TimeoutCreate ))
186+ if err != nil {
187+ return diag .FromErr (err )
188+ }
184189 }
185190
186191 return ResourceAppleSiliconServerRead (ctx , d , m )
@@ -220,18 +225,20 @@ func ResourceAppleSiliconServerRead(ctx context.Context, d *schema.ResourceData,
220225 _ = d .Set ("zone" , res .Zone .String ())
221226 _ = d .Set ("organization_id" , res .OrganizationID )
222227 _ = d .Set ("project_id" , res .ProjectID )
228+
223229 listPrivateNetworks , err := privateNetworkAPI .ListServerPrivateNetworks (& applesilicon.PrivateNetworkAPIListServerPrivateNetworksRequest {
224230 Zone : res .Zone ,
225231 ServerID : & res .ID ,
226232 })
227233 if err != nil {
228234 return diag .FromErr (err )
229235 }
236+
230237 pnRegion , err := res .Zone .Region ()
231238 if err != nil {
232239 return diag .FromErr (err )
233240 }
234- //check if pn
241+
235242 _ = d .Set ("private_network" , flattenPrivateNetworks (pnRegion , listPrivateNetworks .ServerPrivateNetworks ))
236243
237244 return nil
@@ -243,7 +250,7 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
243250 return diag .FromErr (err )
244251 }
245252
246- appleSilisonPrivateNetworkAPI , zone , err := newPrivateNetworkAPIWithZone (d , m )
253+ appleSilisonPrivateNetworkAPI , zonePN , err := newPrivateNetworkAPIWithZone (d , m )
247254 if err != nil {
248255 return diag .FromErr (err )
249256 }
@@ -275,7 +282,7 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
275282 if d .HasChange ("private_network" ) && d .Get ("enable_vpc" ).(bool ) {
276283 privateNetwork := d .Get ("private_network" )
277284 req := & applesilicon.PrivateNetworkAPISetServerPrivateNetworksRequest {
278- Zone : zone ,
285+ Zone : zonePN ,
279286 ServerID : ID ,
280287 PerPrivateNetworkIpamIPIDs : expandPrivateNetworks (privateNetwork ),
281288 }
@@ -285,7 +292,11 @@ func ResourceAppleSiliconServerUpdate(ctx context.Context, d *schema.ResourceDat
285292 return diag .FromErr (err )
286293 }
287294 }
295+
288296 _ , err = waitForAppleSiliconPrivateNetworkServer (ctx , appleSilisonPrivateNetworkAPI , zone , ID , d .Timeout (schema .TimeoutCreate ))
297+ if err != nil {
298+ return diag .FromErr (err )
299+ }
289300
290301 return ResourceAppleSiliconServerRead (ctx , d , m )
291302}
0 commit comments