Skip to content

Commit cf26b17

Browse files
tongyimingmikatong
and
mikatong
authored
feat(cdwpg): [122485020]cdwpg datasource (#3232)
* cdwpg datasource * update * update * update doc * add changelog --------- Co-authored-by: mikatong <[email protected]>
1 parent d4be886 commit cf26b17

23 files changed

+4179
-424
lines changed

.changelog/3232.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
```release-note:new-data-source
2+
tencentcloud_cdwpg_instances
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_cdwpg_log
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_cdwpg_nodes
11+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ require (
109109
github.com/hashicorp/go-uuid v1.0.3
110110
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdc v1.0.970
111111
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993
112-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772
112+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126
113113
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993
114114
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860
115115
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dasb v1.0.970

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993 h1:b4
848848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwdoris v1.0.993/go.mod h1:uH80xTlhZC7HR4OjsUo/ZgD5h5MYo45WyW/msUFkXqU=
849849
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772 h1:tn8b0VAqKV4cglYrubtwONiHfXhoyZSmYMmgL/oX/RU=
850850
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.772/go.mod h1:vkWjnf7Qvtesn0efpiaVj5mIQsQhomkA2keE2yskfmg=
851+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126 h1:DnjwVXbDFcdreCDn6US+UoP6pEeMHcWNlz74fWaNffQ=
852+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg v1.0.1126/go.mod h1:xLd4uvQefvY5QwslyD2ZGPbk1gYArk7W653yxc9nyII=
851853
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoCUWQZciiJj3gRCWoHBO/8LituLQOdCRREIrS4=
852854
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627/go.mod h1:lr3IyWgJk4rLWr0vVd8J1Tfs5O+wNcwSZ9ciMhGUrlI=
853855
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfw v1.0.1018 h1:t9pWssFNmbTerWeZAASeJyMxj7V+Xfb6VnPPMHDpkDU=
@@ -931,6 +933,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1108/go.mod
931933
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1111/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
932934
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1115/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
933935
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1122/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1126 h1:HHWE825wxwoEEZVB9CLgPpXOiFy6hZXJMcCjCAOckAU=
937+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1126/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
934938
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128 h1:NGnqDc8FQL0YdiCHgTO4Wkso6ToD8rE3JW9VOzoPBNA=
935939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
936940
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ=

tencentcloud/connectivity/client.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ type TencentCloudClient struct {
234234
monitor20180724Conn *monitor.Client
235235
cdcv20201214Conn *cdc.Client
236236
mqttv20240516Conn *mqtt.Client
237+
cdwpgv20201230Conn *cdwpg.Client
237238
}
238239

239240
// NewClientProfile returns a new ClientProfile
@@ -2046,3 +2047,15 @@ func (me *TencentCloudClient) UseMqttV20240516Client() *mqtt.Client {
20462047

20472048
return me.mqttv20240516Conn
20482049
}
2050+
2051+
// UseCdwpgV20201230Client return CDWPG client for service
2052+
func (me *TencentCloudClient) UseCdwpgV20201230Client() *cdwpg.Client {
2053+
if me.cdwpgv20201230Conn != nil {
2054+
return me.cdwpgv20201230Conn
2055+
}
2056+
cpf := me.NewClientProfile(300)
2057+
me.cdwpgv20201230Conn, _ = cdwpg.NewClient(me.Credential, me.Region, cpf)
2058+
me.cdwpgv20201230Conn.WithHttpTransport(&LogRoundTripper{})
2059+
2060+
return me.cdwpgv20201230Conn
2061+
}

tencentcloud/provider.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1171,7 +1171,11 @@ func Provider() *schema.Provider {
11711171
"tencentcloud_cdc_dedicated_cluster_orders": cdc.DataSourceTencentCloudCdcDedicatedClusterOrders(),
11721172
"tencentcloud_cdc_dedicated_clusters": cdc.DataSourceTencentCloudCdcDedicatedClusters(),
11731173
"tencentcloud_cdwdoris_instances": cdwdoris.DataSourceTencentCloudCdwdorisInstances(),
1174-
"tencentcloud_lite_hbase_instances": emr.DataSourceTencentCloudLiteHbaseInstances()},
1174+
"tencentcloud_lite_hbase_instances": emr.DataSourceTencentCloudLiteHbaseInstances(),
1175+
"tencentcloud_cdwpg_instances": cdwpg.DataSourceTencentCloudCdwpgInstances(),
1176+
"tencentcloud_cdwpg_log": cdwpg.DataSourceTencentCloudCdwpgLog(),
1177+
"tencentcloud_cdwpg_nodes": cdwpg.DataSourceTencentCloudCdwpgNodes(),
1178+
},
11751179

11761180
ResourcesMap: map[string]*schema.Resource{
11771181
"tencentcloud_project": project.ResourceTencentCloudProject(),

tencentcloud/provider.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2244,6 +2244,11 @@ tencentcloud_bi_embed_token_apply
22442244
tencentcloud_bi_embed_interval_apply
22452245

22462246
CDWPG
2247+
Data Source
2248+
tencentcloud_cdwpg_instances
2249+
tencentcloud_cdwpg_log
2250+
tencentcloud_cdwpg_nodes
2251+
22472252
Resource
22482253
tencentcloud_cdwpg_instance
22492254

Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
package cdwpg
2+
3+
import (
4+
"context"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
cdwpg "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cdwpg/v20201230"
9+
10+
tccommon "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/common"
11+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
12+
)
13+
14+
func DataSourceTencentCloudCdwpgInstances() *schema.Resource {
15+
return &schema.Resource{
16+
Read: dataSourceTencentCloudCdwpgInstancesRead,
17+
Schema: map[string]*schema.Schema{
18+
"search_instance_id": {
19+
Type: schema.TypeString,
20+
Optional: true,
21+
Description: "Search instance id.",
22+
},
23+
24+
"search_instance_name": {
25+
Type: schema.TypeString,
26+
Optional: true,
27+
Description: "Search instance name.",
28+
},
29+
30+
"search_tags": {
31+
Type: schema.TypeSet,
32+
Optional: true,
33+
Description: "Search tags.",
34+
Elem: &schema.Schema{
35+
Type: schema.TypeString,
36+
},
37+
},
38+
39+
"instances_list": {
40+
Type: schema.TypeList,
41+
Computed: true,
42+
Description: "Instances list.",
43+
Elem: &schema.Resource{
44+
Schema: map[string]*schema.Schema{
45+
"id": {
46+
Type: schema.TypeInt,
47+
Optional: true,
48+
Description: "id.",
49+
},
50+
"instance_id": {
51+
Type: schema.TypeString,
52+
Optional: true,
53+
Description: "Instance id.",
54+
},
55+
"instance_name": {
56+
Type: schema.TypeString,
57+
Optional: true,
58+
Description: "Instance name.",
59+
},
60+
"version": {
61+
Type: schema.TypeString,
62+
Optional: true,
63+
Description: "Version.",
64+
},
65+
"region": {
66+
Type: schema.TypeString,
67+
Optional: true,
68+
Description: "Region.",
69+
},
70+
"region_id": {
71+
Type: schema.TypeInt,
72+
Optional: true,
73+
Description: "Region id.",
74+
},
75+
"region_desc": {
76+
Type: schema.TypeString,
77+
Optional: true,
78+
Description: "Region description.",
79+
},
80+
"zone": {
81+
Type: schema.TypeString,
82+
Optional: true,
83+
Description: "Zone.",
84+
},
85+
"zone_id": {
86+
Type: schema.TypeInt,
87+
Optional: true,
88+
Description: "Zone id.",
89+
},
90+
"zone_desc": {
91+
Type: schema.TypeString,
92+
Optional: true,
93+
Description: "Zone description.",
94+
},
95+
"vpc_id": {
96+
Type: schema.TypeString,
97+
Optional: true,
98+
Description: "Vpc id.",
99+
},
100+
"subnet_id": {
101+
Type: schema.TypeString,
102+
Optional: true,
103+
Description: "Subnet id.",
104+
},
105+
"create_time": {
106+
Type: schema.TypeString,
107+
Optional: true,
108+
Description: "Create time, such as 2022-09-05 20:00:01.",
109+
},
110+
"expire_time": {
111+
Type: schema.TypeString,
112+
Optional: true,
113+
Description: "Expire time, such as 2022-09-05 20:00:01.",
114+
},
115+
"access_info": {
116+
Type: schema.TypeString,
117+
Optional: true,
118+
Description: "Access information.",
119+
},
120+
"pay_mode": {
121+
Type: schema.TypeString,
122+
Optional: true,
123+
Description: "Pay mode.",
124+
},
125+
"renew_flag": {
126+
Type: schema.TypeBool,
127+
Optional: true,
128+
Description: "Renew flag.",
129+
},
130+
},
131+
},
132+
},
133+
134+
"result_output_file": {
135+
Type: schema.TypeString,
136+
Optional: true,
137+
Description: "Used to save results.",
138+
},
139+
},
140+
}
141+
}
142+
143+
func dataSourceTencentCloudCdwpgInstancesRead(d *schema.ResourceData, meta interface{}) error {
144+
defer tccommon.LogElapsed("data_source.tencentcloud_cdwpg_instances.read")()
145+
defer tccommon.InconsistentCheck(d, meta)()
146+
147+
logId := tccommon.GetLogId(nil)
148+
ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
149+
150+
service := CdwpgService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
151+
152+
paramMap := make(map[string]interface{})
153+
if v, ok := d.GetOk("search_instance_id"); ok {
154+
paramMap["SearchInstanceId"] = helper.String(v.(string))
155+
}
156+
157+
if v, ok := d.GetOk("search_instance_name"); ok {
158+
paramMap["SearchInstanceName"] = helper.String(v.(string))
159+
}
160+
161+
if v, ok := d.GetOk("search_tags"); ok {
162+
searchTagsList := []*string{}
163+
searchTagsSet := v.(*schema.Set).List()
164+
for i := range searchTagsSet {
165+
searchTags := searchTagsSet[i].(string)
166+
searchTagsList = append(searchTagsList, helper.String(searchTags))
167+
}
168+
paramMap["SearchTags"] = searchTagsList
169+
}
170+
171+
var instances []*cdwpg.InstanceSimpleInfoNew
172+
err := resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
173+
result, e := service.DescribeCdwpgInstancesByFilter(ctx, paramMap)
174+
if e != nil {
175+
return tccommon.RetryError(e)
176+
}
177+
instances = result
178+
return nil
179+
})
180+
if err != nil {
181+
return err
182+
}
183+
184+
ids := make([]string, 0, len(instances))
185+
instancesList := make([]map[string]interface{}, 0, len(instances))
186+
for _, instance := range instances {
187+
instancesListMap := map[string]interface{}{}
188+
189+
if instance.ID != nil {
190+
instancesListMap["id"] = instance.ID
191+
}
192+
193+
if instance.InstanceId != nil {
194+
ids = append(ids, *instance.InstanceId)
195+
instancesListMap["instance_id"] = instance.InstanceId
196+
}
197+
198+
if instance.InstanceName != nil {
199+
instancesListMap["instance_name"] = instance.InstanceName
200+
}
201+
202+
if instance.Version != nil {
203+
instancesListMap["version"] = instance.Version
204+
}
205+
206+
if instance.Region != nil {
207+
instancesListMap["region"] = instance.Region
208+
}
209+
210+
if instance.RegionId != nil {
211+
instancesListMap["region_id"] = instance.RegionId
212+
}
213+
214+
if instance.RegionDesc != nil {
215+
instancesListMap["region_desc"] = instance.RegionDesc
216+
}
217+
218+
if instance.Zone != nil {
219+
instancesListMap["zone"] = instance.Zone
220+
}
221+
222+
if instance.ZoneId != nil {
223+
instancesListMap["zone_id"] = instance.ZoneId
224+
}
225+
226+
if instance.ZoneDesc != nil {
227+
instancesListMap["zone_desc"] = instance.ZoneDesc
228+
}
229+
230+
if instance.VpcId != nil {
231+
instancesListMap["vpc_id"] = instance.VpcId
232+
}
233+
234+
if instance.SubnetId != nil {
235+
instancesListMap["subnet_id"] = instance.SubnetId
236+
}
237+
238+
if instance.CreateTime != nil {
239+
instancesListMap["create_time"] = instance.CreateTime
240+
}
241+
242+
if instance.ExpireTime != nil {
243+
instancesListMap["expire_time"] = instance.ExpireTime
244+
}
245+
246+
if instance.AccessInfo != nil {
247+
instancesListMap["access_info"] = instance.AccessInfo
248+
}
249+
250+
if instance.PayMode != nil {
251+
instancesListMap["pay_mode"] = instance.PayMode
252+
}
253+
254+
if instance.RenewFlag != nil {
255+
instancesListMap["renew_flag"] = instance.RenewFlag
256+
}
257+
258+
instancesList = append(instancesList, instancesListMap)
259+
}
260+
261+
_ = d.Set("instances_list", instancesList)
262+
263+
d.SetId(helper.DataResourceIdsHash(ids))
264+
265+
output, ok := d.GetOk("result_output_file")
266+
if ok && output.(string) != "" {
267+
if e := tccommon.WriteToFile(output.(string), d); e != nil {
268+
return e
269+
}
270+
}
271+
272+
return nil
273+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Use this data source to query detailed information of cdwpg cdwpg_instances
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_cdwpg_instances" "cdwpg_instances" {
7+
}
8+
```

0 commit comments

Comments
 (0)