Skip to content

fix(cls): [122697320]update tencentcloud_cls_cloud_product_log_task #3259

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/3259.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/tencentcloud_cls_cloud_product_log_task: update api
```
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ require (
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.1073
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1107
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1128
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.1111
Expand Down
6 changes: 4 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -866,6 +866,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 h1
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033/go.mod h1:7oFlNimGSTHFy6JV7W/IZKuJWr+NUjCnGLTvb9MWNrY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078 h1:6yf63sgR2q1ikVedWTXldtrArDHXG01yIdcWSSI5e5Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1078/go.mod h1:D0n69Y0uDnHt31Wp5Z+uqmgBzr8xTZhrXPJ6d6KJL6E=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135 h1:FTWpacOgtZCLC3Kwdf9gOpG2yYzfEzjKHsCR2k89LD0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1135/go.mod h1:upjXJ5ISzUgxChOoUUcr9tQd8PB7FG3rFtMrxhozYzU=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
Expand Down Expand Up @@ -935,8 +937,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1127/go.mod
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1129/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1130/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134 h1:NDCzSm7r8OZeWQje1FJNHM73Ku4QRrCP1GymfgZYLSM=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135 h1:NAu4sH5c+kGTZQ0rwhnuYjIXbentw3Np+TbwimH22uc=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1135/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU=
Expand Down
52 changes: 35 additions & 17 deletions tencentcloud/services/cls/resource_tc_cls_cloud_product_log_task.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// Code generated by iacg; DO NOT EDIT.
package cls

import (
"context"
"fmt"
"log"
"strings"
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand Down Expand Up @@ -82,6 +82,7 @@ func ResourceTencentCloudClsCloudProductLogTask() *schema.Resource {
"extend": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Description: "Log configuration extension information, generally used to store additional log delivery configurations.",
},
},
Expand All @@ -103,8 +104,8 @@ func resourceTencentCloudClsCloudProductLogTaskCreate(d *schema.ResourceData, me
cloudProductRegion string
)
var (
request = clsv20201016.NewCreateCloudProductLogTaskRequest()
response = clsv20201016.NewCreateCloudProductLogTaskResponse()
request = clsv20201016.NewCreateCloudProductLogCollectionRequest()
response = clsv20201016.NewCreateCloudProductLogCollectionResponse()
)

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

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

_ = response

service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
conf := tccommon.BuildStateChangeConf([]string{}, []string{"1"}, 10*tccommon.ReadRetryTimeout, time.Second, service.ClsCloudProductLogTaskStateRefreshFunc(ctx, instanceId, assumerName, logType, []string{}))

if _, e := conf.WaitForState(); e != nil {
return e
}

d.SetId(strings.Join([]string{instanceId, assumerName, logType, cloudProductRegion}, tccommon.FILED_SP))

return resourceTencentCloudClsCloudProductLogTaskRead(d, meta)
Expand Down Expand Up @@ -193,7 +201,7 @@ func resourceTencentCloudClsCloudProductLogTaskRead(d *schema.ResourceData, meta

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

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

if len(respData.Tasks) > 0 {
_ = d.Set("topic_id", respData.Tasks[0].TopicId)
_ = d.Set("logset_id", respData.Tasks[0].LogsetId)
_ = d.Set("extend", respData.Tasks[0].Extend)
_ = d.Set("cls_region", respData.Tasks[0].ClsRegion)
}
_ = instanceId
_ = assumerName
_ = logType
Expand Down Expand Up @@ -247,7 +258,7 @@ func resourceTencentCloudClsCloudProductLogTaskUpdate(d *schema.ResourceData, me
}

if needChange {
request := clsv20201016.NewModifyCloudProductLogTaskRequest()
request := clsv20201016.NewModifyCloudProductLogCollectionRequest()

request.InstanceId = helper.String(instanceId)

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

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

var (
request = clsv20201016.NewDeleteCloudProductLogTaskRequest()
response = clsv20201016.NewDeleteCloudProductLogTaskResponse()
request = clsv20201016.NewDeleteCloudProductLogCollectionRequest()
response = clsv20201016.NewDeleteCloudProductLogCollectionResponse()
)

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

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

_ = response

service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
conf := tccommon.BuildStateChangeConf([]string{}, []string{"3"}, 10*tccommon.ReadRetryTimeout, time.Second, service.ClsCloudProductLogTaskStateRefreshFunc(ctx, instanceId, assumerName, logType, []string{}))

if _, e := conf.WaitForState(); e != nil {
return e
}
var (
request1 = clsv20201016.NewDeleteTopicRequest()
response1 = clsv20201016.NewDeleteTopicResponse()
)

if err := resourceTencentCloudClsCloudProductLogTaskDeletePostFillRequest1(ctx, request1); err != nil {
return err
if v, ok := d.GetOk("topic_id"); ok {
request1.TopicId = helper.String(v.(string))
}

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

if err := resourceTencentCloudClsCloudProductLogTaskDeletePostFillRequest2(ctx, request2); err != nil {
return err
if v, ok := d.GetOk("logset_id"); ok {
request2.LogsetId = helper.String(v.(string))
}

err = resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,35 +28,28 @@ func TestAccTencentCloudNeedFixClsCloudProductLogTaskResource_basic(t *testing.T
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cls_region"),
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "logset_name"),
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "topic_name"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
),
},
// {
// Config: testAccClsCloudProductLogTaskUpdate,
// Check: resource.ComposeTestCheckFunc(
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "id"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "instance_id"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "assumer_name"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "log_type"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cloud_product_region"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "cls_region"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "logset_name"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "topic_name"),
// resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
// ),
// },
{
ResourceName: "tencentcloud_cls_cloud_product_log_task.example",
ImportState: true,
ImportStateVerify: true,
Config: testAccClsCloudProductLogTaskUpdate,
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "id"),
resource.TestCheckResourceAttrSet("tencentcloud_cls_cloud_product_log_task.example", "extend"),
),
},
{
ResourceName: "tencentcloud_cls_cloud_product_log_task.example",
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"logset_name", "topic_name"},
},
},
})
}

const testAccClsCloudProductLogTask = `
resource "tencentcloud_cls_cloud_product_log_task" "example" {
instance_id = "postgres-1p7xvpc1"
instance_id = "postgres-mcdstv8l"
assumer_name = "PostgreSQL"
log_type = "PostgreSQL-SLOW"
cloud_product_region = "gz"
Expand All @@ -66,15 +59,15 @@ resource "tencentcloud_cls_cloud_product_log_task" "example" {
}
`

// const testAccClsCloudProductLogTaskUpdate = `
// resource "tencentcloud_cls_cloud_product_log_task" "example" {
// instance_id = "postgres-1p7xvpc1"
// assumer_name = "PostgreSQL"
// log_type = "PostgreSQL-SLOW"
// cloud_product_region = "gz"
// cls_region = "ap-guangzhou"
// logset_name = "tf-example"
// topic_name = "tf-example"
// extend = "remark update."
// }
// `
const testAccClsCloudProductLogTaskUpdate = `
resource "tencentcloud_cls_cloud_product_log_task" "example" {
instance_id = "postgres-mcdstv8l"
assumer_name = "PostgreSQL"
log_type = "PostgreSQL-SLOW"
cloud_product_region = "gz"
cls_region = "ap-guangzhou"
logset_name = "tf-example"
topic_name = "tf-example"
extend = "{\"ServiceName\":[\"HDFS\",\"KNOX\",\"YARN\",\"ZOOKEEPER\"],\"Policy\":0}"
}
`
54 changes: 45 additions & 9 deletions tencentcloud/services/cls/service_tencentcloud_cls.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cls

import (
"context"
"fmt"
"log"

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

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

request := cls.NewDescribeCloudProductLogTasksRequest()
request.Filters = []*cls.Filter{
{
Key: helper.String("instanceId"),
Values: helper.Strings([]string{instanceId}),
},
{
Key: helper.String("assumerName"),
Values: helper.Strings([]string{assumerName}),
},
{
Key: helper.String("logType"),
Values: helper.Strings([]string{logType}),
},
}

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

ratelimit.Check(request.GetAction())

if err := resourceTencentCloudClsCloudProductLogTaskReadPreRequest0(ctx, request); err != nil {
return nil, err
}
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
ratelimit.Check(request.GetAction())
response, e := me.client.UseClsV20201016Client().DescribeCloudProductLogTasks(request)
if e != nil {
return tccommon.RetryError(e)
} else {
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
}
ret = response.Response
return nil
})

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

ret = response.Response
return
}

func (me *ClsService) ClsCloudProductLogTaskStateRefreshFunc(ctx context.Context, instanceId, assumerName, logType string, failStates []string) resource.StateRefreshFunc {
return func() (interface{}, string, error) {
ret, err := me.DescribeClsCloudProductLogTaskById(ctx, instanceId, assumerName, logType)

if err != nil {
return nil, "", err
}
if ret == nil || len(ret.Tasks) < 1 {
return cls.CloudProductLogTaskInfo{}, "3", nil
}
task := ret.Tasks[0]
if task.Status == nil {
return nil, "", fmt.Errorf("task status is nil")
}
return task, helper.Int64ToStr(*task.Status), nil
}
}

func (me *ClsService) DescribeClsNoticeContentById(ctx context.Context, noticeContentId string) (ret *cls.NoticeContentTemplate, errRet error) {
logId := tccommon.GetLogId(ctx)

Expand Down
Loading
Loading