@@ -1558,20 +1558,20 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
15581558 }
15591559
15601560 // 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+ }
15751575
15761576 //check recycling
15771577 notExist := false
@@ -1610,101 +1610,6 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
16101610 return nil
16111611 }
16121612
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-
17081613 if ! forceDelete {
17091614 return nil
17101615 }
@@ -1766,7 +1671,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
17661671 return tccommon .RetryError (e , tccommon .InternalError )
17671672 }
17681673
1769- if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_TORECYCLE {
1674+ if * diskInfo .DiskState != svccbs .CBS_STORAGE_STATUS_UNATTACHED {
17701675 return resource .RetryableError (fmt .Errorf ("cbs storage status is %s" , * diskInfo .DiskState ))
17711676 }
17721677
@@ -1792,6 +1697,37 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
17921697 return err
17931698 }
17941699
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+ }
17951731 err = resource .Retry (tccommon .ReadRetryTimeout * 2 , func () * resource.RetryError {
17961732 diskInfo , e := cbsService .DescribeDiskById (ctx , diskId )
17971733 if e != nil {
0 commit comments