mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-21 20:06:37 +00:00
2b9dcc646f
Split the 6723-line manager.rs (44% inline tests) into a canonical manager.rs + manager/ module tree with zero behavior change: - manager.rs (~1830): HealManager and HealState, HealConfig, task report/snapshot types, overlap policy, admission classification and queue admission, submit paths, task-state queries, and the statistics surface - manager/queue.rs (~450): the priority heal queue, its per-key dedup index, and the queue bookkeeping structs - manager/scheduler.rs (~620): start_scheduler and the process_heal_queue consumption loop with its skip/metric helpers - manager/auto_scan.rs (~550): the automatic disk scanner - manager/unclean_shutdown.rs (~390): unclean-shutdown recovery and its durable replacement-intent helpers - manager/tests.rs (~2970): the inline test module as a child module All module paths are unchanged. The queue structs' fields and the cross-module helpers gain pub(super), whose scope equals the old single-module privacy domain; HealManager's private fields stay in the root and remain reachable from child impl blocks. Code is moved verbatim apart from those markers, heal-level super:: path fixes for the unclean-shutdown move, per-module import headers, and rustfmt re-wraps. The logging-guardrail rule for the manager demote_to_debug_when! count now sums manager.rs with its manager/*.rs children, since one scheduler site moved with process_heal_queue; the >= 6 threshold is unchanged and the forbidden admission info!/warn! pattern check keeps targeting the root admission code. Co-authored-by: heihutu <heihutu@gmail.com>