diff --git a/.changelog/2877.txt b/.changelog/2877.txt new file mode 100644 index 0000000000..d8bf167a48 --- /dev/null +++ b/.changelog/2877.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_ccn_routes: fix ccn routes read +``` \ No newline at end of file diff --git a/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go b/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go index 4cc6c50555..d3f71f2bd0 100644 --- a/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go +++ b/tencentcloud/services/ccn/resource_tc_ccn_routes_test.go @@ -39,8 +39,8 @@ func TestAccTencentCloudCcnRoutesResource_basic(t *testing.T) { const testAccVpcCcnRoutes = ` resource "tencentcloud_ccn_routes" "ccn_routes" { - ccn_id = "ccn-39lqkygf" - route_id = "ccnr-3o0dfyuw" + ccn_id = "ccn-0bbkedsb" + route_id = "ccnr-9sqye2qg" switch = "off" } @@ -49,8 +49,8 @@ resource "tencentcloud_ccn_routes" "ccn_routes" { const testAccVpcCcnRoutesUpdate = ` resource "tencentcloud_ccn_routes" "ccn_routes" { - ccn_id = "ccn-39lqkygf" - route_id = "ccnr-3o0dfyuw" + ccn_id = "ccn-0bbkedsb" + route_id = "ccnr-9sqye2qg" switch = "on" } diff --git a/tencentcloud/services/ccn/service_tencentcloud_ccn.go b/tencentcloud/services/ccn/service_tencentcloud_ccn.go index 72892e5915..7573dd769b 100644 --- a/tencentcloud/services/ccn/service_tencentcloud_ccn.go +++ b/tencentcloud/services/ccn/service_tencentcloud_ccn.go @@ -1260,7 +1260,12 @@ func (me *VpcService) DescribeVpcCcnRoutesById(ctx context.Context, ccnId string request := vpc.NewDescribeCcnRoutesRequest() request.CcnId = &ccnId - + request.Filters = []*vpc.Filter{ + { + Name: helper.String("route-id"), + Values: []*string{helper.String(routeId)}, + }, + } defer func() { if errRet != nil { log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) @@ -1276,11 +1281,8 @@ func (me *VpcService) DescribeVpcCcnRoutesById(ctx context.Context, ccnId string } log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - for _, route := range response.Response.RouteSet { - if *route.RouteId == routeId { - ccnRoutes = route - return - } + if response != nil && response.Response != nil && len(response.Response.RouteSet) > 0 { + ccnRoutes = response.Response.RouteSet[0] } return diff --git a/tencentcloud/services/dcg/service_tencentcloud_vpc.go b/tencentcloud/services/dcg/service_tencentcloud_vpc.go index e4fcd27c23..93951601fb 100644 --- a/tencentcloud/services/dcg/service_tencentcloud_vpc.go +++ b/tencentcloud/services/dcg/service_tencentcloud_vpc.go @@ -5854,37 +5854,6 @@ func (me *VpcService) DescribeVpcBandwidthPackageByEip(ctx context.Context, eipI return } -func (me *VpcService) DescribeVpcCcnRoutesById(ctx context.Context, ccnId string, routeId string) (ccnRoutes *vpc.CcnRoute, errRet error) { - logId := tccommon.GetLogId(ctx) - - request := vpc.NewDescribeCcnRoutesRequest() - request.CcnId = &ccnId - - defer func() { - if errRet != nil { - log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) - } - }() - - ratelimit.Check(request.GetAction()) - - response, err := me.client.UseVpcClient().DescribeCcnRoutes(request) - if err != nil { - errRet = err - return - } - log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) - - for _, route := range response.Response.RouteSet { - if *route.RouteId == routeId { - ccnRoutes = route - return - } - } - - return -} - func (me *VpcService) DescribeCcnCrossBorderComplianceByFilter(ctx context.Context, param map[string]interface{}) (crossBorderCompliance []*vpc.CrossBorderCompliance, errRet error) { var ( logId = tccommon.GetLogId(ctx)