@@ -1381,20 +1381,40 @@ func (me *VpcService) DeleteSecurityGroup(ctx context.Context, id string) error
13811381 return nil
13821382}
13831383
1384+ func chunkIDs (ids []string , chunkSize int ) [][]string {
1385+ var chunks [][]string
1386+ for i := 0 ; i < len (ids ); i += chunkSize {
1387+ end := i + chunkSize
1388+ if end > len (ids ) {
1389+ end = len (ids )
1390+ }
1391+ chunks = append (chunks , ids [i :end ])
1392+ }
1393+ return chunks
1394+ }
1395+
13841396func (me * VpcService ) DescribeSecurityGroupsAssociate (ctx context.Context , ids []string ) ([]* vpc.SecurityGroupAssociationStatistics , error ) {
13851397 logId := tccommon .GetLogId (ctx )
13861398
1387- request := vpc .NewDescribeSecurityGroupAssociationStatisticsRequest ()
1388- request .SecurityGroupIds = common .StringPtrs (ids )
1389- ratelimit .Check (request .GetAction ())
1390- response , err := me .client .UseVpcClient ().DescribeSecurityGroupAssociationStatistics (request )
1391- if err != nil {
1392- log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%v]" ,
1393- logId , request .GetAction (), request .ToJsonString (), err )
1394- return nil , err
1399+ idChunks := chunkIDs (ids , 50 )
1400+
1401+ var allAssociationStatistics []* vpc.SecurityGroupAssociationStatistics
1402+
1403+ for _ , chunk := range idChunks {
1404+ request := vpc .NewDescribeSecurityGroupAssociationStatisticsRequest ()
1405+ request .SecurityGroupIds = common .StringPtrs (chunk )
1406+ ratelimit .Check (request .GetAction ())
1407+ response , err := me .client .UseVpcClient ().DescribeSecurityGroupAssociationStatistics (request )
1408+ if err != nil {
1409+ log .Printf ("[CRITAL]%s api[%s] fail, request body [%s], reason[%v]" ,
1410+ logId , request .GetAction (), request .ToJsonString (), err )
1411+ return nil , err
1412+ }
1413+
1414+ allAssociationStatistics = append (allAssociationStatistics , response .Response .SecurityGroupAssociationStatisticsSet ... )
13951415 }
13961416
1397- return response . Response . SecurityGroupAssociationStatisticsSet , nil
1417+ return allAssociationStatistics , nil
13981418}
13991419
14001420// Deprecated: the redundant type struct cause cause unnecessary mental burden, use sdk request directly
0 commit comments