@@ -1118,9 +1118,16 @@ std::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 ();
11201120 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_ });
1121+ auto peer = 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_ };
1124+ auto srv_cfg = raft_server ()->get_config ()->get_server (nuraft_mesg::to_server_id (peer.id_ ));
1125+ if (srv_cfg) {
1126+ peer.is_new_joiner = srv_cfg->is_new_joiner ();
1127+ } else {
1128+ RD_LOGI (" server is not in the config, id={}" , peer.id_ );
1129+ }
1130+ pi.emplace_back (peer);
11241131 }
11251132 return pi;
11261133}
@@ -1152,7 +1159,7 @@ std::set< replica_id_t > RaftReplDev::get_active_peers() const {
11521159uint32_t RaftReplDev::get_blk_size () const { return data_service ().get_blk_size (); }
11531160
11541161nuraft_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 ; }
1162+ nuraft::raft_server* RaftReplDev::raft_server () const { return m_repl_svc_ctx->_server ; }
11561163
11571164// ///////////////////////////////// Config Serialize/Deserialize Section ////////////////////////////////////
11581165static nlohmann::json serialize_server_config (std::list< nuraft::ptr< nuraft::srv_config > > const & server_list) {
0 commit comments