Skip to content

Commit d8e9838

Browse files
committed
resolve conflict
2 parents e1ea69e + 94e8e86 commit d8e9838

File tree

46 files changed

+6133
-24
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+6133
-24
lines changed

.changelog/1838.txt

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
```release-note:new-data-source
2+
tencentcloud_clb_cluster_resources
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_clb_cross_targets
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_clb_exclusive_clusters
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_clb_idle_instances
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_clb_listeners_by_targets
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_clb_instance_by_cert_id
23+
```
24+
25+
```release-note:new-data-source
26+
tencentcloud_clb_instance_traffic
27+
```
28+
29+
```release-note:new-data-source
30+
tencentcloud_clb_instance_detail
31+
```
32+
33+
```release-note:new-data-source
34+
tencentcloud_clb_resources
35+
```
36+
37+
```release-note:new-data-source
38+
tencentcloud_clb_target_group_list
39+
```
40+
41+
```release-note:new-data-source
42+
tencentcloud_clb_target_health
43+
```

.changelog/1840.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:new-resource
2+
tencentcloud_clb_security_group_attachment
3+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ require (
3535
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627
3636
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600
3737
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.666
38-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.599
38+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659
3939
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544
4040
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663
4141
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666

go.sum

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -792,12 +792,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627 h1:nChNdoC
792792
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cfs v1.0.627/go.mod h1:lr3IyWgJk4rLWr0vVd8J1Tfs5O+wNcwSZ9ciMhGUrlI=
793793
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600 h1:qSpp4rEgAzfXhi1rPxes+AJp2mwnsyRGPY/Km1FuYGs=
794794
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/chdfs v1.0.600/go.mod h1:xud1dQ7Rc23yC5kS00TYRrvZ/A+94EOkwquaI6xGVac=
795-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.634 h1:WL0kapIur4iVPIHHoGfwJob/dftlLmiREQ8Xa6e3mPs=
796-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.634/go.mod h1:fe2hUV4dNLP1IVYvUrTNY5PC4J+a6Lr1Bzw0KqxJyQ8=
797795
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.666 h1:uYZFM32iY46rLtvKMMv+aLoGfAM9XgCq/4+h3xu9UPQ=
798796
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.666/go.mod h1:GSkOVaAn5wPunmyOLCe9m9D1hNscI4lKfOnpeByAFlc=
799-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.599 h1:f4EuaKvy96oL1qptD1wRtq/CW3fSU1nqqyKNRNTAn0s=
800-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.599/go.mod h1:25iHVjMmqlOBynJjf/zyV4Bub1VewvMr/QjwQUU39Pg=
797+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659 h1:Hleh17bTIva3PWprkgA/qR1mkHlzV0TSBBOEzqxI500=
798+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.659/go.mod h1:fyVWBJDuBRQ1xd6EtyfCvGYc/NajNSu1Sa3lWrFYVNk=
801799
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544 h1:ApY6rS7I9otgujOdAFy0+Epno1PNVCQmsOoWQxx724Y=
802800
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.544/go.mod h1:c37rIdL3LrJXYwrfp9c8L4MabTqKIZUe1xvnWhN75oc=
803801
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.663 h1:onri8SDXzJDoKdPLmHAlhJD5xSrsWU34QoOojETi2Q0=
@@ -828,7 +826,6 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.584/go.mod
828826
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.589/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
829827
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.591/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
830828
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.593/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
831-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.599/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
832829
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.600/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
833830
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.616/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
834831
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.624/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
@@ -847,6 +844,7 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.659/go.mod
847844
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.661/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848845
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.662/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
849846
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.663/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
847+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.664/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
850848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666 h1:Qa3GQYsEWTesghhQ2+dWwfRZowz10v3witlO++LmPTQ=
851849
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
852850
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
/*
2+
Use this data source to query detailed information of clb cluster_resources
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_clb_cluster_resources" "cluster_resources" {
8+
filters {
9+
name = "idle"
10+
values = ["True"]
11+
}
12+
}
13+
```
14+
*/
15+
package tencentcloud
16+
17+
import (
18+
"context"
19+
20+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
21+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
22+
clb "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb/v20180317"
23+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
24+
)
25+
26+
func dataSourceTencentCloudClbClusterResources() *schema.Resource {
27+
return &schema.Resource{
28+
Read: dataSourceTencentCloudClbClusterResourcesRead,
29+
Schema: map[string]*schema.Schema{
30+
"filters": {
31+
Optional: true,
32+
Type: schema.TypeList,
33+
Description: "Filter conditions to query cluster. cluster-id - String - Required: No - (Filter condition) Filter by cluster ID, such as tgw-12345678. vip - String - Required: No - (Filter condition) Filter by loadbalancer vip, such as 192.168.0.1. loadblancer-id - String - Required: No - (Filter condition) Filter by loadblancer ID, such as lbl-12345678. idle - String - Required: No - (Filter condition) Filter by Whether load balancing is idle, such as True, False.",
34+
Elem: &schema.Resource{
35+
Schema: map[string]*schema.Schema{
36+
"name": {
37+
Type: schema.TypeString,
38+
Required: true,
39+
Description: "Filter name.",
40+
},
41+
"values": {
42+
Type: schema.TypeSet,
43+
Elem: &schema.Schema{
44+
Type: schema.TypeString,
45+
},
46+
Required: true,
47+
Description: "Filter values.",
48+
},
49+
},
50+
},
51+
},
52+
53+
"cluster_resource_set": {
54+
Computed: true,
55+
Type: schema.TypeList,
56+
Description: "Cluster resource set.",
57+
Elem: &schema.Resource{
58+
Schema: map[string]*schema.Schema{
59+
"cluster_id": {
60+
Type: schema.TypeString,
61+
Computed: true,
62+
Description: "Cluster ID.",
63+
},
64+
"vip": {
65+
Type: schema.TypeString,
66+
Computed: true,
67+
Description: "vip.",
68+
},
69+
"load_balancer_id": {
70+
Type: schema.TypeString,
71+
Computed: true,
72+
Description: "Loadbalance Id.",
73+
},
74+
"idle": {
75+
Type: schema.TypeString,
76+
Computed: true,
77+
Description: "Is it idle.",
78+
},
79+
"cluster_name": {
80+
Type: schema.TypeString,
81+
Computed: true,
82+
Description: "cluster name.",
83+
},
84+
"isp": {
85+
Type: schema.TypeString,
86+
Computed: true,
87+
Description: "Isp.",
88+
},
89+
"clusters_zone": {
90+
Type: schema.TypeList,
91+
Computed: true,
92+
Description: "clusters zone.",
93+
Elem: &schema.Resource{
94+
Schema: map[string]*schema.Schema{
95+
"master_zone": {
96+
Type: schema.TypeSet,
97+
Elem: &schema.Schema{
98+
Type: schema.TypeString,
99+
},
100+
Computed: true,
101+
Description: "Availability master zone where the cluster is located.",
102+
},
103+
"slave_zone": {
104+
Type: schema.TypeSet,
105+
Elem: &schema.Schema{
106+
Type: schema.TypeString,
107+
},
108+
Computed: true,
109+
Description: "Availability slave zone where the cluster is located.",
110+
},
111+
},
112+
},
113+
},
114+
},
115+
},
116+
},
117+
118+
"result_output_file": {
119+
Type: schema.TypeString,
120+
Optional: true,
121+
Description: "Used to save results.",
122+
},
123+
},
124+
}
125+
}
126+
127+
func dataSourceTencentCloudClbClusterResourcesRead(d *schema.ResourceData, meta interface{}) error {
128+
defer logElapsed("data_source.tencentcloud_clb_cluster_resources.read")()
129+
defer inconsistentCheck(d, meta)()
130+
131+
logId := getLogId(contextNil)
132+
133+
ctx := context.WithValue(context.TODO(), logIdKey, logId)
134+
135+
paramMap := make(map[string]interface{})
136+
if v, ok := d.GetOk("filters"); ok {
137+
filtersSet := v.([]interface{})
138+
tmpSet := make([]*clb.Filter, 0, len(filtersSet))
139+
140+
for _, item := range filtersSet {
141+
filter := clb.Filter{}
142+
filterMap := item.(map[string]interface{})
143+
144+
if v, ok := filterMap["name"]; ok {
145+
filter.Name = helper.String(v.(string))
146+
}
147+
if v, ok := filterMap["values"]; ok {
148+
valuesSet := v.(*schema.Set).List()
149+
filter.Values = helper.InterfacesStringsPoint(valuesSet)
150+
}
151+
tmpSet = append(tmpSet, &filter)
152+
}
153+
paramMap["Filters"] = tmpSet
154+
}
155+
156+
service := ClbService{client: meta.(*TencentCloudClient).apiV3Conn}
157+
158+
var clusterResourceSet []*clb.ClusterResource
159+
160+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
161+
result, e := service.DescribeClbClusterResourcesByFilter(ctx, paramMap)
162+
if e != nil {
163+
return retryError(e)
164+
}
165+
clusterResourceSet = result
166+
return nil
167+
})
168+
if err != nil {
169+
return err
170+
}
171+
172+
ids := make([]string, 0, len(clusterResourceSet))
173+
tmpList := make([]map[string]interface{}, 0, len(clusterResourceSet))
174+
175+
if clusterResourceSet != nil {
176+
for _, clusterResource := range clusterResourceSet {
177+
clusterResourceMap := map[string]interface{}{}
178+
179+
if clusterResource.ClusterId != nil {
180+
clusterResourceMap["cluster_id"] = clusterResource.ClusterId
181+
}
182+
183+
if clusterResource.Vip != nil {
184+
clusterResourceMap["vip"] = clusterResource.Vip
185+
}
186+
187+
if clusterResource.LoadBalancerId != nil {
188+
clusterResourceMap["load_balancer_id"] = clusterResource.LoadBalancerId
189+
}
190+
191+
if clusterResource.Idle != nil {
192+
clusterResourceMap["idle"] = clusterResource.Idle
193+
}
194+
195+
if clusterResource.ClusterName != nil {
196+
clusterResourceMap["cluster_name"] = clusterResource.ClusterName
197+
}
198+
199+
if clusterResource.Isp != nil {
200+
clusterResourceMap["isp"] = clusterResource.Isp
201+
}
202+
203+
if clusterResource.ClustersZone != nil {
204+
clustersZoneMap := map[string]interface{}{}
205+
206+
if clusterResource.ClustersZone.MasterZone != nil {
207+
clustersZoneMap["master_zone"] = clusterResource.ClustersZone.MasterZone
208+
}
209+
210+
if clusterResource.ClustersZone.SlaveZone != nil {
211+
clustersZoneMap["slave_zone"] = clusterResource.ClustersZone.SlaveZone
212+
}
213+
214+
clusterResourceMap["clusters_zone"] = []interface{}{clustersZoneMap}
215+
}
216+
217+
ids = append(ids, *clusterResource.ClusterId)
218+
tmpList = append(tmpList, clusterResourceMap)
219+
}
220+
221+
_ = d.Set("cluster_resource_set", tmpList)
222+
}
223+
224+
d.SetId(helper.DataResourceIdsHash(ids))
225+
output, ok := d.GetOk("result_output_file")
226+
if ok && output.(string) != "" {
227+
if e := writeToFile(output.(string), tmpList); e != nil {
228+
return e
229+
}
230+
}
231+
return nil
232+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
func TestAccTencentCloudClbClusterResourcesDataSource_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: testAccClbClusterResourcesDataSource,
19+
Check: resource.ComposeTestCheckFunc(testAccCheckTencentCloudDataSourceID("data.tencentcloud_clb_cluster_resources.cluster_resources")),
20+
},
21+
},
22+
})
23+
}
24+
25+
const testAccClbClusterResourcesDataSource = `
26+
27+
data "tencentcloud_clb_cluster_resources" "cluster_resources" {
28+
filters {
29+
name = "idle"
30+
values = ["True"]
31+
}
32+
}
33+
34+
`

0 commit comments

Comments
 (0)