Skip to content

Commit bad7409

Browse files
WeiMengXSWeiMengXS
andauthored
feat: dlc (#2259)
* feat: dlc * feat: dlc * feat: operation * feat: doc * feat: operation * feat: operation * feat: doc * feat: doc * feat: fix * feat: fix * feat: fix * feat: fix * feat: hide * feat: hide * feat: hide * feat: hide * feat: hide --------- Co-authored-by: WeiMengXS <nickcchen@tencent.com>
1 parent 95b5c07 commit bad7409

23 files changed

+2305
-5
lines changed

.changelog/2259.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
```release-note:new-resource
2+
tencentcloud_dlc_bind_work_groups_to_user_attachment
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_dlc_user_data_engine_config
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_dlc_check_data_engine_config_pairs_validity
11+
```
12+
13+
```release-note:bug
14+
tencentcloud_dlc_describe_user_info: Fix policy set type
15+
```
16+
17+
```release-note:bug
18+
tencentcloud_dlc_describe_work_group_info: Fix policy set type
19+
```
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
/*
2+
Use this data source to query detailed information of dlc check_data_engine_config_pairs_validity
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_dlc_check_data_engine_config_pairs_validity" "check_data_engine_config_pairs_validity" {
8+
child_image_version_id = "d3ftghd4-9a7e-4f64-a3f4-f38507c69742"
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 dataSourceTencentCloudDlcCheckDataEngineConfigPairsValidity() *schema.Resource {
24+
return &schema.Resource{
25+
Read: dataSourceTencentCloudDlcCheckDataEngineConfigPairsValidityRead,
26+
Schema: map[string]*schema.Schema{
27+
"child_image_version_id": {
28+
Optional: true,
29+
Type: schema.TypeString,
30+
Description: "Engine Image version id.",
31+
},
32+
33+
"data_engine_config_pairs": {
34+
Optional: true,
35+
Type: schema.TypeList,
36+
Description: "User-defined parameters.",
37+
Elem: &schema.Resource{
38+
Schema: map[string]*schema.Schema{
39+
"config_item": {
40+
Type: schema.TypeString,
41+
Required: true,
42+
Description: "Configuration item.",
43+
},
44+
"config_value": {
45+
Type: schema.TypeString,
46+
Required: true,
47+
Description: "Configuration value.",
48+
},
49+
},
50+
},
51+
},
52+
53+
"image_version_id": {
54+
Optional: true,
55+
Type: schema.TypeString,
56+
Description: "Engine major version id. If a minor version id exists, you only need to pass in the minor version id. If it does not exist, the latest minor version id under the current major version will be obtained.",
57+
},
58+
59+
"is_available": {
60+
Computed: true,
61+
Type: schema.TypeBool,
62+
Description: "Parameter validity: true: valid, false: at least one invalid parameter exists.",
63+
},
64+
65+
"unavailable_config": {
66+
Computed: true,
67+
Type: schema.TypeSet,
68+
Elem: &schema.Schema{
69+
Type: schema.TypeString,
70+
},
71+
Description: "Invalid parameter set.",
72+
},
73+
74+
"result_output_file": {
75+
Type: schema.TypeString,
76+
Optional: true,
77+
Description: "Used to save results.",
78+
},
79+
},
80+
}
81+
}
82+
83+
func dataSourceTencentCloudDlcCheckDataEngineConfigPairsValidityRead(d *schema.ResourceData, meta interface{}) error {
84+
defer logElapsed("data_source.tencentcloud_dlc_check_data_engine_config_pairs_validity.read")()
85+
defer inconsistentCheck(d, meta)()
86+
87+
logId := getLogId(contextNil)
88+
89+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
90+
var childImageVersionId string
91+
paramMap := make(map[string]interface{})
92+
if v, ok := d.GetOk("child_image_version_id"); ok {
93+
childImageVersionId = v.(string)
94+
paramMap["ChildImageVersionId"] = helper.String(v.(string))
95+
}
96+
97+
if v, ok := d.GetOk("data_engine_config_pairs"); ok {
98+
dataEngineConfigPairsSet := v.([]interface{})
99+
tmpSet := make([]*dlc.DataEngineConfigPair, 0, len(dataEngineConfigPairsSet))
100+
101+
for _, item := range dataEngineConfigPairsSet {
102+
dataEngineConfigPair := dlc.DataEngineConfigPair{}
103+
dataEngineConfigPairMap := item.(map[string]interface{})
104+
105+
if v, ok := dataEngineConfigPairMap["config_item"]; ok {
106+
dataEngineConfigPair.ConfigItem = helper.String(v.(string))
107+
}
108+
if v, ok := dataEngineConfigPairMap["config_value"]; ok {
109+
dataEngineConfigPair.ConfigValue = helper.String(v.(string))
110+
}
111+
tmpSet = append(tmpSet, &dataEngineConfigPair)
112+
}
113+
paramMap["data_engine_config_pairs"] = tmpSet
114+
}
115+
116+
if v, ok := d.GetOk("image_version_id"); ok {
117+
paramMap["ImageVersionId"] = helper.String(v.(string))
118+
}
119+
120+
service := DlcService{client: meta.(*TencentCloudClient).apiV3Conn}
121+
var data *dlc.CheckDataEngineConfigPairsValidityResponseParams
122+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
123+
result, e := service.DescribeDlcCheckDataEngineConfigPairsValidityByFilter(ctx, paramMap)
124+
if e != nil {
125+
return retryError(e)
126+
}
127+
data = result
128+
return nil
129+
})
130+
if err != nil {
131+
return err
132+
}
133+
result := make(map[string]interface{})
134+
if data.IsAvailable != nil {
135+
_ = d.Set("is_available", data.IsAvailable)
136+
result["is_available"] = data.IsAvailable
137+
}
138+
139+
if data.UnavailableConfig != nil {
140+
_ = d.Set("unavailable_config", data.UnavailableConfig)
141+
result["unavailable_config"] = data.UnavailableConfig
142+
}
143+
144+
d.SetId(childImageVersionId)
145+
output, ok := d.GetOk("result_output_file")
146+
if ok && output.(string) != "" {
147+
if e := writeToFile(output.(string), result); e != nil {
148+
return e
149+
}
150+
}
151+
return nil
152+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudDlcCheckDataEngineConfigPairsValidityDataSource_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: testAccDlcCheckDataEngineConfigPairsValidityDataSource,
19+
Check: resource.ComposeTestCheckFunc(testAccCheckTencentCloudDataSourceID("data.tencentcloud_dlc_check_data_engine_config_pairs_validity.check_data_engine_config_pairs_validity"),
20+
resource.TestCheckResourceAttr("data.tencentcloud_dlc_check_data_engine_config_pairs_validity.check_data_engine_config_pairs_validity", "child_image_version_id", "f54fba71-5f9c-4dfe-a565-004d7b6d3864")),
21+
},
22+
},
23+
})
24+
}
25+
26+
const testAccDlcCheckDataEngineConfigPairsValidityDataSource = `
27+
28+
data "tencentcloud_dlc_check_data_engine_config_pairs_validity" "check_data_engine_config_pairs_validity" {
29+
child_image_version_id = "f54fba71-5f9c-4dfe-a565-004d7b6d3864"
30+
}
31+
`

tencentcloud/data_source_tc_dlc_describe_user_info.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ func dataSourceTencentCloudDlcDescribeUserInfoRead(d *schema.ResourceData, meta
651651
policySetList = append(policySetList, policySetMap)
652652
}
653653

654-
dataPolicyInfoMap["policy_set"] = []interface{}{policySetList}
654+
dataPolicyInfoMap["policy_set"] = policySetList
655655
}
656656

657657
if userInfo.DataPolicyInfo.TotalCount != nil {
@@ -874,7 +874,7 @@ func dataSourceTencentCloudDlcDescribeUserInfoRead(d *schema.ResourceData, meta
874874
policySetList = append(policySetList, policySetMap)
875875
}
876876

877-
rowFilterInfoMap["policy_set"] = []interface{}{policySetList}
877+
rowFilterInfoMap["policy_set"] = policySetList
878878
}
879879

880880
if userInfo.RowFilterInfo.TotalCount != nil {

tencentcloud/data_source_tc_dlc_describe_work_group_info.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ func dataSourceTencentCloudDlcDescribeWorkGroupInfoRead(d *schema.ResourceData,
683683
policySetList = append(policySetList, policySetMap)
684684
}
685685

686-
dataPolicyInfoMap["policy_set"] = []interface{}{policySetList}
686+
dataPolicyInfoMap["policy_set"] = policySetList
687687
}
688688

689689
if workGroupInfo.DataPolicyInfo.TotalCount != nil {
@@ -772,7 +772,7 @@ func dataSourceTencentCloudDlcDescribeWorkGroupInfoRead(d *schema.ResourceData,
772772
policySetList = append(policySetList, policySetMap)
773773
}
774774

775-
enginePolicyInfoMap["policy_set"] = []interface{}{policySetList}
775+
enginePolicyInfoMap["policy_set"] = policySetList
776776
}
777777

778778
if workGroupInfo.EnginePolicyInfo.TotalCount != nil {
@@ -865,7 +865,7 @@ func dataSourceTencentCloudDlcDescribeWorkGroupInfoRead(d *schema.ResourceData,
865865
policySetList = append(policySetList, policySetMap)
866866
}
867867

868-
rowFilterInfoMap["policy_set"] = []interface{}{policySetList}
868+
rowFilterInfoMap["policy_set"] = policySetList
869869
}
870870

871871
if workGroupInfo.RowFilterInfo.TotalCount != nil {

tencentcloud/provider.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,7 @@ Data Lake Compute(DLC)
18791879
tencentcloud_dlc_describe_work_group_info
18801880
tencentcloud_dlc_check_data_engine_image_can_be_rollback
18811881
tencentcloud_dlc_check_data_engine_image_can_be_upgrade
1882+
tencentcloud_dlc_check_data_engine_config_pairs_validity
18821883
18831884
Resource
18841885
tencentcloud_dlc_work_group
@@ -1894,6 +1895,8 @@ Data Lake Compute(DLC)
18941895
tencentcloud_dlc_restart_data_engine_operation
18951896
tencentcloud_dlc_switch_data_engine_image_operation
18961897
tencentcloud_dlc_upgrade_data_engine_image_operation
1898+
tencentcloud_dlc_user_data_engine_config
1899+
tencentcloud_dlc_bind_work_groups_to_user_attachment
18971900
18981901
WeData
18991902
Data Source
@@ -2779,6 +2782,7 @@ func Provider() *schema.Provider {
27792782
"tencentcloud_dlc_describe_data_engine_python_spark_images": dataSourceTencentCloudDlcDescribeDataEnginePythonSparkImages(),
27802783
"tencentcloud_dlc_describe_engine_usage_info": dataSourceTencentCloudDlcDescribeEngineUsageInfo(),
27812784
"tencentcloud_dlc_describe_work_group_info": dataSourceTencentCloudDlcDescribeWorkGroupInfo(),
2785+
"tencentcloud_dlc_check_data_engine_config_pairs_validity": dataSourceTencentCloudDlcCheckDataEngineConfigPairsValidity(),
27822786
"tencentcloud_bi_project": dataSourceTencentCloudBiProject(),
27832787
"tencentcloud_bi_user_project": dataSourceTencentCloudBiUserProject(),
27842788
},
@@ -3610,8 +3614,14 @@ func Provider() *schema.Provider {
36103614
"tencentcloud_dlc_modify_user_typ_operation": resourceTencentCloudDlcModifyUserTypOperation(),
36113615
"tencentcloud_dlc_renew_data_engine_operation": resourceTencentCloudDlcRenewDataEngineOperation(),
36123616
"tencentcloud_dlc_restart_data_engine_operation": resourceTencentCloudDlcRestartDataEngineOperation(),
3617+
"tencentcloud_dlc_attach_user_policy_operation": resourceTencentCloudDlcAttachUserPolicyOperation(),
3618+
"tencentcloud_dlc_detach_user_policy_operation": resourceTencentCloudDlcDetachUserPolicyOperation(),
3619+
"tencentcloud_dlc_attach_work_group_policy_operation": resourceTencentCloudDlcAttachWorkGroupPolicyOperation(),
3620+
"tencentcloud_dlc_detach_work_group_policy_operation": resourceTencentCloudDlcDetachWorkGroupPolicyOperation(),
36133621
"tencentcloud_dlc_switch_data_engine_image_operation": resourceTencentCloudDlcSwitchDataEngineImageOperation(),
36143622
"tencentcloud_dlc_upgrade_data_engine_image_operation": resourceTencentCloudDlcUpgradeDataEngineImageOperation(),
3623+
"tencentcloud_dlc_bind_work_groups_to_user_attachment": resourceTencentCloudDlcBindWorkGroupsToUserAttachment(),
3624+
"tencentcloud_dlc_user_data_engine_config": resourceTencentCloudDlcUserDataEngineConfig(),
36153625
"tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(),
36163626
"tencentcloud_waf_custom_rule": resourceTencentCloudWafCustomRule(),
36173627
"tencentcloud_waf_custom_white_rule": resourceTencentCloudWafCustomWhiteRule(),

0 commit comments

Comments
 (0)