refactor(replication): isolate ecstore owner contracts (#4239)

This commit is contained in:
Zhengchao An
2026-07-03 21:42:45 +08:00
committed by GitHub
parent 92402a3bde
commit 6a81445a96
10 changed files with 55 additions and 33 deletions
+8 -5
View File
@@ -1346,6 +1346,9 @@ impl ECStore {
mod tests {
use super::*;
use crate::bucket::lifecycle::core::TRANSITION_COMPLETE;
use crate::bucket::replication::{
ReplicationState, ReplicationStatusType, VersionPurgeStatusType, replication_statuses_map, version_purge_statuses_map,
};
use crate::layout::{
endpoints::{Endpoints, PoolEndpoints},
format::FormatV3,
@@ -1510,11 +1513,11 @@ mod tests {
transitioned_objname: "remote/object".to_string(),
transition_tier: "WARM".to_string(),
transition_version_id: Some(transition_version_id),
replication_state_internal: Some(rustfs_replication::ReplicationState {
replication_state_internal: Some(ReplicationState {
replication_status_internal: Some("arn:minio:replication:target=COMPLETED;".to_string()),
targets: rustfs_replication::replication_statuses_map("arn:minio:replication:target=COMPLETED;"),
targets: replication_statuses_map("arn:minio:replication:target=COMPLETED;"),
version_purge_status_internal: Some("arn:minio:replication:target=PENDING;".to_string()),
purge_targets: rustfs_replication::version_purge_statuses_map("arn:minio:replication:target=PENDING;"),
purge_targets: version_purge_statuses_map("arn:minio:replication:target=PENDING;"),
..Default::default()
}),
metadata: HashMap::from([
@@ -1571,7 +1574,7 @@ mod tests {
let source = tiered_equivalence_source();
let mut target = tiered_equivalence_target(&source);
target.replication_status_internal = Some("arn:minio:replication:target=FAILED;".to_string());
target.replication_status = rustfs_replication::ReplicationStatusType::Failed;
target.replication_status = ReplicationStatusType::Failed;
assert!(!is_equivalent_data_movement_tiered_object(&source, &target));
}
@@ -1581,7 +1584,7 @@ mod tests {
let source = tiered_equivalence_source();
let mut target = tiered_equivalence_target(&source);
target.version_purge_status_internal = Some("arn:minio:replication:target=COMPLETE;".to_string());
target.version_purge_status = rustfs_replication::VersionPurgeStatusType::Complete;
target.version_purge_status = VersionPurgeStatusType::Complete;
assert!(!is_equivalent_data_movement_tiered_object(&source, &target));
}