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]