diff --git a/src/main.rs b/src/main.rs index 093d9f0b4874f2f50a95fb2164c211a0ee45f705..b7a1689e06c8161149995836a3329ab328cff80f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -351,6 +351,14 @@ fn main_run(args: args::Run) -> ! { } } +fn init_common(args: &args::Run, cfg: &tarantool::Cfg) { + std::fs::create_dir_all(&args.data_dir).unwrap(); + tarantool::set_cfg(cfg); + + traft::Storage::init_schema(); + init_handlers(); +} + fn start_discover(args: &args::Run, to_supervisor: ipc::Sender<IpcMessage>) { tlog!(Info, ">>>>> start_discover()"); @@ -368,12 +376,8 @@ fn start_discover(args: &args::Run, to_supervisor: ipc::Sender<IpcMessage>) { ..Default::default() }; - std::fs::create_dir_all(&args.data_dir).unwrap(); - tarantool::set_cfg(&cfg); - - traft::Storage::init_schema(); + init_common(args, &cfg); discovery::init_global(&args.peers); - init_handlers(); cfg.listen = Some(args.listen.clone()); tarantool::set_cfg(&cfg); @@ -433,11 +437,7 @@ fn start_boot(args: &args::Run) { ..Default::default() }; - std::fs::create_dir_all(&args.data_dir).unwrap(); - tarantool::set_cfg(&cfg); - - traft::Storage::init_schema(); - init_handlers(); + init_common(args, &cfg); start_transaction(|| -> Result<(), Error> { let cs = raft::ConfState { @@ -521,11 +521,7 @@ fn start_join(args: &args::Run, leader_address: String) { ..Default::default() }; - std::fs::create_dir_all(&args.data_dir).unwrap(); - tarantool::set_cfg(&cfg); - - traft::Storage::init_schema(); - init_handlers(); + init_common(args, &cfg); let raft_id = resp.peer.raft_id; start_transaction(|| -> Result<(), Error> {