Skip to content

fix(cls): [121643520] tencentcloud_cls_logset update code #3074

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 2 commits into from
Jan 14, 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/3074.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/tencentcloud_cls_logset: update code
```
95 changes: 53 additions & 42 deletions tencentcloud/services/cls/resource_tc_cls_logset.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ func ResourceTencentCloudClsLogset() *schema.Resource {
Description: "Logset name, which must be unique.",
},

"tags": {
Type: schema.TypeMap,
Optional: true,
Description: "Tag description list.",
},

"create_time": {
Type: schema.TypeString,
Computed: true,
Expand All @@ -48,12 +54,6 @@ func ResourceTencentCloudClsLogset() *schema.Resource {
Computed: true,
Description: "If assumer_uin is not empty, it indicates the service provider who creates the logset.",
},

"tags": {
Type: schema.TypeMap,
Optional: true,
Description: "Tag description list.",
},
},
}
}
Expand All @@ -62,11 +62,11 @@ func resourceTencentCloudClsLogsetCreate(d *schema.ResourceData, meta interface{
defer tccommon.LogElapsed("resource.tencentcloud_cls_logset.create")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)

var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
request = cls.NewCreateLogsetRequest()
response *cls.CreateLogsetResponse
response = cls.NewCreateLogsetResponse()
)

if v, ok := d.GetOk("logset_name"); ok {
Expand All @@ -81,6 +81,11 @@ func resourceTencentCloudClsLogsetCreate(d *schema.ResourceData, meta interface{
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
}

if result == nil || result.Response == nil {
return resource.NonRetryableError(fmt.Errorf("Create cls logset failed, Response is nil."))
}

response = result
return nil
})
Expand All @@ -90,9 +95,13 @@ func resourceTencentCloudClsLogsetCreate(d *schema.ResourceData, meta interface{
return err
}

if response.Response.LogsetId == nil {
return fmt.Errorf("LogsetId is nil.")
}

logsetId := *response.Response.LogsetId
d.SetId(logsetId)

ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
if tags := helper.GetTags(d, "tags"); len(tags) > 0 {
tagService := svctag.NewTagService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
region := meta.(tccommon.ProviderMeta).GetAPIV3Conn().Region
Expand All @@ -101,23 +110,22 @@ func resourceTencentCloudClsLogsetCreate(d *schema.ResourceData, meta interface{
return err
}
}
d.SetId(logsetId)

return resourceTencentCloudClsLogsetRead(d, meta)
}

func resourceTencentCloudClsLogsetRead(d *schema.ResourceData, meta interface{}) error {
defer tccommon.LogElapsed("resource.tencentcloud_cls_logset.read")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}

logsetId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
logsetId = d.Id()
)

logset, err := service.DescribeClsLogset(ctx, logsetId)

if err != nil {
return err
}
Expand Down Expand Up @@ -149,6 +157,7 @@ func resourceTencentCloudClsLogsetRead(d *schema.ResourceData, meta interface{})
if err != nil {
return err
}

_ = d.Set("tags", tags)

return nil
Expand All @@ -158,32 +167,33 @@ func resourceTencentCloudClsLogsetUpdate(d *schema.ResourceData, meta interface{
defer tccommon.LogElapsed("resource.tencentcloud_cls_logset.update")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

request := cls.NewModifyLogsetRequest()

request.LogsetId = helper.String(d.Id())
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
)

if d.HasChange("logset_name") {
request := cls.NewModifyLogsetRequest()
request.LogsetId = helper.String(d.Id())
if v, ok := d.GetOk("logset_name"); ok {
request.LogsetName = helper.String(v.(string))
}
}

err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsClient().ModifyLogset(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(), result.ToJsonString())
}
return nil
})
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
result, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseClsClient().ModifyLogset(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(), result.ToJsonString())
}

if err != nil {
return err
return nil
})

if err != nil {
return err
}
}

if d.HasChange("tags") {
Expand All @@ -204,11 +214,12 @@ func resourceTencentCloudClsLogsetDelete(d *schema.ResourceData, meta interface{
defer tccommon.LogElapsed("resource.tencentcloud_cls_logset.delete")()
defer tccommon.InconsistentCheck(d, meta)()

logId := tccommon.GetLogId(tccommon.ContextNil)
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)

service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
logsetId := d.Id()
var (
logId = tccommon.GetLogId(tccommon.ContextNil)
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
logsetId = d.Id()
)

if err := service.DeleteClsLogsetById(ctx, logsetId); err != nil {
return err
Expand Down
13 changes: 6 additions & 7 deletions tencentcloud/services/cls/resource_tc_cls_logset.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
Provides a resource to create a cls logset
Provides a resource to create a CLS logset

Example Usage

```hcl
resource "tencentcloud_cls_logset" "logset" {
logset_name = "demo"
resource "tencentcloud_cls_logset" "example" {
logset_name = "tf-example"
tags = {
"createdBy" = "terraform"
createdBy = "Terraform"
}
}

```
Import

cls logset can be imported using the id, e.g.
CLS logset can be imported using the id, e.g.
```
$ terraform import tencentcloud_cls_logset.logset logset_id
$ terraform import tencentcloud_cls_logset.example 698902ff-8b5a-4c65-824b-d8956f366351
```
19 changes: 14 additions & 5 deletions tencentcloud/services/cls/service_tencentcloud_cls.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"log"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"

cls "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls/v20201016"
Expand Down Expand Up @@ -97,14 +98,22 @@ func (me *ClsService) DeleteClsLogsetById(ctx context.Context, logsetId string)
}
}()

ratelimit.Check(request.GetAction())
response, err := me.client.UseClsClient().DeleteLogset(request)
err := resource.Retry(tccommon.WriteRetryTimeout, func() *resource.RetryError {
ratelimit.Check(request.GetAction())
result, e := me.client.UseClsClient().DeleteLogset(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(), result.ToJsonString())
}

return nil
})

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

return
}
Expand Down
14 changes: 7 additions & 7 deletions website/docs/r/cls_logset.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@ layout: "tencentcloud"
page_title: "TencentCloud: tencentcloud_cls_logset"
sidebar_current: "docs-tencentcloud-resource-cls_logset"
description: |-
Provides a resource to create a cls logset
Provides a resource to create a CLS logset
---

# tencentcloud_cls_logset

Provides a resource to create a cls logset
Provides a resource to create a CLS logset

## Example Usage

```hcl
resource "tencentcloud_cls_logset" "logset" {
logset_name = "demo"
resource "tencentcloud_cls_logset" "example" {
logset_name = "tf-example"
tags = {
"createdBy" = "terraform"
createdBy = "Terraform"
}
}
```
Expand All @@ -41,8 +41,8 @@ In addition to all arguments above, the following attributes are exported:

## Import

cls logset can be imported using the id, e.g.
CLS logset can be imported using the id, e.g.
```
$ terraform import tencentcloud_cls_logset.logset logset_id
$ terraform import tencentcloud_cls_logset.example 698902ff-8b5a-4c65-824b-d8956f366351
```

Loading