@@ -1243,24 +1243,6 @@ func ResourceInstanceServerDelete(ctx context.Context, d *schema.ResourceData, m
12431243 }
12441244 }
12451245
1246- // reach running state (mandatory for termination)
1247- err = reachState (ctx , api , zone , id , instanceSDK .ServerStateRunning )
1248- if err != nil && ! httperrors .Is404 (err ) {
1249- return diag .FromErr (err )
1250- }
1251-
1252- timeout := d .Timeout (schema .TimeoutDelete )
1253-
1254- err = api .ServerActionAndWait (& instanceSDK.ServerActionAndWaitRequest {
1255- Zone : zone ,
1256- ServerID : id ,
1257- Action : instanceSDK .ServerActionTerminate ,
1258- Timeout : & timeout ,
1259- }, scw .WithContext (ctx ))
1260- if err != nil && ! httperrors .Is404 (err ) {
1261- return diag .FromErr (err )
1262- }
1263-
12641246 // Delete private-nic if managed by instance_server resource
12651247 if raw , ok := d .GetOk ("private_network" ); ok {
12661248 ph , err := newPrivateNICHandler (api .API , id , zone )
@@ -1279,6 +1261,24 @@ func ResourceInstanceServerDelete(ctx context.Context, d *schema.ResourceData, m
12791261 }
12801262 }
12811263
1264+ // reach running state (mandatory for termination)
1265+ err = reachState (ctx , api , zone , id , instanceSDK .ServerStateRunning )
1266+ if err != nil && ! httperrors .Is404 (err ) {
1267+ return diag .FromErr (err )
1268+ }
1269+
1270+ timeout := d .Timeout (schema .TimeoutDelete )
1271+
1272+ err = api .ServerActionAndWait (& instanceSDK.ServerActionAndWaitRequest {
1273+ Zone : zone ,
1274+ ServerID : id ,
1275+ Action : instanceSDK .ServerActionTerminate ,
1276+ Timeout : & timeout ,
1277+ }, scw .WithContext (ctx ))
1278+ if err != nil && ! httperrors .Is404 (err ) {
1279+ return diag .FromErr (err )
1280+ }
1281+
12821282 // Related to https://github.com/hashicorp/terraform-plugin-sdk/issues/142
12831283 _ , rootVolumeAttributeSet := d .GetOk ("root_volume" )
12841284 if d .Get ("root_volume.0.delete_on_termination" ).(bool ) || ! rootVolumeAttributeSet {
0 commit comments