Skip to content

Commit 304c8fc

Browse files
authored
fix: tcr - add replica retry duration (#1292)
1 parent bd4a434 commit 304c8fc

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

tencentcloud/resource_tc_tcr_instance.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ func resourceTencentCloudTcrInstanceDelete(d *schema.ResourceData, meta interfac
622622

623623
for i := range replicas {
624624
item := replicas[i]
625-
outErr = resource.Retry(writeRetryTimeout, func() *resource.RetryError {
625+
outErr = resource.Retry(writeRetryTimeout*5, func() *resource.RetryError {
626626
request := tcr.NewDeleteReplicationInstanceRequest()
627627
request.RegistryId = &instanceId
628628
request.ReplicationRegistryId = item.ReplicationRegistryId
@@ -763,13 +763,16 @@ func resourceTencentCloudTcrReplicationSet(ctx context.Context, d *schema.Resour
763763
if synTag, ok := replica["syn_tag"].(bool); ok {
764764
request.SyncTag = &synTag
765765
}
766-
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
766+
err := resource.Retry(writeRetryTimeout*5, func() *resource.RetryError {
767767
_, err := service.CreateReplicationInstance(ctx, request)
768768
if err != nil {
769769
sdkErr, ok := err.(*sdkErrors.TencentCloudSDKError)
770770
if ok {
771771
code := sdkErr.GetCode()
772772
message := sdkErr.GetMessage()
773+
if code == tcr.INTERNALERROR_ERRORCONFLICT {
774+
return resource.RetryableError(err)
775+
}
773776
if code == tcr.INTERNALERROR && strings.Contains(message, "409 InvalidBucketState") {
774777
log.Printf("[WARN] Got COS retryable error %s: %s", code, message)
775778
return resource.RetryableError(sdkErr)
@@ -800,10 +803,18 @@ func resourceTencentCloudTcrReplicationSet(ctx context.Context, d *schema.Resour
800803
request.RegistryId = helper.String(d.Id())
801804
request.ReplicationRegistryId = helper.String(id)
802805
request.ReplicationRegionId = helper.IntUint64(regionId)
803-
err := service.DeleteReplicationInstance(ctx, request)
806+
err := resource.Retry(writeRetryTimeout*5, func() *resource.RetryError {
807+
err := service.DeleteReplicationInstance(ctx, request)
808+
if err != nil {
809+
return retryError(err, tcr.INTERNALERROR_ERRCONFLICT)
810+
}
811+
return nil
812+
})
804813
if err != nil {
805814
errs = *multierror.Append(err)
806815
}
816+
// Buffered for Request Limit
817+
time.Sleep(time.Second * 3)
807818
}
808819
}
809820

tencentcloud/service_tencentcloud_tcr.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -851,7 +851,7 @@ func (me *TCRService) CreateReplicationInstance(ctx context.Context, request *tc
851851

852852
startPolling := false
853853

854-
err = resource.Retry(readRetryTimeout*3, func() *resource.RetryError {
854+
err = resource.Retry(readRetryTimeout*5, func() *resource.RetryError {
855855
req := tcr.NewDescribeReplicationInstancesRequest()
856856
req.RegistryId = request.RegistryId
857857
req.Limit = helper.IntInt64(100)

0 commit comments

Comments
 (0)