Skip to content

Commit 68b3bfe

Browse files
authored
fix(instance_private_nic): set pn_id and server_id to forcenew (#1893)
* fix(instance_private_nic): set pn_id and server_id to forcenew * fix 404 error check
1 parent fa7b17d commit 68b3bfe

File tree

1 file changed

+14
-53
lines changed

1 file changed

+14
-53
lines changed

scaleway/resource_instance_private_nic.go

Lines changed: 14 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)