@@ -6,10 +6,9 @@ import (
66 "log"
77 "strings"
88
9- "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
10-
119 "github.com/hashicorp/terraform-plugin-sdk/helper/resource"
1210 ckafka "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka/v20190819"
11+ "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1312 "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/connectivity"
1413 "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/internal/helper"
1514 "github.com/terraform-providers/terraform-provider-tencentcloud/tencentcloud/ratelimit"
@@ -455,7 +454,18 @@ func (me *CkafkaService) DescribeCkafkaTopics(ctx context.Context, instanceId st
455454
456455 request .Offset = & offset
457456 request .Limit = & limit
458-
457+ //check ckafka exist
458+ ckafkaExist , error := me .DescribeCkafkaById (ctx , instanceId )
459+ if error != nil {
460+ if sdkErr , ok := error .(* errors.TencentCloudSDKError ); ok {
461+ if sdkErr .Code == CkafkaInstanceNotFound {
462+ return
463+ }
464+ }
465+ }
466+ if ! ckafkaExist {
467+ return
468+ }
459469 for {
460470 ratelimit .Check (request .GetAction ())
461471 response , err := me .client .UseCkafkaClient ().DescribeTopicDetail (request )
@@ -489,6 +499,7 @@ func (me *CkafkaService) CreateCkafkaTopic(ctx context.Context, request *ckafka.
489499 }
490500 if response == nil || response .Response == nil || response .Response .Result == nil {
491501 errRet = fmt .Errorf ("TencentCloud SDK return nil response, %s" , request .GetAction ())
502+ return
492503 }
493504 if * response .Response .Result .TopicId == "" {
494505 errRet = fmt .Errorf ("TencentCloud SDK returns empty ckafka topic ID, %s" , request .GetAction ())
@@ -500,18 +511,6 @@ func (me *CkafkaService) CreateCkafkaTopic(ctx context.Context, request *ckafka.
500511
501512func (me * CkafkaService ) DescribeCkafkaTopicByName (ctx context.Context , instanceId string , topicName string ) (topic * ckafka.TopicDetail , has bool , errRet error ) {
502513 var topicList []* ckafka.TopicDetail
503- //check ckafka exist
504- ckafkaExist , error := me .DescribeCkafkaById (ctx , instanceId )
505- if error != nil {
506- if sdkErr , ok := error .(* errors.TencentCloudSDKError ); ok {
507- if sdkErr .Code == CkafkaInstanceNotFound {
508- return nil , false , error
509- }
510- }
511- }
512- if ! ckafkaExist {
513- return nil , false , error
514- }
515514 //check ckafka topic exist
516515 err := resource .Retry (readRetryTimeout , func () * resource.RetryError {
517516 list , err := me .DescribeCkafkaTopics (ctx , instanceId , topicName )
@@ -529,9 +528,7 @@ func (me *CkafkaService) DescribeCkafkaTopicByName(ctx context.Context, instance
529528 if * v .TopicName == topicName {
530529 has = true
531530 topic = v
532- return
533- } else {
534- continue
531+ break
535532 }
536533 }
537534 return
@@ -556,6 +553,7 @@ func (me *CkafkaService) DescribeCkafkaTopicAttributes(ctx context.Context, inst
556553 }
557554 if response == nil || response .Response == nil || response .Response .Result == nil {
558555 errRet = fmt .Errorf ("TencentCloud SDK return nil response, %s" , request .GetAction ())
556+ return
559557 }
560558 topicInfo = response .Response .Result
561559 return
@@ -575,22 +573,21 @@ func (me *CkafkaService) AddCkafkaTopicIpWhiteList(ctx context.Context, instaneI
575573 request .IpWhiteList = whiteIpList
576574 ratelimit .Check (request .GetAction ())
577575 var response * ckafka.CreateTopicIpWhiteListResponse
578- err : = resource .Retry (readRetryTimeout , func () * resource.RetryError {
576+ errRet = resource .Retry (readRetryTimeout , func () * resource.RetryError {
579577 resp , e := me .client .UseCkafkaClient ().CreateTopicIpWhiteList (request )
580578 if e != nil {
581579 return retryError (e )
582580 }
583581 response = resp
584582 return nil
585583 })
586- if err != nil {
587- errRet = err
584+ if errRet != nil {
588585 return
589586 }
590587 if response == nil || response .Response == nil || response .Response .Result == nil {
591588 errRet = fmt .Errorf ("TencentCloud SDK return nil response, %s" , request .GetAction ())
592589 }
593- return err
590+ return errRet
594591}
595592
596593func (me * CkafkaService ) RemoveCkafkaTopicIpWhiteList (ctx context.Context , instaneId string , topicName string , whiteIpList []* string ) (errRet error ) {
@@ -607,25 +604,23 @@ func (me *CkafkaService) RemoveCkafkaTopicIpWhiteList(ctx context.Context, insta
607604 request .IpWhiteList = whiteIpList
608605 ratelimit .Check (request .GetAction ())
609606 var response * ckafka.DeleteTopicIpWhiteListResponse
610- err : = resource .Retry (readRetryTimeout , func () * resource.RetryError {
607+ errRet = resource .Retry (readRetryTimeout , func () * resource.RetryError {
611608 resp , e := me .client .UseCkafkaClient ().DeleteTopicIpWhiteList (request )
612609 if e != nil {
613610 return retryError (e )
614611 }
615612 response = resp
616613 return nil
617614 })
618- if err != nil {
619- errRet = err
615+ if errRet != nil {
620616 return
621617 }
622618 if response == nil || response .Response == nil || response .Response .Result == nil {
623619 errRet = fmt .Errorf ("TencentCloud SDK return nil response, %s" , request .GetAction ())
624620 }
625- return err
621+ return errRet
626622}
627623
628- //get ckafka instance by instanceId.
629624func (me * CkafkaService ) DescribeCkafkaById (ctx context.Context , instanceId string ) (has bool , errRet error ) {
630625 logId := getLogId (ctx )
631626 request := ckafka .NewDescribeInstancesDetailRequest ()
@@ -645,9 +640,7 @@ func (me *CkafkaService) DescribeCkafkaById(ctx context.Context, instanceId stri
645640 for _ , v := range resp .Response .Result .InstanceList {
646641 if * v .InstanceId == instanceId {
647642 has = true
648- return
649- } else {
650- continue
643+ break
651644 }
652645 }
653646 return
@@ -695,7 +688,7 @@ func (me *CkafkaService) DeleteCkafkaTopic(ctx context.Context, instanceId strin
695688 if err != nil {
696689 return retryError (err )
697690 }
698- if topicList != nil || len (topicList ) != 0 {
691+ if len (topicList ) != 0 {
699692 errRet = fmt .Errorf ("this Topic %s Delete Failed, timeout" , name )
700693 }
701694 return nil
0 commit comments