Skip to content

Commit 92c2e1a

Browse files
authored
Feat/vpc peer connect (#2415)
* feat: tencentcloud_vpc_peer_connect_manager * feat: tencentcloud_vpc_peer_connect_manager * feat: doc * feat: doc * feat: tencentcloud_vpc_peer_connect_accecpt_or_reject * feat: changelog * feat: changelog * feat: operation * feat: doc * feat: changelog * feat: changelog * feat: changelog
1 parent 4b0a358 commit 92c2e1a

16 files changed

+879
-1
lines changed

.changelog/2415.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
```release-note:new-resource
2+
tencentcloud_vpc_peer_connect_manager
3+
```
4+
5+
```release-note:new-resource
6+
tencentcloud_vpc_peer_connect_accept_operation
7+
```
8+
9+
```release-note:new-resource
10+
tencentcloud_vpc_peer_connect_reject_operation
11+
```

tencentcloud/common/common.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,3 +560,47 @@ func BuildStateChangeConf(pending, target []string, timeout, delay time.Duration
560560
MinTimeout: 3 * time.Second,
561561
}
562562
}
563+
564+
func ShortRegionNameParse(shortRegion string) string {
565+
regionMap := map[string]string{
566+
"gz": "ap-guangzhou",
567+
"szjr": "ap-shenzhen-fsi",
568+
"gzopen": "ap-guangzhou-open",
569+
"szx": "ap-shenzhen",
570+
"qy": "ap-qingyuan",
571+
"szsycft": "ap-shenzhen-sycft",
572+
"sh": "ap-shanghai",
573+
"shjr": "ap-shanghai-fsi",
574+
"jnec": "ap-jinan-ec",
575+
"hzec": "ap-hangzhou-ec",
576+
"nj": "ap-nanjing",
577+
"fzec": "ap-fuzhou-ec",
578+
"hfeec": "ap-hefei-ec",
579+
"bj": "ap-beijing",
580+
"tsn": "ap-tianjin",
581+
"bjjr": "ap-beijing-fsi",
582+
"sjwec": "ap-shijiazhuang-ec",
583+
"whec": "ap-wuhan-ec",
584+
"csec": "ap-changsha-ec",
585+
"cgoec": "ap-zhengzhou-ec",
586+
"cd": "ap-chengdu",
587+
"cq": "ap-chongqing",
588+
"xiyec": "ap-xian-ec",
589+
"sheec": "ap-shenyang-ec",
590+
"hk": "ap-hongkong",
591+
"tpe": "ap-taipei",
592+
"kr": "ap-seoul",
593+
"jp": "ap-tokyo",
594+
"sg": "ap-singapore",
595+
"th": "ap-bangkok",
596+
"jkt": "ap-jakarta",
597+
"usw": "na-siliconvalley",
598+
"de": "eu-frankfurt",
599+
"ru": "eu-moscow",
600+
"in": "ap-mumbai",
601+
"use": "na-ashburn",
602+
"sao": "sa-saopaulo",
603+
"ca": "na-toronto",
604+
}
605+
return regionMap[shortRegion]
606+
}

tencentcloud/provider.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,6 +1879,9 @@ func Provider() *schema.Provider {
18791879
"tencentcloud_clickhouse_keyval_config": cdwch.ResourceTencentCloudClickhouseKeyvalConfig(),
18801880
"tencentcloud_clickhouse_xml_config": cdwch.ResourceTencentCloudClickhouseXmlConfig(),
18811881
"tencentcloud_clb_target_group_attachments": clb.ResourceTencentCloudClbTargetGroupAttachments(),
1882+
"tencentcloud_vpc_peer_connect_manager": resourceTencentCloudVpcPeerConnectManager(),
1883+
"tencentcloud_vpc_peer_connect_accept_operation": resourceTencentCloudVpcPeerConnectAcceptOperation(),
1884+
"tencentcloud_vpc_peer_connect_reject_operation": resourceTencentCloudVpcPeerConnectRejectOperation(),
18821885
},
18831886

18841887
ConfigureFunc: providerConfigure,

tencentcloud/provider.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1203,7 +1203,10 @@ Virtual Private Cloud(VPC)
12031203
tencentcloud_vpc_ipv6_subnet_cidr_block
12041204
tencentcloud_vpc_ipv6_eni_address
12051205
tencentcloud_vpc_local_gateway
1206-
tencentcloud_vpc_resume_snapshot_instance
1206+
tencentcloud_vpc_resume_snapshot_instance
1207+
tencentcloud_vpc_peer_connect_manager
1208+
tencentcloud_vpc_peer_connect_accept_operation
1209+
tencentcloud_vpc_peer_connect_reject_operation
12071210
tencentcloud_subnet
12081211
tencentcloud_security_group
12091212
tencentcloud_security_group_rule
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package tencentcloud
2+
3+
import (
4+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
5+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
6+
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
7+
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
8+
"log"
9+
)
10+
11+
func resourceTencentCloudVpcPeerConnectAcceptOperation() *schema.Resource {
12+
return &schema.Resource{
13+
Create: resourceTencentCloudVpcPeerConnectAcceptOperationCreate,
14+
Read: resourceTencentCloudVpcPeerConnectAcceptOperationRead,
15+
Delete: resourceTencentCloudVpcPeerConnectAcceptOperationDelete,
16+
Schema: map[string]*schema.Schema{
17+
"peering_connection_id": {
18+
Required: true,
19+
ForceNew: true,
20+
Type: schema.TypeString,
21+
Description: "Peer connection unique ID.",
22+
},
23+
},
24+
}
25+
}
26+
27+
func resourceTencentCloudVpcPeerConnectAcceptOperationCreate(d *schema.ResourceData, meta interface{}) error {
28+
defer logElapsed("resource.tencentcloud_vpc_peer_connect_accept_operation.create")()
29+
defer inconsistentCheck(d, meta)()
30+
31+
logId := getLogId(contextNil)
32+
33+
var (
34+
request = vpc.NewAcceptVpcPeeringConnectionRequest()
35+
peeringConnectionId string
36+
)
37+
if v, ok := d.GetOk("peering_connection_id"); ok {
38+
peeringConnectionId = v.(string)
39+
request.PeeringConnectionId = helper.String(v.(string))
40+
}
41+
42+
err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
43+
result, e := meta.(*TencentCloudClient).apiV3Conn.UseVpcClient().AcceptVpcPeeringConnection(request)
44+
if e != nil {
45+
return retryError(e)
46+
} else {
47+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
48+
}
49+
return nil
50+
})
51+
if err != nil {
52+
log.Printf("[CRITAL]%s operate vpc PeerConnectAcceptOperation failed, reason:%+v", logId, err)
53+
return err
54+
}
55+
56+
d.SetId(peeringConnectionId)
57+
58+
return resourceTencentCloudVpcPeerConnectAcceptOperationRead(d, meta)
59+
}
60+
61+
func resourceTencentCloudVpcPeerConnectAcceptOperationRead(d *schema.ResourceData, meta interface{}) error {
62+
defer logElapsed("resource.tencentcloud_vpc_peer_connect_accept_operation.read")()
63+
defer inconsistentCheck(d, meta)()
64+
65+
return nil
66+
}
67+
68+
func resourceTencentCloudVpcPeerConnectAcceptOperationDelete(d *schema.ResourceData, meta interface{}) error {
69+
defer logElapsed("resource.tencentcloud_vpc_peer_connect_accept_operation.delete")()
70+
defer inconsistentCheck(d, meta)()
71+
72+
return nil
73+
}

0 commit comments

Comments
 (0)