Skip to content

Commit 09125c6

Browse files
authored
Merge pull request #709 from tencentcloudstack/feat/vpc-default-route-table
feat: vpc - support default route table
2 parents dbd9fab + df05d1d commit 09125c6

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

tencentcloud/data_source_tc_vpc_route_tables.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ data "tencentcloud_vpc_route_tables" "name_instances" {
3030
name = tencentcloud_route_table.route_table.name
3131
}
3232
33+
data "tencentcloud_vpc_route_tables" "vpc_default_instance" {
34+
vpc_id = tencentcloud_vpc.foo.id
35+
association_main = true
36+
}
37+
3338
data "tencentcloud_vpc_route_tables" "tags_instances" {
3439
tags = tencentcloud_route_table.route_table.tags
3540
}

tencentcloud/data_source_tc_vpc_route_tables_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ func TestAccDataSourceTencentCloudVpcV3RouteTables_basic(t *testing.T) {
5252
testAccCheckTencentCloudDataSourceID("data.tencentcloud_vpc_route_tables.vpc_instances"),
5353
resource.TestCheckResourceAttrSet("data.tencentcloud_vpc_route_tables.vpc_instances", "instance_list.#"),
5454
resource.TestCheckResourceAttrSet("data.tencentcloud_vpc_route_tables.tags_instances", "instance_list.0.vpc_id"),
55+
56+
// vpc_id && association_main filter
57+
testAccCheckTencentCloudDataSourceID("data.tencentcloud_vpc_route_tables.vpc_default_instance"),
58+
resource.TestCheckResourceAttr("data.tencentcloud_vpc_route_tables.vpc_default_instance", "instance_list.#", "1"),
59+
resource.TestCheckResourceAttrSet("data.tencentcloud_vpc_route_tables.vpc_default_instance", "instance_list.0.vpc_id"),
5560
),
5661
},
5762
},
@@ -89,6 +94,11 @@ data "tencentcloud_vpc_route_tables" "vpc_instances" {
8994
vpc_id = tencentcloud_vpc.foo.id
9095
}
9196
97+
data "tencentcloud_vpc_route_tables" "vpc_default_instance" {
98+
vpc_id = tencentcloud_vpc.foo.id
99+
association_main = true
100+
}
101+
92102
data "tencentcloud_vpc_route_tables" "tags_instances" {
93103
tags = tencentcloud_route_table.route_table.tags
94104
}

tencentcloud/resource_tc_vpc.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ func resourceTencentCloudVpcInstance() *schema.Resource {
9595
Computed: true,
9696
Description: "Creation time of VPC.",
9797
},
98+
"default_route_table_id": {
99+
Type: schema.TypeString,
100+
Computed: true,
101+
Description: "Default route table id, which created automatically after VPC create.",
102+
},
98103
},
99104
}
100105
}
@@ -186,6 +191,20 @@ func resourceTencentCloudVpcInstanceRead(d *schema.ResourceData, meta interface{
186191
return resource.NonRetryableError(errRet)
187192
}
188193

194+
routeTables, err := service.DescribeRouteTables(ctx, "", "", d.Id(), nil, helper.Bool(true), "")
195+
196+
if err != nil {
197+
log.Printf("[WARN] Describe default Route Table error: %s", err.Error())
198+
}
199+
200+
for i := range routeTables {
201+
routeTable := routeTables[i]
202+
if routeTable.isDefault {
203+
_ = d.Set("default_route_table_id", routeTable.routeTableId)
204+
break
205+
}
206+
}
207+
189208
tags := make(map[string]string, len(info.tags))
190209
for _, tag := range info.tags {
191210
if tag.Key == nil {
@@ -198,6 +217,7 @@ func resourceTencentCloudVpcInstanceRead(d *schema.ResourceData, meta interface{
198217
tags[*tag.Key] = *tag.Value
199218
}
200219

220+
201221
_ = d.Set("name", info.name)
202222
_ = d.Set("cidr_block", info.cidr)
203223
_ = d.Set("dns_servers", info.dnsServers)

tencentcloud/resource_tc_vpc_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func TestAccTencentCloudVpcV3Basic(t *testing.T) {
2424
resource.TestCheckResourceAttr("tencentcloud_vpc.foo", "cidr_block", defaultVpcCidr),
2525
resource.TestCheckResourceAttr("tencentcloud_vpc.foo", "name", defaultInsName),
2626
resource.TestCheckResourceAttr("tencentcloud_vpc.foo", "is_multicast", "true"),
27+
resource.TestCheckResourceAttrSet("tencentcloud_vpc.foo", "default_route_table_id"),
2728
),
2829
},
2930
{

0 commit comments

Comments
 (0)