Skip to content

Commit 677244b

Browse files
tongyimingmikatong
and
mikatong
authored
fix(cls): [122697320]update tencentcloud_cls_cloud_product_log_task (#3259)
* update tencentcloud_cls_cloud_product_log_task * add changelog * update --------- Co-authored-by: mikatong <[email protected]>
1 parent 217ea30 commit 677244b

File tree

10 files changed

+242
-440
lines changed

10 files changed

+242
-440
lines changed

.changelog/3259.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_cls_cloud_product_log_task: update api
3+
```

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ require (
4545
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.1073
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
48-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134
48+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1128
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1111

go.sum

+4-2
Original file line numberDiff line numberDiff line change
@@ -866,6 +866,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 h1
866866
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033/go.mod h1:7oFlNimGSTHFy6JV7W/IZKuJWr+NUjCnGLTvb9MWNrY=
867867
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078 h1:6yf63sgR2q1ikVedWTXldtrArDHXG01yIdcWSSI5e5Y=
868868
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078/go.mod h1:D0n69Y0uDnHt31Wp5Z+uqmgBzr8xTZhrXPJ6d6KJL6E=
869+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135 h1:FTWpacOgtZCLC3Kwdf9gOpG2yYzfEzjKHsCR2k89LD0=
870+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135/go.mod h1:upjXJ5ISzUgxChOoUUcr9tQd8PB7FG3rFtMrxhozYzU=
869871
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
870872
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
871873
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -935,8 +937,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1127/go.mod
935937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936938
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1129/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
937939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1130/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
938-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134 h1:NDCzSm7r8OZeWQje1FJNHM73Ku4QRrCP1GymfgZYLSM=
939-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
940+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135 h1:NAu4sH5c+kGTZQ0rwhnuYjIXbentw3Np+TbwimH22uc=
941+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
940942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
941943
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
942944
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=

tencentcloud/services/cls/resource_tc_cls_cloud_product_log_task.go

+35-17
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// Code generated by iacg; DO NOT EDIT.
21
package cls
32

43
import (
54
"context"
65
"fmt"
76
"log"
87
"strings"
8+
"time"
99

1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -82,6 +82,7 @@ func ResourceTencentCloudClsCloudProductLogTask() *schema.Resource {
8282
"extend": {
8383
Type: schema.TypeString,
8484
Optional: true,
85+
Computed: true,
8586
Description: "Log configuration extension information, generally used to store additional log delivery configurations.",
8687
},
8788
},
@@ -103,8 +104,8 @@ func resourceTencentCloudClsCloudProductLogTaskCreate(d *schema.ResourceData, me
103104
cloudProductRegion string
104105
)
105106
var (
106-
request = clsv20201016.NewCreateCloudProductLogTaskRequest()
107-
response = clsv20201016.NewCreateCloudProductLogTaskResponse()
107+
request = clsv20201016.NewCreateCloudProductLogCollectionRequest()
108+
response = clsv20201016.NewCreateCloudProductLogCollectionResponse()
108109
)
109110

110111
if v, ok := d.GetOk("instance_id"); ok {
@@ -145,7 +146,7 @@ func resourceTencentCloudClsCloudProductLogTaskCreate(d *schema.ResourceData, me
145146
}
146147

147148
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
148-
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().CreateCloudProductLogTaskWithContext(ctx, request)
149+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().CreateCloudProductLogCollectionWithContext(ctx, request)
149150
if e != nil {
150151
return tccommon.RetryError(e)
151152
} else {
@@ -161,6 +162,13 @@ func resourceTencentCloudClsCloudProductLogTaskCreate(d *schema.ResourceData, me
161162

162163
_ = response
163164

165+
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
166+
conf := tccommon.BuildStateChangeConf([]string{}, []string{"1"}, 10*tccommon.ReadRetryTimeout, time.Second, service.ClsCloudProductLogTaskStateRefreshFunc(ctx, instanceId, assumerName, logType, []string{}))
167+
168+
if _, e := conf.WaitForState(); e != nil {
169+
return e
170+
}
171+
164172
d.SetId(strings.Join([]string{instanceId, assumerName, logType, cloudProductRegion}, tccommon.FILED_SP))
165173

166174
return resourceTencentCloudClsCloudProductLogTaskRead(d, meta)
@@ -193,7 +201,7 @@ func resourceTencentCloudClsCloudProductLogTaskRead(d *schema.ResourceData, meta
193201

194202
_ = d.Set("cloud_product_region", cloudProductRegion)
195203

196-
respData, err := service.DescribeClsCloudProductLogTaskById(ctx)
204+
respData, err := service.DescribeClsCloudProductLogTaskById(ctx, instanceId, assumerName, logType)
197205
if err != nil {
198206
return err
199207
}
@@ -203,10 +211,13 @@ func resourceTencentCloudClsCloudProductLogTaskRead(d *schema.ResourceData, meta
203211
log.Printf("[WARN]%s resource `cls_cloud_product_log_task` [%s] not found, please check if it has been deleted.\n", logId, d.Id())
204212
return nil
205213
}
206-
if err := resourceTencentCloudClsCloudProductLogTaskReadPreHandleResponse0(ctx, respData); err != nil {
207-
return err
208-
}
209214

215+
if len(respData.Tasks) > 0 {
216+
_ = d.Set("topic_id", respData.Tasks[0].TopicId)
217+
_ = d.Set("logset_id", respData.Tasks[0].LogsetId)
218+
_ = d.Set("extend", respData.Tasks[0].Extend)
219+
_ = d.Set("cls_region", respData.Tasks[0].ClsRegion)
220+
}
210221
_ = instanceId
211222
_ = assumerName
212223
_ = logType
@@ -247,7 +258,7 @@ func resourceTencentCloudClsCloudProductLogTaskUpdate(d *schema.ResourceData, me
247258
}
248259

249260
if needChange {
250-
request := clsv20201016.NewModifyCloudProductLogTaskRequest()
261+
request := clsv20201016.NewModifyCloudProductLogCollectionRequest()
251262

252263
request.InstanceId = helper.String(instanceId)
253264

@@ -262,7 +273,7 @@ func resourceTencentCloudClsCloudProductLogTaskUpdate(d *schema.ResourceData, me
262273
}
263274

264275
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
265-
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().ModifyCloudProductLogTaskWithContext(ctx, request)
276+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().ModifyCloudProductLogCollectionWithContext(ctx, request)
266277
if e != nil {
267278
return tccommon.RetryError(e)
268279
} else {
@@ -296,8 +307,8 @@ func resourceTencentCloudClsCloudProductLogTaskDelete(d *schema.ResourceData, me
296307
cloudProductRegion := idSplit[3]
297308

298309
var (
299-
request = clsv20201016.NewDeleteCloudProductLogTaskRequest()
300-
response = clsv20201016.NewDeleteCloudProductLogTaskResponse()
310+
request = clsv20201016.NewDeleteCloudProductLogCollectionRequest()
311+
response = clsv20201016.NewDeleteCloudProductLogCollectionResponse()
301312
)
302313

303314
request.InstanceId = helper.String(instanceId)
@@ -309,7 +320,7 @@ func resourceTencentCloudClsCloudProductLogTaskDelete(d *schema.ResourceData, me
309320
request.CloudProductRegion = helper.String(cloudProductRegion)
310321

311322
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
312-
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().DeleteCloudProductLogTaskWithContext(ctx, request)
323+
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsV20201016Client().DeleteCloudProductLogCollectionWithContext(ctx, request)
313324
if e != nil {
314325
return tccommon.RetryError(e)
315326
} else {
@@ -324,13 +335,20 @@ func resourceTencentCloudClsCloudProductLogTaskDelete(d *schema.ResourceData, me
324335
}
325336

326337
_ = response
338+
339+
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
340+
conf := tccommon.BuildStateChangeConf([]string{}, []string{"3"}, 10*tccommon.ReadRetryTimeout, time.Second, service.ClsCloudProductLogTaskStateRefreshFunc(ctx, instanceId, assumerName, logType, []string{}))
341+
342+
if _, e := conf.WaitForState(); e != nil {
343+
return e
344+
}
327345
var (
328346
request1 = clsv20201016.NewDeleteTopicRequest()
329347
response1 = clsv20201016.NewDeleteTopicResponse()
330348
)
331349

332-
if err := resourceTencentCloudClsCloudProductLogTaskDeletePostFillRequest1(ctx, request1); err != nil {
333-
return err
350+
if v, ok := d.GetOk("topic_id"); ok {
351+
request1.TopicId = helper.String(v.(string))
334352
}
335353

336354
err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
@@ -354,8 +372,8 @@ func resourceTencentCloudClsCloudProductLogTaskDelete(d *schema.ResourceData, me
354372
response2 = clsv20201016.NewDeleteLogsetResponse()
355373
)
356374

357-
if err := resourceTencentCloudClsCloudProductLogTaskDeletePostFillRequest2(ctx, request2); err != nil {
358-
return err
375+
if v, ok := d.GetOk("logset_id"); ok {
376+
request2.LogsetId = helper.String(v.(string))
359377
}
360378

361379
err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {

tencentcloud/services/cls/resource_tc_cls_cloud_product_log_task_test.go

+24-31
Original file line numberDiff line numberDiff line change
@@ -28,35 +28,28 @@ func TestAccTencentCloudNeedFixClsCloudProductLogTaskResource_basic(t *testing.T
2828
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cls_region"),
2929
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "logset_name"),
3030
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "topic_name"),
31-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
3231
),
3332
},
34-
// {
35-
// Config: testAccClsCloudProductLogTaskUpdate,
36-
// Check: resource.ComposeTestCheckFunc(
37-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "id"),
38-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "instance_id"),
39-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "assumer_name"),
40-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "log_type"),
41-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cloud_product_region"),
42-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cls_region"),
43-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "logset_name"),
44-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "topic_name"),
45-
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
46-
// ),
47-
// },
4833
{
49-
ResourceName: "tencentcloud_cls_cloud_product_log_task.example",
50-
ImportState: true,
51-
ImportStateVerify: true,
34+
Config: testAccClsCloudProductLogTaskUpdate,
35+
Check: resource.ComposeTestCheckFunc(
36+
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "id"),
37+
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
38+
),
39+
},
40+
{
41+
ResourceName: "tencentcloud_cls_cloud_product_log_task.example",
42+
ImportState: true,
43+
ImportStateVerify: true,
44+
ImportStateVerifyIgnore: []string{"logset_name", "topic_name"},
5245
},
5346
},
5447
})
5548
}
5649

5750
const testAccClsCloudProductLogTask = `
5851
resource "tencentcloud_cls_cloud_product_log_task" "example" {
59-
instance_id = "postgres-1p7xvpc1"
52+
instance_id = "postgres-mcdstv8l"
6053
assumer_name = "PostgreSQL"
6154
log_type = "PostgreSQL-SLOW"
6255
cloud_product_region = "gz"
@@ -66,15 +59,15 @@ resource "tencentcloud_cls_cloud_product_log_task" "example" {
6659
}
6760
`
6861

69-
// const testAccClsCloudProductLogTaskUpdate = `
70-
// resource "tencentcloud_cls_cloud_product_log_task" "example" {
71-
// instance_id = "postgres-1p7xvpc1"
72-
// assumer_name = "PostgreSQL"
73-
// log_type = "PostgreSQL-SLOW"
74-
// cloud_product_region = "gz"
75-
// cls_region = "ap-guangzhou"
76-
// logset_name = "tf-example"
77-
// topic_name = "tf-example"
78-
// extend = "remark update."
79-
// }
80-
// `
62+
const testAccClsCloudProductLogTaskUpdate = `
63+
resource "tencentcloud_cls_cloud_product_log_task" "example" {
64+
instance_id = "postgres-mcdstv8l"
65+
assumer_name = "PostgreSQL"
66+
log_type = "PostgreSQL-SLOW"
67+
cloud_product_region = "gz"
68+
cls_region = "ap-guangzhou"
69+
logset_name = "tf-example"
70+
topic_name = "tf-example"
71+
extend = "{\"ServiceName\":[\"HDFS\",\"KNOX\",\"YARN\",\"ZOOKEEPER\"],\"Policy\":0}"
72+
}
73+
`

tencentcloud/services/cls/service_tencentcloud_cls.go

+45-9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cls
22

33
import (
44
"context"
5+
"fmt"
56
"log"
67

78
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -1381,34 +1382,69 @@ func (me *ClsService) DeleteClsScheduledSqlById(ctx context.Context, taskId stri
13811382
return
13821383
}
13831384

1384-
func (me *ClsService) DescribeClsCloudProductLogTaskById(ctx context.Context) (ret *cls.DescribeCloudProductLogTasksResponseParams, errRet error) {
1385+
func (me *ClsService) DescribeClsCloudProductLogTaskById(ctx context.Context, instanceId, assumerName, logType string) (ret *cls.DescribeCloudProductLogTasksResponseParams, errRet error) {
13851386
logId := tccommon.GetLogId(ctx)
13861387

13871388
request := cls.NewDescribeCloudProductLogTasksRequest()
1389+
request.Filters = []*cls.Filter{
1390+
{
1391+
Key: helper.String("instanceId"),
1392+
Values: helper.Strings([]string{instanceId}),
1393+
},
1394+
{
1395+
Key: helper.String("assumerName"),
1396+
Values: helper.Strings([]string{assumerName}),
1397+
},
1398+
{
1399+
Key: helper.String("logType"),
1400+
Values: helper.Strings([]string{logType}),
1401+
},
1402+
}
13881403

13891404
defer func() {
13901405
if errRet != nil {
13911406
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
13921407
}
13931408
}()
13941409

1395-
ratelimit.Check(request.GetAction())
1396-
1397-
if err := resourceTencentCloudClsCloudProductLogTaskReadPreRequest0(ctx, request); err != nil {
1398-
return nil, err
1399-
}
1410+
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
1411+
ratelimit.Check(request.GetAction())
1412+
response, e := me.client.UseClsV20201016Client().DescribeCloudProductLogTasks(request)
1413+
if e != nil {
1414+
return tccommon.RetryError(e)
1415+
} else {
1416+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
1417+
}
1418+
ret = response.Response
1419+
return nil
1420+
})
14001421

1401-
response, err := me.client.UseClsV20201016Client().DescribeCloudProductLogTasks(request)
14021422
if err != nil {
14031423
errRet = err
14041424
return
14051425
}
1406-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
14071426

1408-
ret = response.Response
14091427
return
14101428
}
14111429

1430+
func (me *ClsService) ClsCloudProductLogTaskStateRefreshFunc(ctx context.Context, instanceId, assumerName, logType string, failStates []string) resource.StateRefreshFunc {
1431+
return func() (interface{}, string, error) {
1432+
ret, err := me.DescribeClsCloudProductLogTaskById(ctx, instanceId, assumerName, logType)
1433+
1434+
if err != nil {
1435+
return nil, "", err
1436+
}
1437+
if ret == nil || len(ret.Tasks) < 1 {
1438+
return cls.CloudProductLogTaskInfo{}, "3", nil
1439+
}
1440+
task := ret.Tasks[0]
1441+
if task.Status == nil {
1442+
return nil, "", fmt.Errorf("task status is nil")
1443+
}
1444+
return task, helper.Int64ToStr(*task.Status), nil
1445+
}
1446+
}
1447+
14121448
func (me *ClsService) DescribeClsNoticeContentById(ctx context.Context, noticeContentId string) (ret *cls.NoticeContentTemplate, errRet error) {
14131449
logId := tccommon.GetLogId(ctx)
14141450

0 commit comments

Comments
 (0)