@@ -43,6 +43,29 @@ func TestAccTencentCloudTcaplusIdlResource(t *testing.T) {
4343 },
4444 })
4545}
46+
47+ func TestAccTencentCloudTcaplusTdrIdlResource (t * testing.T ) {
48+ t .Parallel ()
49+ resource .Test (t , resource.TestCase {
50+ PreCheck : func () { testAccPreCheck (t ) },
51+ Providers : testAccProviders ,
52+ CheckDestroy : testAccCheckTcaplusIdlDestroy ,
53+ Steps : []resource.TestStep {
54+ {
55+ Config : testAccTcaplusIdlTdr ,
56+ Check : resource .ComposeTestCheckFunc (
57+ testAccCheckTcaplusIdlExists ("tencentcloud_tcaplus_idl.test_tdr_idl" ),
58+ resource .TestCheckResourceAttrSet ("tencentcloud_tcaplus_idl.test_tdr_idl" , "cluster_id" ),
59+ resource .TestCheckResourceAttr ("tencentcloud_tcaplus_idl.test_tdr_idl" , "file_name" , "auth_info" ),
60+ resource .TestCheckResourceAttr ("tencentcloud_tcaplus_idl.test_tdr_idl" , "file_type" , "TDR" ),
61+ resource .TestCheckResourceAttr ("tencentcloud_tcaplus_idl.test_tdr_idl" , "file_ext_type" , "xml" ),
62+ resource .TestCheckResourceAttr ("tencentcloud_tcaplus_idl.test_tdr_idl" , "table_infos.#" , "1" ),
63+ ),
64+ },
65+ },
66+ })
67+ }
68+
4669func testAccCheckTcaplusIdlDestroy (s * terraform.State ) error {
4770 for _ , rs := range s .RootModule ().Resources {
4871 if rs .Type != testTcaplusIdlResourceName {
@@ -57,17 +80,24 @@ func testAccCheckTcaplusIdlDestroy(s *terraform.State) error {
5780 if err := json .Unmarshal ([]byte (rs .Primary .ID ), & tcaplusIdlId ); err != nil {
5881 return fmt .Errorf ("idl id is broken,%s" , err .Error ())
5982 }
60- parseTableInfos , err := service .DesOldIdlFiles (ctx , tcaplusIdlId )
61- if err != nil {
62- parseTableInfos , err = service .DesOldIdlFiles (ctx , tcaplusIdlId )
63- }
64- if err != nil {
65- return err
66- }
67- if len (parseTableInfos ) == 0 {
83+ outerr := resource .Retry (readRetryTimeout , func () * resource.RetryError {
84+ infos , err := service .DescribeIdlFileInfos (ctx , tcaplusIdlId .ClusterId )
85+ if err != nil {
86+ return retryError (err )
87+ }
88+ if len (infos ) == 0 {
89+ return nil
90+ }
91+ for _ , info := range infos {
92+ if * info .FileId == tcaplusIdlId .FileId {
93+ return retryError (fmt .Errorf ("delete failed!" ))
94+ }
95+ }
6896 return nil
97+ })
98+ if outerr != nil {
99+ return fmt .Errorf ("delete tcaplus idl %s fail, still on server" , rs .Primary .ID )
69100 }
70- return fmt .Errorf ("delete tcaplus idl %s fail, still on server" , rs .Primary .ID )
71101 }
72102 return nil
73103}
@@ -137,3 +167,25 @@ resource "tencentcloud_tcaplus_idl" "test_idl" {
137167 EOF
138168}
139169`
170+
171+ const testAccTcaplusIdlTdr = defaultTcaPlusData + `
172+ resource "tencentcloud_tcaplus_idl" "test_tdr_idl" {
173+ cluster_id = data.tencentcloud_tcaplus_clusters.tdr_tcaplus.list.0.cluster_id
174+ tablegroup_id = data.tencentcloud_tcaplus_tablegroups.tdr_group.list.0.tablegroup_id
175+ file_name = "auth_info"
176+ file_type = "TDR"
177+ file_ext_type = "xml"
178+ file_content = <<EOF
179+ <?xml version="1.0" encoding="GBK" standalone="yes" ?>
180+ <metalib name="user" tagsetversion="1" version="1">
181+ <struct name="user_info" version="1" primarykey="id" splittablekey="id">
182+ <entry name="id" type="string" size="100" desc="id" />
183+ <entry name="username" type="string" size="100" desc="username" />
184+ <entry name="age" type="int" desc="age" />
185+ <entry name="createat" type="uint64" desc="创建时间" />
186+ <entry name="updateat" type="uint64" desc="更新时间" />
187+ </struct>
188+ </metalib>
189+ EOF
190+ }
191+ `
0 commit comments