mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 20:01:08 +00:00
add fn debug_info to peerset (#2258)
This commit is contained in:
committed by
Bastian Köcher
parent
72840bd71e
commit
700e5acf90
@@ -25,7 +25,7 @@ use libp2p::PeerId;
|
||||
use log::trace;
|
||||
use lru_cache::LruCache;
|
||||
use slots::{SlotType, SlotState, Slots};
|
||||
pub use serde_json::Value;
|
||||
use serde_json::json;
|
||||
|
||||
const PEERSET_SCORES_CACHE_SIZE: usize = 1000;
|
||||
const DISCOVERED_NODES_LIMIT: u32 = 1000;
|
||||
@@ -407,7 +407,16 @@ impl Peerset {
|
||||
|
||||
/// Produces a JSON object containing the state of the peerset manager, for debugging purposes.
|
||||
pub fn debug_info(&self) -> serde_json::Value {
|
||||
serde_json::Value::Null
|
||||
json!({
|
||||
"data": {
|
||||
// add scores
|
||||
"discovered": self.data.discovered.debug_info(),
|
||||
"reserved_only": self.data.reserved_only,
|
||||
"out_slots": self.data.out_slots.debug_info(),
|
||||
"in_slots": self.data.in_slots.debug_info()
|
||||
},
|
||||
"message_queue": self.message_queue.len(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
use std::{fmt, mem};
|
||||
use libp2p::PeerId;
|
||||
use linked_hash_map::LinkedHashMap;
|
||||
use serde_json::json;
|
||||
|
||||
/// Describes the nature of connection with a given peer.
|
||||
#[derive(Debug, PartialEq, Clone, Copy)]
|
||||
@@ -182,4 +183,72 @@ impl Slots {
|
||||
pub fn is_reserved(&self, peer_id: &PeerId) -> bool {
|
||||
self.reserved.contains_key(peer_id)
|
||||
}
|
||||
|
||||
/// Produces a JSON object containing the state of slots, for debugging purposes.
|
||||
pub fn debug_info(&self) -> serde_json::Value {
|
||||
json!({
|
||||
"max_slots": self.max_slots,
|
||||
"reserved": self.reserved.keys().map(|peer_id| peer_id.to_base58()).collect::<Vec<_>>(),
|
||||
"common": self.common.keys().map(|peer_id| peer_id.to_base58()).collect::<Vec<_>>()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use libp2p::PeerId;
|
||||
use serde_json::json;
|
||||
use super::{Slots, SlotType};
|
||||
|
||||
#[test]
|
||||
fn test_slots_debug_info() {
|
||||
let reserved_peer = PeerId::random();
|
||||
let reserved_peer2 = PeerId::random();
|
||||
let common_peer = PeerId::random();
|
||||
let mut slots = Slots::new(10);
|
||||
|
||||
slots.add_peer(reserved_peer.clone(), SlotType::Reserved);
|
||||
slots.add_peer(reserved_peer2.clone(), SlotType::Reserved);
|
||||
slots.add_peer(common_peer.clone(), SlotType::Common);
|
||||
|
||||
let expected = json!({
|
||||
"max_slots": 10,
|
||||
"reserved": vec![reserved_peer.to_base58(), reserved_peer2.to_base58()],
|
||||
"common": vec![common_peer.to_base58()],
|
||||
});
|
||||
|
||||
assert_eq!(expected, slots.debug_info());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_slots_debug() {
|
||||
let reserved_peer = PeerId::random();
|
||||
let reserved_peer2 = PeerId::random();
|
||||
let common_peer = PeerId::random();
|
||||
let mut slots = Slots::new(10);
|
||||
|
||||
slots.add_peer(reserved_peer.clone(), SlotType::Reserved);
|
||||
slots.add_peer(reserved_peer2.clone(), SlotType::Reserved);
|
||||
slots.add_peer(common_peer.clone(), SlotType::Common);
|
||||
|
||||
let expected = format!("Slots {{
|
||||
max_slots: 10,
|
||||
reserved: [
|
||||
PeerId(
|
||||
{:?}
|
||||
),
|
||||
PeerId(
|
||||
{:?}
|
||||
)
|
||||
],
|
||||
common: [
|
||||
PeerId(
|
||||
{:?}
|
||||
)
|
||||
]
|
||||
}}", reserved_peer.to_base58(), reserved_peer2.to_base58(), common_peer.to_base58());
|
||||
|
||||
let s = format!("{:#?}", slots);
|
||||
assert_eq!(expected, s);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user