Skip to content

Commit 637eec4

Browse files
feat/support-tdmq-data-source (#1844)
* feat/support-tdmq-data-source * feat/support-tdmq-data-source * feat/support-tdmq-data-source * feat/support-tdmq-data-source * remove dot --------- Co-authored-by: hellertang <hellertang@tencent.com>
1 parent c291c9d commit 637eec4

30 files changed

+2887
-23
lines changed

.changelog/1844.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
```release-note:new-data-source
2+
tencentcloud_tdmq_environment_attributes
3+
```
4+
5+
```release-note:new-data-source
6+
tencentcloud_tdmq_publisher_summary
7+
```
8+
9+
```release-note:new-data-source
10+
tencentcloud_tdmq_publishers
11+
```
12+
13+
```release-note:new-data-source
14+
tencentcloud_tdmq_rabbitmq_node_list
15+
```
16+
17+
```release-note:new-data-source
18+
tencentcloud_tdmq_rabbitmq_vip_instance
19+
```
20+
21+
```release-note:new-data-source
22+
tencentcloud_tdmq_vip_instance
23+
```

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ require (
3838
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
41-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667
41+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.670
4242
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624
4343
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589
4444
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cynosdb v1.0.572
@@ -78,7 +78,7 @@ require (
7878
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcm v1.0.547
7979
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr v1.0.593
8080
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdcpg v1.0.533
81-
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667
81+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.670
8282
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578
8383
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529
8484
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tke v1.0.644

go.sum

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,8 +847,11 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.661/go.mod
847847
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.662/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
848848
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.663/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
849849
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.664/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
850+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.666/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
850851
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667 h1:jOkGU6JrL/Ywd5qRBwpP9jkKzYuxODgnAy0eN+sMZKw=
851852
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.667/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
853+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.670 h1:R9CG671JplBwoVLbOHeSvgBC5tKeVp/dk7edwWqVEoA=
854+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.670/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
852855
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624 h1:nEZqsoqt1pEoaP9JjkHQy3/H00suCfzlHW1qOm2nYD8=
853856
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.624/go.mod h1:+TXSVyeKwt1IhZRqKPbTREteBcP+K07Q846/ilNzLWA=
854857
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cwp v1.0.589 h1:LZihgirMH0vsaGScYexxwY0fTss9vHaSZs/YOQUVESg=
@@ -932,6 +935,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564 h1:YO2DCc
932935
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.564/go.mod h1:7ZZ31onSvtbcR8XJWMx2kAhgNDuX/TvyWpQgJW1NqlQ=
933936
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667 h1:ShEqXfoo1HnGJbla+KbOwAoy3r3oZUQ0lhN3PuAvfEA=
934937
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.667/go.mod h1:n7nasKXwJ1N7XjYvZwwMZa5ikl+Ay72sV8DOc4f1XS0=
938+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.670 h1:8HqKhy7wbSsgacBs0iYWh/A0/zvCPzKPS++olMaf9EQ=
939+
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq v1.0.670/go.mod h1:2K+biNqsIm4z1q8Op13WPWw6J/SnvimIqEllSw+aUQ8=
935940
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578 h1:vBpQhUroO+FAslUmsDWGi8nvczsqZBWVgQwlnyT0Aj8=
936941
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tem v1.0.578/go.mod h1:UlojGQh/9wb7/uXPNi7PvMral1CNAskVDNgqJEV83l0=
937942
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/teo v1.0.529 h1:vWUgseUvHs1fW/Ok+x3ld9UIhrYRNO9Yr8ccX8wmkkY=

tencentcloud/data_source_tc_cam_group_policy_attachments.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ func dataSourceTencentCloudCamGroupPolicyAttachments() *schema.Resource {
4545
Description: "ID of CAM policy to be queried.",
4646
},
4747
"create_mode": {
48-
Type: schema.TypeInt,
49-
Optional: true,
50-
ValidateFunc: validateAllowedIntValue([]int{1, 2}),
51-
Description: "Mode of creation of the CAM user policy attachment. 1 means the cam policy attachment is created by production, and the others indicate syntax strategy ways.",
48+
Type: schema.TypeInt,
49+
Optional: true,
50+
51+
Description: "Mode of creation of the CAM user policy attachment. 1 means the cam policy attachment is created by production, and the others indicate syntax strategy ways.",
5252
},
5353
"policy_type": {
5454
Type: schema.TypeString,
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
/*
2+
Use this data source to query detailed information of tdmq environment_attributes
3+
4+
Example Usage
5+
6+
```hcl
7+
data "tencentcloud_tdmq_environment_attributes" "environment_attributes" {
8+
environment_id = "keep-ns"
9+
cluster_id = "pulsar-9n95ax58b9vn"
10+
}
11+
```
12+
*/
13+
package tencentcloud
14+
15+
import (
16+
"context"
17+
18+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
19+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
20+
tdmq "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tdmq/v20200217"
21+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
22+
)
23+
24+
func dataSourceTencentCloudTdmqEnvironmentAttributes() *schema.Resource {
25+
return &schema.Resource{
26+
Read: dataSourceTencentCloudTdmqEnvironmentAttributesRead,
27+
Schema: map[string]*schema.Schema{
28+
"environment_id": {
29+
Required: true,
30+
Type: schema.TypeString,
31+
Description: "Environment (namespace) name.",
32+
},
33+
"cluster_id": {
34+
Optional: true,
35+
Type: schema.TypeString,
36+
Description: "ID of the Pulsar cluster.",
37+
},
38+
// computed
39+
"msg_ttl": {
40+
Computed: true,
41+
Type: schema.TypeInt,
42+
Description: "Expiration time of unconsumed messages, unit second, maximum 1296000 (15 days).",
43+
},
44+
"rate_in_byte": {
45+
Computed: true,
46+
Type: schema.TypeInt,
47+
Description: "Consumption rate limit, unit byte/second, 0 unlimited rate.",
48+
},
49+
"rate_in_size": {
50+
Computed: true,
51+
Type: schema.TypeInt,
52+
Description: "Consumption rate limit, unit number/second, 0 is unlimited.",
53+
},
54+
"retention_hours": {
55+
Computed: true,
56+
Type: schema.TypeInt,
57+
Description: "Consumed message storage policy, unit hour, 0 will be deleted immediately after consumption.",
58+
},
59+
"retention_size": {
60+
Computed: true,
61+
Type: schema.TypeInt,
62+
Description: "Consumed message storage strategy, unit G, 0 Delete immediately after consumption.",
63+
},
64+
"replicas": {
65+
Computed: true,
66+
Type: schema.TypeInt,
67+
Description: "Duplicate number.",
68+
},
69+
"remark": {
70+
Computed: true,
71+
Type: schema.TypeString,
72+
Description: "Remark.",
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 dataSourceTencentCloudTdmqEnvironmentAttributesRead(d *schema.ResourceData, meta interface{}) error {
84+
defer logElapsed("data_source.tencentcloud_tdmq_environment_attributes.read")()
85+
defer inconsistentCheck(d, meta)()
86+
87+
var (
88+
logId = getLogId(contextNil)
89+
ctx = context.WithValue(context.TODO(), logIdKey, logId)
90+
service = TdmqService{client: meta.(*TencentCloudClient).apiV3Conn}
91+
tdmqEnv *tdmq.DescribeEnvironmentAttributesResponseParams
92+
environmentId string
93+
clusterId string
94+
)
95+
96+
paramMap := make(map[string]interface{})
97+
if v, ok := d.GetOk("environment_id"); ok {
98+
paramMap["EnvironmentId"] = helper.String(v.(string))
99+
environmentId = v.(string)
100+
}
101+
102+
if v, ok := d.GetOk("cluster_id"); ok {
103+
paramMap["ClusterId"] = helper.String(v.(string))
104+
clusterId = v.(string)
105+
}
106+
107+
err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
108+
result, e := service.DescribeTdmqEnvironmentAttributesByFilter(ctx, paramMap)
109+
if e != nil {
110+
return retryError(e)
111+
}
112+
113+
tdmqEnv = result
114+
return nil
115+
})
116+
117+
if err != nil {
118+
return err
119+
}
120+
121+
ids := make([]string, 0)
122+
if tdmqEnv.EnvironmentId != nil {
123+
_ = d.Set("environment_id", tdmqEnv.EnvironmentId)
124+
}
125+
126+
if tdmqEnv.MsgTTL != nil {
127+
_ = d.Set("msg_ttl", tdmqEnv.MsgTTL)
128+
}
129+
130+
if tdmqEnv.RateInByte != nil {
131+
_ = d.Set("rate_in_byte", tdmqEnv.RateInByte)
132+
}
133+
134+
if tdmqEnv.RateInSize != nil {
135+
_ = d.Set("rate_in_size", tdmqEnv.RateInSize)
136+
}
137+
138+
if tdmqEnv.RetentionHours != nil {
139+
_ = d.Set("retention_hours", tdmqEnv.RetentionHours)
140+
}
141+
142+
if tdmqEnv.RetentionSize != nil {
143+
_ = d.Set("retention_size", tdmqEnv.RetentionSize)
144+
}
145+
146+
if tdmqEnv.Replicas != nil {
147+
_ = d.Set("replicas", tdmqEnv.Replicas)
148+
}
149+
150+
if tdmqEnv.Remark != nil {
151+
_ = d.Set("remark", tdmqEnv.Remark)
152+
}
153+
154+
ids = append(ids, environmentId)
155+
ids = append(ids, clusterId)
156+
d.SetId(helper.DataResourceIdsHash(ids))
157+
output, ok := d.GetOk("result_output_file")
158+
if ok && output.(string) != "" {
159+
if e := writeToFile(output.(string), d); e != nil {
160+
return e
161+
}
162+
}
163+
164+
return nil
165+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package tencentcloud
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
)
8+
9+
// go test -i; go test -test.run TestAccTencentCloudTdmqEnvironmentAttributesDataSource_basic -v
10+
func TestAccTencentCloudTdmqEnvironmentAttributesDataSource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
testAccPreCheck(t)
15+
},
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccTdmqEnvironmentAttributesDataSource,
20+
Check: resource.ComposeTestCheckFunc(
21+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_tdmq_environment_attributes.environment_attributes"),
22+
),
23+
},
24+
},
25+
})
26+
}
27+
28+
const testAccTdmqEnvironmentAttributesDataSource = `
29+
data "tencentcloud_tdmq_environment_attributes" "environment_attributes" {
30+
environment_id = "keep-ns"
31+
cluster_id = "pulsar-9n95ax58b9vn"
32+
}
33+
`

0 commit comments

Comments
 (0)