Skip to content

Commit 94652a2

Browse files
WeiMengXSWeiMengXS
andauthored
Dlc/update engine config (#2314)
* feat: add operation * feat: add operation * feat: doc * feat: doc * feat: doc * feat: doc * feat: doc * feat: doc --------- Co-authored-by: WeiMengXS <nickcchen@tencent.com>
1 parent dc39eef commit 94652a2

17 files changed

+1043
-7
lines changed

.changelog/2314.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
```release-note:new-data-source
2+
tencentcloud_dlc_describe_updatable_data_engines
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_dlc_update_data_engine_config_operation
7+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ require (
4646
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.693
4747
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.711
49-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.794
49+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797
5050
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
5151
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762
5252
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.692
5353
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dayu v1.0.335
5454
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dbbrain v1.0.652
5555
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dc v1.0.633
5656
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.673
57-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.777
57+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.797
5858
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.781
5959
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414
6060
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dts v1.0.628

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.788 h1:H3OC
875875
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.788/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
876876
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.794 h1:UZNzwFi22p+MPZNPcYMFniQcG0H05fFCXHyqsmx904U=
877877
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.794/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
878+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797 h1:jDSfrthql0LxaWOkEoQk/bSYRvM/k2+ukjsE6VfStEQ=
879+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.797/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
878880
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
879881
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
880882
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.762 h1:2egy69SP/wPsmnfozcQVZ6tUY6F6N/TpEe/7xtXrc/8=
@@ -893,6 +895,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.673 h1:YyjGLj
893895
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dcdb v1.0.673/go.mod h1:hXPMop1kJFqAvHj+7TyxxxXS/HGUP4SuKx5gGoAl0Zc=
894896
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.777 h1:3fuNSFtYzAa7pR9/xhGiirOfZIwVTPRw0DKWi/Ar5bw=
895897
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.777/go.mod h1:Zr9BUBp00uOgu0zS43wT8wKZul08iQmZ3WjJ1St1ENc=
898+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.797 h1:6hfb2rnbkT2hth7rXFY6diu23kRVCdLQb0dOfMYYy60=
899+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc v1.0.797/go.mod h1:7nIkeQ6XbNx8aLuX5MxZExH0WVmQDIsHbb7Mk/JunPg=
896900
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.781 h1:rtHjLafb2uko1yiEhNJ9/WubfGYUOdLB6NB25kQxDYA=
897901
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.781/go.mod h1:VK9QaPb0RIRLBciYTKqj+Enfq6ZUfv0mmhtM6bTwwAk=
898902
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/domain v1.0.414 h1:egwjvOEUKBaxsoRVn/YSEhp2E8qdh77Ous9A/wftDo0=
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
/*
2+
Use this data source to query detailed information of dlc describe_updatable_data_engines
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_dlc_describe_updatable_data_engines" "describe_updatable_data_engines" {
8+
data_engine_config_command = "UpdateSparkSQLLakefsPath"
9+
}
10+
```
11+
*/
12+
package tencentcloud
13+
14+
import (
15+
"context"
16+
17+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
18+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
19+
dlc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dlc/v20210125"
20+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
21+
)
22+
23+
func dataSourceTencentCloudDlcDescribeUpdatableDataEngines() *schema.Resource {
24+
return &schema.Resource{
25+
Read: dataSourceTencentCloudDlcDescribeUpdatableDataEnginesRead,
26+
Schema: map[string]*schema.Schema{
27+
"data_engine_config_command": {
28+
Required: true,
29+
Type: schema.TypeString,
30+
Description: "Engine configuration operation command, UpdateSparkSQLLakefsPath updates the managed table path, UpdateSparkSQLResultPath updates the result bucket path.",
31+
},
32+
33+
"data_engine_basic_infos": {
34+
Computed: true,
35+
Type: schema.TypeList,
36+
Description: "Engine basic information.",
37+
Elem: &schema.Resource{
38+
Schema: map[string]*schema.Schema{
39+
"data_engine_name": {
40+
Type: schema.TypeString,
41+
Computed: true,
42+
Description: "Engine name.",
43+
},
44+
"state": {
45+
Type: schema.TypeInt,
46+
Computed: true,
47+
Description: "Engine state, only support: 0:Init/-1:Failed/-2:Deleted/1:Pause/2:Running/3:ToBeDelete/4:Deleting.",
48+
},
49+
"create_time": {
50+
Type: schema.TypeInt,
51+
Computed: true,
52+
Description: "Create time.",
53+
},
54+
"update_time": {
55+
Type: schema.TypeInt,
56+
Computed: true,
57+
Description: "Update time.",
58+
},
59+
"message": {
60+
Type: schema.TypeString,
61+
Computed: true,
62+
Description: "Returned messages.",
63+
},
64+
"data_engine_id": {
65+
Type: schema.TypeString,
66+
Computed: true,
67+
Description: "Engine unique id.",
68+
},
69+
"data_engine_type": {
70+
Type: schema.TypeString,
71+
Computed: true,
72+
Description: "Engine type, valid values: PrestoSQL/SparkSQL/SparkBatch.",
73+
},
74+
"app_id": {
75+
Type: schema.TypeInt,
76+
Computed: true,
77+
Description: "User unique ID.",
78+
},
79+
"user_uin": {
80+
Type: schema.TypeString,
81+
Computed: true,
82+
Description: "User unique uin.",
83+
},
84+
},
85+
},
86+
},
87+
88+
"result_output_file": {
89+
Type: schema.TypeString,
90+
Optional: true,
91+
Description: "Used to save results.",
92+
},
93+
},
94+
}
95+
}
96+
97+
func dataSourceTencentCloudDlcDescribeUpdatableDataEnginesRead(d *schema.ResourceData, meta interface{}) error {
98+
defer logElapsed("data_source.tencentcloud_dlc_describe_updatable_data_engines.read")()
99+
defer inconsistentCheck(d, meta)()
100+
101+
logId := getLogId(contextNil)
102+
103+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
104+
105+
paramMap := make(map[string]interface{})
106+
if v, ok := d.GetOk("data_engine_config_command"); ok {
107+
paramMap["DataEngineConfigCommand"] = helper.String(v.(string))
108+
}
109+
110+
service := DlcService{client: meta.(*TencentCloudClient).apiV3Conn}
111+
112+
var dataEngineBasicInfos []*dlc.DataEngineBasicInfo
113+
114+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
115+
result, e := service.DescribeDlcDescribeUpdatableDataEnginesByFilter(ctx, paramMap)
116+
if e != nil {
117+
return retryError(e)
118+
}
119+
dataEngineBasicInfos = result
120+
return nil
121+
})
122+
if err != nil {
123+
return err
124+
}
125+
126+
ids := make([]string, 0, len(dataEngineBasicInfos))
127+
tmpList := make([]map[string]interface{}, 0, len(dataEngineBasicInfos))
128+
129+
if dataEngineBasicInfos != nil {
130+
for _, dataEngineBasicInfo := range dataEngineBasicInfos {
131+
dataEngineBasicInfoMap := map[string]interface{}{}
132+
133+
if dataEngineBasicInfo.DataEngineName != nil {
134+
dataEngineBasicInfoMap["data_engine_name"] = dataEngineBasicInfo.DataEngineName
135+
}
136+
137+
if dataEngineBasicInfo.State != nil {
138+
dataEngineBasicInfoMap["state"] = dataEngineBasicInfo.State
139+
}
140+
141+
if dataEngineBasicInfo.CreateTime != nil {
142+
dataEngineBasicInfoMap["create_time"] = dataEngineBasicInfo.CreateTime
143+
}
144+
145+
if dataEngineBasicInfo.UpdateTime != nil {
146+
dataEngineBasicInfoMap["update_time"] = dataEngineBasicInfo.UpdateTime
147+
}
148+
149+
if dataEngineBasicInfo.Message != nil {
150+
dataEngineBasicInfoMap["message"] = dataEngineBasicInfo.Message
151+
}
152+
153+
if dataEngineBasicInfo.DataEngineId != nil {
154+
dataEngineBasicInfoMap["data_engine_id"] = dataEngineBasicInfo.DataEngineId
155+
}
156+
157+
if dataEngineBasicInfo.DataEngineType != nil {
158+
dataEngineBasicInfoMap["data_engine_type"] = dataEngineBasicInfo.DataEngineType
159+
}
160+
161+
if dataEngineBasicInfo.AppId != nil {
162+
dataEngineBasicInfoMap["app_id"] = dataEngineBasicInfo.AppId
163+
}
164+
165+
if dataEngineBasicInfo.UserUin != nil {
166+
dataEngineBasicInfoMap["user_uin"] = dataEngineBasicInfo.UserUin
167+
}
168+
169+
ids = append(ids, *dataEngineBasicInfo.DataEngineId)
170+
tmpList = append(tmpList, dataEngineBasicInfoMap)
171+
}
172+
173+
_ = d.Set("data_engine_basic_infos", tmpList)
174+
}
175+
176+
d.SetId(helper.DataResourceIdsHash(ids))
177+
output, ok := d.GetOk("result_output_file")
178+
if ok && output.(string) != "" {
179+
if e := writeToFile(output.(string), tmpList); e != nil {
180+
return e
181+
}
182+
}
183+
return nil
184+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudDlcDescribeUpdatableDataEnginesDataSource_basic(t *testing.T) {
10+
t.Parallel()
11+
resource.Test(t, resource.TestCase{
12+
PreCheck: func() {
13+
testAccPreCheck(t)
14+
},
15+
Providers: testAccProviders,
16+
Steps: []resource.TestStep{
17+
{
18+
Config: testAccDlcDescribeUpdatableDataEnginesDataSource,
19+
Check: resource.ComposeTestCheckFunc(testAccCheckTencentCloudDataSourceID("data.tencentcloud_dlc_describe_updatable_data_engines.describe_updatable_data_engines")),
20+
},
21+
},
22+
})
23+
}
24+
25+
const testAccDlcDescribeUpdatableDataEnginesDataSource = `
26+
27+
data "tencentcloud_dlc_describe_updatable_data_engines" "describe_updatable_data_engines" {
28+
data_engine_config_command = "UpdateSparkSQLLakefsPath"
29+
}
30+
`

