diff --git a/crates/ecstore/src/api/mod.rs b/crates/ecstore/src/api/mod.rs index 0592cffde..c956ed050 100644 --- a/crates/ecstore/src/api/mod.rs +++ b/crates/ecstore/src/api/mod.rs @@ -443,7 +443,7 @@ pub mod rebalance { #[cfg(feature = "test-util")] pub mod test_util { - pub use crate::services::rebalance::entry::test_util::PausedRebalanceEntryTestFixture; + pub use crate::services::rebalance::PausedRebalanceEntryTestFixture; pub use crate::services::rebalance::test_store_with_persisted_rebalance_meta; } } diff --git a/crates/ecstore/src/services/rebalance/entry.rs b/crates/ecstore/src/services/rebalance/entry.rs index a0d1f3834..12d143e36 100644 --- a/crates/ecstore/src/services/rebalance/entry.rs +++ b/crates/ecstore/src/services/rebalance/entry.rs @@ -951,11 +951,10 @@ mod tests { TieredMetadataCommitBarrier, }; use crate::storage_api_contracts::bucket::{BucketOperations as _, MakeBucketOptions}; - use crate::storage_api_contracts::multipart::MultipartOperations as _; + use crate::storage_api_contracts::multipart::{CompletePart, MultipartOperations as _}; use crate::storage_api_contracts::object::ObjectIO as _; use http::HeaderMap; use rustfs_filemeta::{FileInfo, FileMeta, ObjectPartInfo, TransitionVersionState}; - use rustfs_storage_api::CompletePart; use s3s::dto::{BucketLifecycleConfiguration, ExpirationStatus, LifecycleExpiration, LifecycleRule}; use std::time::Duration as StdDuration; use time::OffsetDateTime; diff --git a/crates/ecstore/src/services/rebalance/mod.rs b/crates/ecstore/src/services/rebalance/mod.rs index 5a6ab9cfd..a0e9f5d01 100644 --- a/crates/ecstore/src/services/rebalance/mod.rs +++ b/crates/ecstore/src/services/rebalance/mod.rs @@ -47,6 +47,8 @@ mod runtime; mod types; mod worker; +#[cfg(feature = "test-util")] +pub use entry::test_util::PausedRebalanceEntryTestFixture; pub(crate) use meta::is_rebalance_conflicting_with_decommission; pub use meta::{decode_rebalance_stop_propagation_record, encode_rebalance_stop_propagation_record}; pub use types::{ diff --git a/rustfs/src/admin/handlers/rebalance.rs b/rustfs/src/admin/handlers/rebalance.rs index 73ca96b11..2e134d037 100644 --- a/rustfs/src/admin/handlers/rebalance.rs +++ b/rustfs/src/admin/handlers/rebalance.rs @@ -1124,7 +1124,8 @@ mod rebalance_handler_tests { #[serial_test::serial] async fn real_admin_stop_cancels_paused_entry_before_waiting_for_activation_gate() { const REBALANCE_ID: &str = "admin-stop-paused-entry"; - let mut fixture = rustfs_ecstore::api::rebalance::test_util::PausedRebalanceEntryTestFixture::new(REBALANCE_ID).await; + let mut fixture = + crate::admin::storage_api::ecstore_rebalance::test_util::PausedRebalanceEntryTestFixture::new(REBALANCE_ID).await; fixture.wait_until_entry_paused().await; let stop_store = fixture.store(); @@ -1155,10 +1156,11 @@ mod rebalance_handler_tests { async fn real_admin_stop_accepts_same_run_terminalization_after_prepare() { const REBALANCE_ID: &str = "admin-stop-terminal-after-prepare"; const REPLACEMENT_ID: &str = "admin-stop-replacement"; - let (_temp_dirs, store) = rustfs_ecstore::api::rebalance::test_util::test_store_with_persisted_rebalance_meta( - started_rebalance_meta(REBALANCE_ID), - ) - .await; + let (_temp_dirs, store) = + crate::admin::storage_api::ecstore_rebalance::test_util::test_store_with_persisted_rebalance_meta( + started_rebalance_meta(REBALANCE_ID), + ) + .await; let terminal_barrier = std::sync::Arc::new(tokio::sync::Barrier::new(2)); let worker_barrier = std::sync::Arc::clone(&terminal_barrier); let worker_store = std::sync::Arc::clone(&store); @@ -1238,10 +1240,11 @@ mod rebalance_handler_tests { #[serial_test::serial] async fn real_admin_stop_loads_persisted_active_rebalance_from_cold_memory() { const REBALANCE_ID: &str = "admin-stop-cold-memory"; - let (_temp_dirs, store) = rustfs_ecstore::api::rebalance::test_util::test_store_with_persisted_rebalance_meta( - started_rebalance_meta(REBALANCE_ID), - ) - .await; + let (_temp_dirs, store) = + crate::admin::storage_api::ecstore_rebalance::test_util::test_store_with_persisted_rebalance_meta( + started_rebalance_meta(REBALANCE_ID), + ) + .await; *store.rebalance_meta.write().await = None; assert!(store.current_rebalance_id().await.is_none()); @@ -1271,10 +1274,11 @@ mod rebalance_handler_tests { async fn real_admin_stop_refreshes_persisted_active_over_stale_inactive_memory() { const PERSISTED_REBALANCE_ID: &str = "admin-stop-persisted-active"; const STALE_REBALANCE_ID: &str = "admin-stop-stale-terminal"; - let (_temp_dirs, store) = rustfs_ecstore::api::rebalance::test_util::test_store_with_persisted_rebalance_meta( - started_rebalance_meta(PERSISTED_REBALANCE_ID), - ) - .await; + let (_temp_dirs, store) = + crate::admin::storage_api::ecstore_rebalance::test_util::test_store_with_persisted_rebalance_meta( + started_rebalance_meta(PERSISTED_REBALANCE_ID), + ) + .await; *store.rebalance_meta.write().await = Some(RebalanceMeta { id: STALE_REBALANCE_ID.to_string(), stopped_at: Some(OffsetDateTime::now_utc()), diff --git a/rustfs/src/admin/storage_api.rs b/rustfs/src/admin/storage_api.rs index 318718b49..bc7d209cd 100644 --- a/rustfs/src/admin/storage_api.rs +++ b/rustfs/src/admin/storage_api.rs @@ -70,7 +70,9 @@ mod ecstore_notification { } #[allow(unused_imports)] -mod ecstore_rebalance { +pub(crate) mod ecstore_rebalance { + #[cfg(test)] + pub(crate) use crate::storage::storage_api::ecstore_rebalance::test_util; pub(crate) use crate::storage::storage_api::ecstore_rebalance::{ DiskStat, RebalSaveOpt, RebalStatus, RebalanceCleanupWarningEntry, RebalanceCleanupWarnings, RebalanceInfo, RebalanceMeta, RebalanceStats, RebalanceStopPropagationRecord, decode_rebalance_stop_propagation_record, diff --git a/rustfs/src/storage/storage_api.rs b/rustfs/src/storage/storage_api.rs index e5277c0dd..c2f4fdbb0 100644 --- a/rustfs/src/storage/storage_api.rs +++ b/rustfs/src/storage/storage_api.rs @@ -501,6 +501,8 @@ pub(crate) mod ecstore_notification { #[allow(unused_imports)] pub(crate) mod ecstore_rebalance { + #[cfg(test)] + pub(crate) use rustfs_ecstore::api::rebalance::test_util; pub(crate) use rustfs_ecstore::api::rebalance::{ DiskStat, RebalSaveOpt, RebalStatus, RebalanceCleanupWarningEntry, RebalanceCleanupWarnings, RebalanceInfo, RebalanceMeta, RebalanceStats, RebalanceStopPropagationRecord, decode_rebalance_stop_propagation_record,