X-LightYear opened a new pull request, #7339:
URL: https://github.com/apache/rocketmq-dashboard/pull/7339

   ## Summary
   
   - use native cloud API pagination for Aliyun and Tencent consumer-group pages
   - avoid enumerating and enriching the complete inventory for one page request
   - preserve search and fallback behavior when a provider response has no 
usable total
   
   ## Root cause
   
   `MetadataService.listConsumerGroupsPage` delegates to the provider SPI. 
Aliyun and Tencent did
   not override `InstanceProvider.listConsumerGroupsPage`, so the default 
implementation called the
   full `listConsumerGroups` path and sliced the result in memory. Tencent's 
full path also performs
   per-group detail enrichment.
   
   ## Fix
   
   - Aliyun sends `pageNumber`, `pageSize`, and the existing search filter to 
`ListConsumerGroups`.
   - Tencent sends `offset` and `limit` to `DescribeConsumerGroupList` for the 
unfiltered page path.
   - Search and responses without a usable total retain the existing fallback 
semantics.
   - Returned cloud totals are preserved in the existing `PageResult` contract.
   
   ## Testing
   
   - Pre-fix baseline tests failed deterministically:
     - Aliyun: expected total `201`, actual total `1` and no page item.
     - Tencent: `BusinessException: Tencent Cloud returned an incomplete 
consumer group page`.
   - Post-fix `AliyunInstanceProviderTest,TencentInstanceProviderTest`: 132 
passed.
   - Post-fix provider plus `MetadataServiceTest`: passed.
   - Checkstyle: 0 violations.
   - Server package reached the existing Windows `python3` binary-license gate 
(exit 9009); Java
     compilation and packaging completed before that environment-only failure.
   
   Fixes #7338
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to