Build multi-destination replicationInfo per backend#6172
Conversation
Hello maeldonn,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
❌ 4 Tests Failed:
View the full list of 4 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
545c4b6 to
0ff3941
Compare
|
0ff3941 to
b98f98f
Compare
|
ConflictThere is a conflict between your branch Please resolve the conflict on the feature branch ( git fetch && \
git checkout origin/improvement/CLDSRV-888/crr-multi && \
git merge origin/development/9.4Resolve merge conflicts and commit git push origin HEAD:improvement/CLDSRV-888/crr-multi |
e9693df to
f98710c
Compare
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
Review by Claude Code |
f98710c to
a8a04b6
Compare
|
a8a04b6 to
e413e0b
Compare
|
e413e0b to
56ec2c4
Compare
56ec2c4 to
f3e8b07
Compare
|
19856b3 to
a1fd119
Compare
|
Match all enabled rules with the object's prefix (highest-priority wins on site collision) and stamp destination/role per CRR backend. Cloud backends get a bare entry — their bucket and credentials live in the location config. ACL replication uses per-backend `role` as the CRR marker so cloud backends keep their status. Legacy V1 and comma-separated `StorageClass` remain supported on read. Issue: CLDSRV-888
a1fd119 to
56b72f4
Compare
|
| } | ||
|
|
||
| const existing = objectMD.replicationInfo.backends.find(e => e.site === b.site); | ||
| return existing || b; |
There was a problem hiding this comment.
this still adds a newly configured cloud backend on an ACL-only update if there is also a CRR backend.
If cloud ACL replication is not supported, we should only preserve existing non-role backends, not add new ones as PENDING.
Maybe:
| return existing || b; | |
| const existing = objectMD.replicationInfo.backends.find(e => e.site === b.site); | |
| return existing; |
There was a problem hiding this comment.
Good catch, switched to dropping newly configured cloud backends instead of adding them as PENDING, and matching existing entries by site + destination + role rather than site alone.
| ); | ||
| }); | ||
|
|
||
| it('should add a newly configured CRR destination to backends on ' + 'putObjectACL', done => { |
There was a problem hiding this comment.
can we also have a test where a new cloud backend is added after the object was already replicated, then putObjectACL is called.
If ACL replication is not supported for cloud backends, that new cloud backend should not be added as PENDING.
There was a problem hiding this comment.
Added, new test asserts a cloud destination added after replication is not added as PENDING on putObjectACL.
Issue: CLDSRV-888