@@ -1117,10 +1117,14 @@ replica_id_t RaftReplDev::get_leader_id() const {
11171117std::vector< peer_info > RaftReplDev::get_replication_status () const {
11181118 std::vector< peer_info > pi;
11191119 auto rep_status = m_repl_svc_ctx->get_raft_status ();
1120+ auto srv_cfg = raft_server ()->get_config ()->get_server (raft_server ()->get_id ());
11201121 for (auto const & pinfo : rep_status) {
1121- pi.emplace_back (peer_info{.id_ = boost::lexical_cast< replica_id_t >(pinfo.id_ ),
1122- .replication_idx_ = pinfo.last_log_idx_ ,
1123- .last_succ_resp_us_ = pinfo.last_succ_resp_us_ });
1122+ auto peer = peer_info{.id_ = boost::lexical_cast< replica_id_t >(pinfo.id_ ),
1123+ .replication_idx_ = pinfo.last_log_idx_ ,
1124+ .last_succ_resp_us_ = pinfo.last_succ_resp_us_ };
1125+ if (pinfo.id_ == my_replica_id_str ()) { peer.is_new_joiner = srv_cfg->is_new_joiner (); }
1126+
1127+ pi.emplace_back (peer);
11241128 }
11251129 return pi;
11261130}
@@ -1152,7 +1156,7 @@ std::set< replica_id_t > RaftReplDev::get_active_peers() const {
11521156uint32_t RaftReplDev::get_blk_size () const { return data_service ().get_blk_size (); }
11531157
11541158nuraft_mesg::repl_service_ctx* RaftReplDev::group_msg_service () { return m_repl_svc_ctx.get (); }
1155- nuraft::raft_server* RaftReplDev::raft_server () { return m_repl_svc_ctx->_server ; }
1159+ nuraft::raft_server* RaftReplDev::raft_server () const { return m_repl_svc_ctx->_server ; }
11561160
11571161// ///////////////////////////////// Config Serialize/Deserialize Section ////////////////////////////////////
11581162static nlohmann::json serialize_server_config (std::list< nuraft::ptr< nuraft::srv_config > > const & server_list) {
0 commit comments