@@ -1558,20 +1558,20 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1558
1558
}
1559
1559
1560
1560
// prepaid need delete again
1561
- // if instanceChargeType == CVM_CHARGE_TYPE_PREPAID {
1562
- // err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
1563
- // errRet := cvmService.DeleteInstance(ctx, instanceId)
1564
- // if errRet != nil {
1565
- // return tccommon.RetryError(errRet)
1566
- // }
1567
- //
1568
- // return nil
1569
- // })
1570
- //
1571
- // if err != nil {
1572
- // return err
1573
- // }
1574
- // }
1561
+ if instanceChargeType == CVM_CHARGE_TYPE_PREPAID {
1562
+ err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
1563
+ errRet := cvmService .DeleteInstance (ctx , instanceId )
1564
+ if errRet != nil {
1565
+ return tccommon .RetryError (errRet )
1566
+ }
1567
+
1568
+ return nil
1569
+ })
1570
+
1571
+ if err != nil {
1572
+ return err
1573
+ }
1574
+ }
1575
1575
1576
1576
//check recycling
1577
1577
notExist := false
@@ -1610,101 +1610,6 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1610
1610
return nil
1611
1611
}
1612
1612
1613
- if instanceChargeType == CVM_CHARGE_TYPE_PREPAID {
1614
- if v , ok := d .GetOk ("data_disks" ); ok {
1615
- dataDisks := v .([]interface {})
1616
- for _ , d := range dataDisks {
1617
- value := d .(map [string ]interface {})
1618
- diskId := value ["data_disk_id" ].(string )
1619
- deleteWithInstance := value ["delete_with_instance" ].(bool )
1620
- if deleteWithInstance {
1621
- cbsService := svccbs .NewCbsService (meta .(tccommon.ProviderMeta ).GetAPIV3Conn ())
1622
- err := resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
1623
- diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
1624
- if e != nil {
1625
- return tccommon .RetryError (e , tccommon .InternalError )
1626
- }
1627
-
1628
- if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_ATTACHED {
1629
- return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
1630
- }
1631
-
1632
- return nil
1633
- })
1634
-
1635
- if err != nil {
1636
- log .Printf ("[CRITAL]%s delete cbs failed, reason:%s\n " , logId , err .Error ())
1637
- return err
1638
- }
1639
-
1640
- err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
1641
- e := cbsService .DetachDisk (ctx , diskId , instanceId )
1642
- if e != nil {
1643
- return tccommon .RetryError (e , tccommon .InternalError )
1644
- }
1645
-
1646
- return nil
1647
- })
1648
-
1649
- if err != nil {
1650
- log .Printf ("[CRITAL]%s detach cbs failed, reason:%s\n " , logId , err .Error ())
1651
- return err
1652
- }
1653
-
1654
- err = resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
1655
- diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
1656
- if e != nil {
1657
- return tccommon .RetryError (e , tccommon .InternalError )
1658
- }
1659
-
1660
- if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_UNATTACHED {
1661
- return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
1662
- }
1663
-
1664
- return nil
1665
- })
1666
-
1667
- if err != nil {
1668
- log .Printf ("[CRITAL]%s read cbs status failed, reason:%s\n " , logId , err .Error ())
1669
- return err
1670
- }
1671
-
1672
- err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
1673
- e := cbsService .DeleteDiskById (ctx , diskId )
1674
- if e != nil {
1675
- return tccommon .RetryError (e , tccommon .InternalError )
1676
- }
1677
-
1678
- return nil
1679
- })
1680
-
1681
- if err != nil {
1682
- log .Printf ("[CRITAL]%s delete cbs failed, reason:%s\n " , logId , err .Error ())
1683
- return err
1684
- }
1685
-
1686
- err = resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
1687
- diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
1688
- if e != nil {
1689
- return tccommon .RetryError (e , tccommon .InternalError )
1690
- }
1691
-
1692
- if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_TORECYCLE {
1693
- return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
1694
- }
1695
-
1696
- return nil
1697
- })
1698
-
1699
- if err != nil {
1700
- log .Printf ("[CRITAL]%s read cbs status failed, reason:%s\n " , logId , err .Error ())
1701
- return err
1702
- }
1703
- }
1704
- }
1705
- }
1706
- }
1707
-
1708
1613
if ! forceDelete {
1709
1614
return nil
1710
1615
}
@@ -1766,7 +1671,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1766
1671
return tccommon .RetryError (e , tccommon .InternalError )
1767
1672
}
1768
1673
1769
- if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_TORECYCLE {
1674
+ if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_UNATTACHED {
1770
1675
return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
1771
1676
}
1772
1677
@@ -1792,6 +1697,37 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
1792
1697
return err
1793
1698
}
1794
1699
1700
+ err = resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
1701
+ diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
1702
+ if e != nil {
1703
+ return tccommon .RetryError (e , tccommon .InternalError )
1704
+ }
1705
+
1706
+ if * diskInfo .DiskState == svccbs .CBS_STORAGE_STATUS_TORECYCLE {
1707
+ return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
1708
+ }
1709
+
1710
+ return nil
1711
+ })
1712
+
1713
+ if err != nil {
1714
+ log .Printf ("[CRITAL]%s read cbs status failed, reason:%s\n " , logId , err .Error ())
1715
+ return err
1716
+ }
1717
+
1718
+ err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
1719
+ e := cbsService .DeleteDiskById (ctx , diskId )
1720
+ if e != nil {
1721
+ return tccommon .RetryError (e , tccommon .InternalError )
1722
+ }
1723
+
1724
+ return nil
1725
+ })
1726
+
1727
+ if err != nil {
1728
+ log .Printf ("[CRITAL]%s delete cbs failed, reason:%s\n " , logId , err .Error ())
1729
+ return err
1730
+ }
1795
1731
err = resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
1796
1732
diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
1797
1733
if e != nil {
0 commit comments