@@ -30,11 +30,13 @@ func resourceScalewayInstancePrivateNIC() *schema.Resource {
3030 Type : schema .TypeString ,
3131 Description : "The server ID" ,
3232 Required : true ,
33+ ForceNew : true ,
3334 },
3435 "private_network_id" : {
3536 Type : schema .TypeString ,
3637 Description : "The private network ID" ,
3738 Required : true ,
39+ ForceNew : true ,
3840 },
3941 "mac_address" : {
4042 Type : schema .TypeString ,
@@ -139,57 +141,7 @@ func resourceScalewayInstancePrivateNICUpdate(ctx context.Context, d *schema.Res
139141 return diag .FromErr (err )
140142 }
141143
142- if d .HasChanges ("private_network_id" , "server_id" ) {
143- _ , err = waitForPrivateNIC (ctx , instanceAPI , zone , serverID , privateNICID , d .Timeout (schema .TimeoutUpdate ))
144- if err != nil {
145- return diag .FromErr (err )
146- }
147-
148- // delete previous private NIC
149- err = instanceAPI .DeletePrivateNIC (& instance.DeletePrivateNICRequest {
150- ServerID : serverID ,
151- PrivateNicID : privateNICID ,
152- Zone : zone ,
153- }, scw .WithContext (ctx ))
154-
155- if err != nil && ! is404Error (err ) {
156- return diag .FromErr (err )
157- }
158-
159- _ , err = waitForPrivateNIC (ctx , instanceAPI , zone , serverID , privateNICID , d .Timeout (schema .TimeoutUpdate ))
160- if err != nil && ! is404Error (err ) {
161- return diag .FromErr (err )
162- }
163-
164- // create the new one
165- createPrivateNICRequest := & instance.CreatePrivateNICRequest {
166- Zone : zone ,
167- ServerID : expandZonedID (d .Get ("server_id" ).(string )).ID ,
168- PrivateNetworkID : expandZonedID (d .Get ("private_network_id" ).(string )).ID ,
169- Tags : expandStrings (d .Get ("tags" )),
170- }
171-
172- privateNIC , err := instanceAPI .CreatePrivateNIC (
173- createPrivateNICRequest ,
174- scw .WithContext (ctx ),
175- )
176- if err != nil {
177- return diag .FromErr (err )
178- }
179-
180- _ , err = waitForPrivateNIC (ctx , instanceAPI , zone , serverID , privateNICID , d .Timeout (schema .TimeoutUpdate ))
181- if err != nil {
182- return diag .FromErr (err )
183- }
184-
185- d .SetId (
186- newZonedNestedIDString (
187- zone ,
188- privateNIC .PrivateNic .ServerID ,
189- privateNIC .PrivateNic .ID ,
190- ),
191- )
192- } else if d .HasChange ("tags" ) {
144+ if d .HasChange ("tags" ) {
193145 _ , err := instanceAPI .UpdatePrivateNIC (
194146 & instance.UpdatePrivateNICRequest {
195147 Zone : zone ,
@@ -219,6 +171,9 @@ func resourceScalewayInstancePrivateNICDelete(ctx context.Context, d *schema.Res
219171
220172 _ , err = waitForPrivateNIC (ctx , instanceAPI , zone , serverID , privateNICID , d .Timeout (schema .TimeoutDelete ))
221173 if err != nil {
174+ if is404Error (err ) {
175+ return nil
176+ }
222177 return diag .FromErr (err )
223178 }
224179
@@ -228,12 +183,18 @@ func resourceScalewayInstancePrivateNICDelete(ctx context.Context, d *schema.Res
228183 Zone : zone ,
229184 }, scw .WithContext (ctx ))
230185
231- if err != nil && ! is404Error (err ) {
186+ if err != nil {
187+ if is404Error (err ) {
188+ return nil
189+ }
232190 return diag .FromErr (err )
233191 }
234192
235193 _ , err = waitForPrivateNIC (ctx , instanceAPI , zone , serverID , privateNICID , d .Timeout (schema .TimeoutDelete ))
236- if err != nil && ! is404Error (err ) {
194+ if err != nil {
195+ if is404Error (err ) {
196+ return nil
197+ }
237198 return diag .FromErr (err )
238199 }
239200
0 commit comments