> (you don't have to strictly follow this form)

**Use case**

Support manually snapshot for Keeper.

**Describe the solution you'd like**

Throught 4lw commands, such as `csnp`.


{
    if (is_recovering)
    {
        const auto finish_recovering = [&]
        {
            auto new_params = raft_instance->get_current_params();
            new_params.custom_commit_quorum_size_ = 0;
            new_params.custom_election_quorum_size_ = 0;
            raft_instance->update_params(new_params);
            LOG_INFO(log, "Recovery is done. You can continue using cluster normally.");
            is_recovering = false;
        };
        switch (type)
        {
            case nuraft::cb_func::HeartBeat:
            {
                if (raft_instance->isClusterHealthy())
                    finish_recovering();