Skip to content

Commit 23a0cb1

Browse files
authored
feat(ccn): [120224824] Add new data source tencentcloud_ccn_route_table_input_policies (#2910)
* add * add * add
1 parent 474082e commit 23a0cb1

13 files changed

+390
-2
lines changed

.changelog/2910.txt

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

tencentcloud/connectivity/client.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ type TencentCloudClient struct {
217217
sslv20191205Conn *sslCertificate.Client
218218
postgresv20170312Conn *postgre.Client
219219
cfwv20190904Conn *cfw.Client
220+
ccnv20170312Conn *vpc.Client
220221
}
221222

222223
// NewClientProfile returns a new ClientProfile
@@ -1886,3 +1887,16 @@ func (me *TencentCloudClient) UseCfwV20190904Client() *cfw.Client {
18861887

18871888
return me.cfwv20190904Conn
18881889
}
1890+
1891+
// UseCcnV20170312Client return CCN client for service
1892+
func (me *TencentCloudClient) UseCcnV20170312Client() *vpc.Client {
1893+
if me.ccnv20170312Conn != nil {
1894+
return me.ccnv20170312Conn
1895+
}
1896+
cpf := me.NewClientProfile(300)
1897+
cpf.Language = "zh-CN"
1898+
me.ccnv20170312Conn, _ = vpc.NewClient(me.Credential, me.Region, cpf)
1899+
me.ccnv20170312Conn.WithHttpTransport(&LogRoundTripper{})
1900+
1901+
return me.ccnv20170312Conn
1902+
}

tencentcloud/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ func Provider() *schema.Provider {
457457
"tencentcloud_ccn_tenant_instances": ccn.DataSourceTencentCloudCcnTenantInstance(),
458458
"tencentcloud_ccn_cross_border_flow_monitor": ccn.DataSourceTencentCloudCcnCrossBorderFlowMonitor(),
459459
"tencentcloud_ccn_cross_border_region_bandwidth_limits": ccn.DataSourceTencentCloudCcnCrossBorderRegionBandwidthLimits(),
460+
"tencentcloud_ccn_route_table_input_policies": ccn.DataSourceTencentCloudCcnRouteTableInputPolicies(),
460461
"tencentcloud_dc_instances": dc.DataSourceTencentCloudDcInstances(),
461462
"tencentcloud_dc_access_points": dc.DataSourceTencentCloudDcAccessPoints(),
462463
"tencentcloud_dc_internet_address_quota": dc.DataSourceTencentCloudDcInternetAddressQuota(),

tencentcloud/provider.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,7 @@ Cloud Connect Network(CCN)
312312
tencentcloud_ccn_cross_border_flow_monitor
313313
tencentcloud_ccn_cross_border_region_bandwidth_limits
314314
tencentcloud_ccn_routes
315+
tencentcloud_ccn_route_table_input_policies
315316

316317
Resource
317318
tencentcloud_ccn

tencentcloud/services/ccn/data_source_tc_ccn_route_table_input_policies.go

Lines changed: 243 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Use this data source to query CCN route table input policies.
2+
3+
Example Usage
4+
5+
```hcl
6+
data "tencentcloud_ccn_route_table_input_policies" "example" {
7+
ccn_id = "ccn-06jek8tf"
8+
route_table_id = "ccnrtb-4jv5ltb9"
9+
}
10+
```
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package ccn
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package ccn_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
tcacctest "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/acctest"
8+
)
9+
10+
func TestAccTencentCloudCcnRouteTableInputPoliciesDataSource_basic(t *testing.T) {
11+
t.Parallel()
12+
resource.Test(t, resource.TestCase{
13+
PreCheck: func() {
14+
tcacctest.AccPreCheck(t)
15+
},
16+
Providers: tcacctest.AccProviders,
17+
Steps: []resource.TestStep{{
18+
Config: testAccCcnRouteTableInputPoliciesDataSource,
19+
Check: resource.ComposeTestCheckFunc(
20+
tcacctest.AccCheckTencentCloudDataSourceID("data.tencentcloud_ccn_route_table_input_policies.example"),
21+
resource.TestCheckResourceAttrSet("data.tencentcloud_ccn_route_table_input_policies.example", "ccn_id"),
22+
resource.TestCheckResourceAttrSet("data.tencentcloud_ccn_route_table_input_policies.example", "route_table_id"),
23+
),
24+
}},
25+
})
26+
}
27+
28+
const testAccCcnRouteTableInputPoliciesDataSource = `
29+
data "tencentcloud_ccn_route_table_input_policies" "example" {
30+
ccn_id = "ccn-06jek8tf"
31+
route_table_id = "ccnrtb-4jv5ltb9"
32+
}
33+
`

tencentcloud/services/ccn/resource_tc_ccn_routes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Example Usage
55
```hcl
66
resource "tencentcloud_ccn_routes" "example" {
77
ccn_id = "ccn-gr7nynbd"
8-
route_id = "ccnrtb-jpf7bzn3"
8+
route_id = "ccnr-5uhewx1s"
99
switch = "off"
1010
}
1111
```

tencentcloud/services/ccn/service_tencentcloud_ccn.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,3 +1340,44 @@ func (me *VpcService) DescribeTenantCcnByFilter(ctx context.Context, param map[s
13401340

13411341
return
13421342
}
1343+
1344+
func (me *VpcService) DescribeCcnRouteTableInputPoliciesByFilter(ctx context.Context, param map[string]interface{}) (ret []*vpc.CcnRouteTableInputPolicys, errRet error) {
1345+
var (
1346+
logId = tccommon.GetLogId(ctx)
1347+
request = vpc.NewDescribeCcnRouteTableInputPolicysRequest()
1348+
)
1349+
1350+
defer func() {
1351+
if errRet != nil {
1352+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error())
1353+
}
1354+
}()
1355+
1356+
for k, v := range param {
1357+
if k == "CcnId" {
1358+
request.CcnId = v.(*string)
1359+
}
1360+
if k == "RouteTableId" {
1361+
request.RouteTableId = v.(*string)
1362+
}
1363+
if k == "PolicyVersion" {
1364+
request.PolicyVersion = v.(*uint64)
1365+
}
1366+
}
1367+
1368+
ratelimit.Check(request.GetAction())
1369+
1370+
response, err := me.client.UseCcnV20170312Client().DescribeCcnRouteTableInputPolicys(request)
1371+
if err != nil {
1372+
errRet = err
1373+
return
1374+
}
1375+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
1376+
1377+
if len(response.Response.PolicySet) < 1 {
1378+
return
1379+
}
1380+
1381+
ret = response.Response.PolicySet
1382+
return
1383+
}

0 commit comments

Comments
 (0)