Frun1na opened a new pull request, #5652:
URL: https://github.com/apache/rocketmq-dashboard/pull/5652

   ### Which Issue(s) This PR Fixes
   
   - Fixes #5651
   
   ### Brief Description
   
   `rmq.group.update` is an upsert: it calls `updateConsumerGroup` when the 
group already exists. The interface default answered that call with 
`createConsumerGroup`, and only `ApacheInstanceProvider` overrides it — so on 
Aliyun and Tencent instances, "update" reached the vendor's create API. That is 
neither an update nor an honest failure: the vendor either rejects the call 
because the group exists, or reports success while the configuration is 
untouched.
   
   The default now rejects the request with the same 501 the other 
cloud-unsupported consumer-group operations already return ("Consumer group 
settings are not supported for cloud instances", `MetadataService`), and the 
javadoc states why a provider must not fall back to creation. 
`ApacheInstanceProvider` keeps its real update path unchanged; 
`importConsumerGroup` keeps its documented create fallback, which is a 
different operation.
   
   Real cloud update support is deliberately out of scope here: the Aliyun SDK 
has `UpdateConsumerGroupRequest` and the Tencent SDK has 
`ModifyConsumerGroupRequest`, but wiring them up cannot be verified without 
live cloud accounts. If maintainers prefer that direction, it can build on this 
change — the interface contract is what it fixes.
   
   ### How Did You Test This Change?
   
   ```
   $ cd server && mvn -B -ntp test -Dtest='InstanceProviderTest' -DforkCount=1
   Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
   ```
   
   The new test fails on the current code (the default calls 
`createConsumerGroup` and returns without throwing):
   
   ```
   $ git stash server/.../InstanceProvider.java   # production file only
   $ mvn -B -ntp test 
-Dtest='InstanceProviderTest#updateConsumerGroupShouldRejectProvidersThatCannotUpdateTest'
 -DforkCount=1
   [ERROR] 
InstanceProviderTest.updateConsumerGroupShouldRejectProvidersThatCannotUpdateTest
   Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
   ```
   
   The test asserts both halves of the contract: the request is rejected with 
`BusinessException` code 501, and `createConsumerGroup` is never invoked.
   
   ### Checklist
   
   - [x] One coherent change; unrelated modifications are not bundled in
   - [x] Commit subject follows Conventional Commits (`feat:` / `fix:` / 
`refactor:` / `chore:` / `docs:` / `perf:`)
   - [x] Tests added or updated for non-trivial changes, test methods named 
`...Test`
   - [ ] New UI text has both Chinese and English entries under `web/src/i18n/`
   - [ ] Architecture constraints stay green (`mvn test` runs the ArchUnit 
checks)
   - [x] New source files carry the ASF license header
   - [ ] Documentation touched where behaviour changed (README / `docs/` / 
in-app help)
   


-- 
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