tencentcloud/provider.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1924,6 +1924,7 @@ Data Lake Compute(DLC)
19241924
tencentcloud_dlc_check_data_engine_image_can_be_rollback
19251925
tencentcloud_dlc_check_data_engine_image_can_be_upgrade
19261926
tencentcloud_dlc_check_data_engine_config_pairs_validity
1927+
tencentcloud_dlc_describe_updatable_data_engines
19271928
19281929
Resource
19291930
tencentcloud_dlc_work_group
@@ -1938,6 +1939,7 @@ Data Lake Compute(DLC)
19381939
tencentcloud_dlc_renew_data_engine_operation
19391940
tencentcloud_dlc_restart_data_engine_operation
19401941
tencentcloud_dlc_switch_data_engine_image_operation
1942+
tencentcloud_dlc_update_data_engine_config_operation
19411943
tencentcloud_dlc_upgrade_data_engine_image_operation
19421944
tencentcloud_dlc_user_data_engine_config
19431945
tencentcloud_dlc_update_row_filter_operation
@@ -2880,6 +2882,7 @@ func Provider() *schema.Provider {
28802882
"tencentcloud_dlc_describe_engine_usage_info": dataSourceTencentCloudDlcDescribeEngineUsageInfo(),
28812883
"tencentcloud_dlc_describe_work_group_info": dataSourceTencentCloudDlcDescribeWorkGroupInfo(),
28822884
"tencentcloud_dlc_check_data_engine_config_pairs_validity": dataSourceTencentCloudDlcCheckDataEngineConfigPairsValidity(),
2885+
"tencentcloud_dlc_describe_updatable_data_engines": dataSourceTencentCloudDlcDescribeUpdatableDataEngines(),
28832886
"tencentcloud_bi_project": dataSourceTencentCloudBiProject(),
28842887
"tencentcloud_bi_user_project": dataSourceTencentCloudBiUserProject(),
28852888
},
@@ -3741,6 +3744,7 @@ func Provider() *schema.Provider {
37413744
"tencentcloud_dlc_attach_work_group_policy_operation": resourceTencentCloudDlcAttachWorkGroupPolicyOperation(),
37423745
"tencentcloud_dlc_detach_work_group_policy_operation": resourceTencentCloudDlcDetachWorkGroupPolicyOperation(),
37433746
"tencentcloud_dlc_switch_data_engine_image_operation": resourceTencentCloudDlcSwitchDataEngineImageOperation(),
3747+
"tencentcloud_dlc_update_data_engine_config_operation": resourceTencentCloudDlcUpdateDataEngineConfigOperation(),
37443748
"tencentcloud_dlc_upgrade_data_engine_image_operation": resourceTencentCloudDlcUpgradeDataEngineImageOperation(),
37453749
"tencentcloud_dlc_bind_work_groups_to_user_attachment": resourceTencentCloudDlcBindWorkGroupsToUserAttachment(),
37463750
"tencentcloud_dlc_update_row_filter_operation": resourceTencentCloudDlcUpdateRowFilterOperation(),

0 commit comments

Comments
 (0)