Skip to content

Commit 82f24b9

Browse files
authored
fix(cls): [118961345] Update tencentcloud_cls_data_transform read interface (#2750)
* add * add
1 parent ff56559 commit 82f24b9

File tree

5 files changed

+91
-70
lines changed

5 files changed

+91
-70
lines changed

.changelog/2750.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_cls_data_transform: Update read interface
3+
```

tencentcloud/services/cls/resource_tc_cls_data_transform.go

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,54 +27,54 @@ func ResourceTencentCloudClsDataTransform() *schema.Resource {
2727
"func_type": {
2828
Required: true,
2929
Type: schema.TypeInt,
30-
Description: "task type.",
30+
Description: "Task type. `1`: Specify the theme; `2`: Dynamic creation.",
3131
},
3232

3333
"src_topic_id": {
3434
Required: true,
3535
Type: schema.TypeString,
36-
Description: "src topic id.",
36+
Description: "Source topic ID.",
3737
},
3838

3939
"name": {
4040
Required: true,
4141
Type: schema.TypeString,
42-
Description: "task name.",
42+
Description: "Task name.",
4343
},
4444

4545
"etl_content": {
4646
Required: true,
4747
Type: schema.TypeString,
48-
Description: "data transform content.",
48+
Description: "Data transform content. If `func_type` is `2`, must use `log_auto_output`.",
4949
},
5050

5151
"task_type": {
5252
Required: true,
5353
Type: schema.TypeInt,
54-
Description: "task type.",
54+
Description: "Task type. `1`: Use random data from the source log theme for processing preview; `2`: Use user-defined test data for processing preview; `3`: Create real machining tasks.",
5555
},
5656

5757
"enable_flag": {
5858
Optional: true,
5959
Type: schema.TypeInt,
60-
Description: "task enable flag.",
60+
Description: "Task enable flag. `1`: enable, `2`: disable, Default is `1`.",
6161
},
6262

6363
"dst_resources": {
6464
Optional: true,
6565
Type: schema.TypeList,
66-
Description: "data transform des resources.",
66+
Description: "Data transform des resources. If `func_type` is `1`, this parameter is required. If `func_type` is `2`, this parameter does not need to be filled in.",
6767
Elem: &schema.Resource{
6868
Schema: map[string]*schema.Schema{
6969
"topic_id": {
7070
Type: schema.TypeString,
7171
Required: true,
72-
Description: "dst topic id.",
72+
Description: "Dst topic ID.",
7373
},
7474
"alias": {
7575
Type: schema.TypeString,
7676
Required: true,
77-
Description: "alias.",
77+
Description: "Alias.",
7878
},
7979
},
8080
},
@@ -87,13 +87,13 @@ func resourceTencentCloudClsDataTransformCreate(d *schema.ResourceData, meta int
8787
defer tccommon.LogElapsed("resource.tencentcloud_cls_data_transform.create")()
8888
defer tccommon.InconsistentCheck(d, meta)()
8989

90-
logId := tccommon.GetLogId(tccommon.ContextNil)
91-
9290
var (
91+
logId = tccommon.GetLogId(tccommon.ContextNil)
9392
request = cls.NewCreateDataTransformRequest()
9493
response = cls.NewCreateDataTransformResponse()
9594
taskId string
9695
)
96+
9797
if v, ok := d.GetOkExists("func_type"); ok {
9898
request.FuncType = helper.IntInt64(v.(int))
9999
}
@@ -125,9 +125,11 @@ func resourceTencentCloudClsDataTransformCreate(d *schema.ResourceData, meta int
125125
if v, ok := dMap["topic_id"]; ok {
126126
dataTransformResouceInfo.TopicId = helper.String(v.(string))
127127
}
128+
128129
if v, ok := dMap["alias"]; ok {
129130
dataTransformResouceInfo.Alias = helper.String(v.(string))
130131
}
132+
131133
request.DstResources = append(request.DstResources, &dataTransformResouceInfo)
132134
}
133135
}
@@ -139,9 +141,11 @@ func resourceTencentCloudClsDataTransformCreate(d *schema.ResourceData, meta int
139141
} else {
140142
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
141143
}
144+
142145
response = result
143146
return nil
144147
})
148+
145149
if err != nil {
146150
log.Printf("[CRITAL]%s create cls dataTransform failed, reason:%+v", logId, err)
147151
return err
@@ -157,13 +161,12 @@ func resourceTencentCloudClsDataTransformRead(d *schema.ResourceData, meta inter
157161
defer tccommon.LogElapsed("resource.tencentcloud_cls_data_transform.read")()
158162
defer tccommon.InconsistentCheck(d, meta)()
159163

160-
logId := tccommon.GetLogId(tccommon.ContextNil)
161-
162-
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
163-
164-
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
165-
166-
dataTransformTaskId := d.Id()
164+
var (
165+
logId = tccommon.GetLogId(tccommon.ContextNil)
166+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
167+
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
168+
dataTransformTaskId = d.Id()
169+
)
167170

168171
dataTransform, err := service.DescribeClsDataTransformById(ctx, dataTransformTaskId)
169172
if err != nil {
@@ -209,7 +212,6 @@ func resourceTencentCloudClsDataTransformRead(d *schema.ResourceData, meta inter
209212
}
210213

211214
_ = d.Set("dst_resources", dstResourcesList)
212-
213215
}
214216

215217
return nil
@@ -219,22 +221,21 @@ func resourceTencentCloudClsDataTransformUpdate(d *schema.ResourceData, meta int
219221
defer tccommon.LogElapsed("resource.tencentcloud_cls_data_transform.update")()
220222
defer tccommon.InconsistentCheck(d, meta)()
221223

222-
logId := tccommon.GetLogId(tccommon.ContextNil)
223-
224-
request := cls.NewModifyDataTransformRequest()
225-
226-
dataTransformTaskId := d.Id()
227-
228-
request.TaskId = &dataTransformTaskId
224+
var (
225+
logId = tccommon.GetLogId(tccommon.ContextNil)
226+
request = cls.NewModifyDataTransformRequest()
227+
dataTransformTaskId = d.Id()
228+
)
229229

230230
immutableArgs := []string{"src_topic_id", "name", "etl_content", "enable_flag", "preview_log_statistics"}
231-
232231
for _, v := range immutableArgs {
233232
if d.HasChange(v) {
234233
return fmt.Errorf("argument `%s` cannot be changed", v)
235234
}
236235
}
237236

237+
request.TaskId = &dataTransformTaskId
238+
238239
if d.HasChange("name") {
239240
if v, ok := d.GetOk("name"); ok {
240241
request.Name = helper.String(v.(string))
@@ -261,9 +262,11 @@ func resourceTencentCloudClsDataTransformUpdate(d *schema.ResourceData, meta int
261262
if v, ok := dMap["topic_id"]; ok {
262263
dataTransformResouceInfo.TopicId = helper.String(v.(string))
263264
}
265+
264266
if v, ok := dMap["alias"]; ok {
265267
dataTransformResouceInfo.Alias = helper.String(v.(string))
266268
}
269+
267270
request.DstResources = append(request.DstResources, &dataTransformResouceInfo)
268271
}
269272
}
@@ -276,8 +279,10 @@ func resourceTencentCloudClsDataTransformUpdate(d *schema.ResourceData, meta int
276279
} else {
277280
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
278281
}
282+
279283
return nil
280284
})
285+
281286
if err != nil {
282287
log.Printf("[CRITAL]%s update cls dataTransform failed, reason:%+v", logId, err)
283288
return err
@@ -290,11 +295,12 @@ func resourceTencentCloudClsDataTransformDelete(d *schema.ResourceData, meta int
290295
defer tccommon.LogElapsed("resource.tencentcloud_cls_data_transform.delete")()
291296
defer tccommon.InconsistentCheck(d, meta)()
292297

293-
logId := tccommon.GetLogId(tccommon.ContextNil)
294-
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
295-
296-
service := ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
297-
dataTransformTaskId := d.Id()
298+
var (
299+
logId = tccommon.GetLogId(tccommon.ContextNil)
300+
ctx = context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
301+
service = ClsService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
302+
dataTransformTaskId = d.Id()
303+
)
298304

299305
if err := service.DeleteClsDataTransformById(ctx, dataTransformTaskId); err != nil {
300306
return err
Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
Provides a resource to create a cls data_transform
1+
Provides a resource to create a CLS data transform
22

33
Example Usage
44

55
```hcl
66
resource "tencentcloud_cls_logset" "logset_src" {
77
logset_name = "tf-example-src"
88
tags = {
9-
"createdBy" = "terraform"
9+
createdBy = "terraform"
1010
}
1111
}
12+
1213
resource "tencentcloud_cls_topic" "topic_src" {
1314
topic_name = "tf-example_src"
1415
logset_id = tencentcloud_cls_logset.logset_src.id
@@ -17,16 +18,18 @@ resource "tencentcloud_cls_topic" "topic_src" {
1718
partition_count = 1
1819
period = 10
1920
storage_type = "hot"
20-
tags = {
21-
"test" = "test",
21+
tags = {
22+
createdBy = "terraform"
2223
}
2324
}
25+
2426
resource "tencentcloud_cls_logset" "logset_dst" {
2527
logset_name = "tf-example-dst"
2628
tags = {
27-
"createdBy" = "terraform"
29+
createdBy = "terraform"
2830
}
2931
}
32+
3033
resource "tencentcloud_cls_topic" "topic_dst" {
3134
topic_name = "tf-example-dst"
3235
logset_id = tencentcloud_cls_logset.logset_dst.id
@@ -35,29 +38,29 @@ resource "tencentcloud_cls_topic" "topic_dst" {
3538
partition_count = 1
3639
period = 10
3740
storage_type = "hot"
38-
tags = {
39-
"test" = "test",
41+
tags = {
42+
createdBy = "terraform"
4043
}
4144
}
42-
resource "tencentcloud_cls_data_transform" "data_transform" {
43-
func_type = 1
45+
46+
resource "tencentcloud_cls_data_transform" "example" {
47+
func_type = 1
4448
src_topic_id = tencentcloud_cls_topic.topic_src.id
45-
name = "iac-test-src"
46-
etl_content = "ext_sep(\"content\", \"f1, f2, f3\", sep=\",\", quote=\"\", restrict=False, mode=\"overwrite\")fields_drop(\"content\")"
47-
task_type = 3
48-
enable_flag = 1
49+
name = "tf-example"
50+
etl_content = "ext_sep(\"content\", \"f1, f2, f3\", sep=\",\", quote=\"\", restrict=False, mode=\"overwrite\")fields_drop(\"content\")"
51+
task_type = 3
52+
enable_flag = 1
4953
dst_resources {
5054
topic_id = tencentcloud_cls_topic.topic_dst.id
51-
alias = "iac-test-dst"
52-
55+
alias = "iac-test-dst"
5356
}
5457
}
5558
```
5659

5760
Import
5861

59-
cls data_transform can be imported using the id, e.g.
62+
CLS data transform can be imported using the id, e.g.
6063

6164
```
62-
terraform import tencentcloud_cls_data_transform.data_transform data_transform_id
65+
terraform import tencentcloud_cls_data_transform.example 7b4bcb05-9154-4cdc-a479-f6b5743846e5
6366
```

tencentcloud/services/cls/service_tencentcloud_cls.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,12 @@ func (me *ClsService) DescribeClsDataTransformById(ctx context.Context, taskId s
11641164
logId := tccommon.GetLogId(ctx)
11651165

11661166
request := cls.NewDescribeDataTransformInfoRequest()
1167-
request.TaskId = &taskId
1167+
request.Filters = []*cls.Filter{
1168+
{
1169+
Key: common.StringPtr("taskId"),
1170+
Values: common.StringPtrs([]string{taskId}),
1171+
},
1172+
}
11681173

11691174
defer func() {
11701175
if errRet != nil {
@@ -1179,6 +1184,7 @@ func (me *ClsService) DescribeClsDataTransformById(ctx context.Context, taskId s
11791184
errRet = err
11801185
return
11811186
}
1187+
11821188
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
11831189

11841190
if len(response.Response.DataTransformTaskInfos) < 1 {

0 commit comments

Comments
 (0)