Skip to content

Commit 0df19be

Browse files
authored
fix(cdb): [116078583]If the id is empty, try again with the same clienttoken (#2684)
* fix(cdb): [116078583]If the id is empty, try again with the same clienttoken * fix:modify timeout * fix: modify id * feat: add chengelog * fix: modify delete'
1 parent edf9a5e commit 0df19be

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

.changelog/2684.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/tencentcloud_mysql_instance: If the id is empty, retry with the same clienttoken for 10 minutes
3+
```

tencentcloud/services/cdb/resource_tc_mysql_instance.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -568,10 +568,8 @@ func mysqlCreateInstancePayByMonth(ctx context.Context, d *schema.ResourceData,
568568
}
569569

570570
var response *cdb.CreateDBInstanceResponse
571-
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
571+
err := resource.Retry(2*tccommon.WriteRetryTimeout, func() *resource.RetryError {
572572
// shadowed response will not pass to outside
573-
clientToken := helper.BuildToken()
574-
request.ClientToken = &clientToken
575573
r, inErr := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMysqlClient().CreateDBInstance(request)
576574
if inErr != nil {
577575
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
@@ -581,7 +579,7 @@ func mysqlCreateInstancePayByMonth(ctx context.Context, d *schema.ResourceData,
581579
return tccommon.RetryError(inErr)
582580
}
583581

584-
if r.Response.InstanceIds == nil && clientToken != "" {
582+
if len(r.Response.InstanceIds) < 1 && clientToken != "" {
585583
return resource.RetryableError(fmt.Errorf("%s returns nil instanceIds but client token provided, retrying", request.GetAction()))
586584
}
587585

@@ -621,15 +619,13 @@ func mysqlCreateInstancePayByUse(ctx context.Context, d *schema.ResourceData, me
621619
}
622620

623621
var response *cdb.CreateDBInstanceHourResponse
624-
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
622+
err := resource.Retry(2*tccommon.WriteRetryTimeout, func() *resource.RetryError {
625623
// shadowed response will not pass to outside
626-
clientToken := helper.BuildToken()
627-
request.ClientToken = &clientToken
628624
r, inErr := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMysqlClient().CreateDBInstanceHour(request)
629625
if inErr != nil {
630626
return tccommon.RetryError(inErr)
631627
}
632-
if r.Response.InstanceIds == nil && clientToken != "" {
628+
if len(r.Response.InstanceIds) < 1 && clientToken != "" {
633629
return resource.RetryableError(fmt.Errorf("%s returns nil instanceIds but client token provided, retrying", request.GetAction()))
634630
}
635631
response = r
@@ -1608,7 +1604,7 @@ func resourceTencentCloudMysqlInstanceDelete(d *schema.ResourceData, meta interf
16081604
return resource.NonRetryableError(err)
16091605
}
16101606
}
1611-
if mysqlInfo == nil {
1607+
if mysqlInfo == nil || *mysqlInfo.Status == 6 {
16121608
return nil
16131609
} else {
16141610
if mysqlInfo.RoGroups != nil && len(mysqlInfo.RoGroups) > 0 {

0 commit comments

Comments
 (0)