@@ -12,6 +12,7 @@ import (
12
12
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
13
13
"github.com/pkg/errors"
14
14
clb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
15
+ sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
15
16
16
17
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
17
18
)
@@ -344,6 +345,10 @@ func resourceTencentCloudClbListenerRuleCreate(d *schema.ResourceData, meta inte
344
345
} else {
345
346
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
346
347
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
348
+ if response == nil || response .Response == nil || response .Response .RequestId == nil {
349
+ return resource .NonRetryableError (fmt .Errorf ("Create CLB listener rule failed, Response is nil." ))
350
+ }
351
+
347
352
requestId = * response .Response .RequestId
348
353
retryErr := waitForTaskFinish (requestId , meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ())
349
354
if retryErr != nil {
@@ -390,10 +395,20 @@ func resourceTencentCloudClbListenerRuleCreate(d *schema.ResourceData, meta inte
390
395
err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
391
396
response , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ().ModifyDomainAttributes (domainRequest )
392
397
if e != nil {
398
+ if sdkError , ok := e .(* sdkErrors.TencentCloudSDKError ); ok {
399
+ if sdkError .Code == "FailedOperation.ResourceInOperating" {
400
+ return resource .RetryableError (e )
401
+ }
402
+ }
403
+
393
404
return tccommon .RetryError (e )
394
405
} else {
395
406
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
396
407
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
408
+ if response == nil || response .Response == nil || response .Response .RequestId == nil {
409
+ return resource .NonRetryableError (fmt .Errorf ("Modify domain attributes failed, Response is nil." ))
410
+ }
411
+
397
412
requestId := * response .Response .RequestId
398
413
retryErr := waitForTaskFinish (requestId , meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ())
399
414
if retryErr != nil {
@@ -428,6 +443,10 @@ func resourceTencentCloudClbListenerRuleCreate(d *schema.ResourceData, meta inte
428
443
} else {
429
444
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
430
445
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
446
+ if response == nil || response .Response == nil || response .Response .RequestId == nil {
447
+ return resource .NonRetryableError (fmt .Errorf ("Modify rule failed, Response is nil." ))
448
+ }
449
+
431
450
requestId := * response .Response .RequestId
432
451
retryErr := waitForTaskFinish (requestId , meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ())
433
452
if retryErr != nil {
@@ -674,6 +693,10 @@ func resourceTencentCloudClbListenerRuleUpdate(d *schema.ResourceData, meta inte
674
693
} else {
675
694
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
676
695
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
696
+ if response == nil || response .Response == nil || response .Response .RequestId == nil {
697
+ return resource .NonRetryableError (fmt .Errorf ("Modify rule failed, Response is nil." ))
698
+ }
699
+
677
700
requestId := * response .Response .RequestId
678
701
retryErr := waitForTaskFinish (requestId , meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ())
679
702
if retryErr != nil {
@@ -744,6 +767,10 @@ func resourceTencentCloudClbListenerRuleUpdate(d *schema.ResourceData, meta inte
744
767
} else {
745
768
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " ,
746
769
logId , request .GetAction (), request .ToJsonString (), response .ToJsonString ())
770
+ if response == nil || response .Response == nil || response .Response .RequestId == nil {
771
+ return resource .NonRetryableError (fmt .Errorf ("Modify domain attributes failed, Response is nil." ))
772
+ }
773
+
747
774
requestId := * response .Response .RequestId
748
775
retryErr := waitForTaskFinish (requestId , meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseClbClient ())
749
776
if retryErr != nil {
0 commit comments