Skip to content

Commit

Permalink
fix: listener_addr issue in network_info
Browse files Browse the repository at this point in the history
  • Loading branch information
ermineJose committed Feb 24, 2025
1 parent 90b9f29 commit ee9994a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 46 deletions.
8 changes: 2 additions & 6 deletions ant-node-manager/src/local.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ use ant_service_management::{
use color_eyre::eyre::OptionExt;
use color_eyre::{eyre::eyre, Result};
use colored::Colorize;
use libp2p::{multiaddr::Protocol, Multiaddr, PeerId};
use libp2p::{Multiaddr, PeerId};
#[cfg(test)]
use mockall::automock;
use std::{
Expand Down Expand Up @@ -366,11 +366,7 @@ pub async fn run_node(
let peer_id = node_info.peer_id;
let network_info = metric_client.network_info().await?;
let connected_peers = Some(network_info.connected_peers);
let listen_addrs = network_info
.listeners
.into_iter()
.map(|addr| addr.with(Protocol::P2p(node_info.peer_id)))
.collect();
let listen_addrs = network_info.listeners.into_iter().collect();

Ok(NodeServiceData {
antnode_path: launcher.get_antnode_path(),
Expand Down
56 changes: 23 additions & 33 deletions ant-node/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -478,55 +478,45 @@ impl Node {
NetworkEvent::PeerWithUnsupportedProtocol { .. } => {
event_header = "PeerWithUnsupportedProtocol";
}
NetworkEvent::NewListenAddr(_) => {
NetworkEvent::NewListenAddr(listener_addr) => {
event_header = "NewListenAddr";
let network = self.network().clone();
let peers = self.initial_peers().clone();
let peer_id = self.network().peer_id();
let root_dir_nw_info = self
.get_root_dir()
.clone()
.join("network_info")
.join(format!("listeners_{peer_id}"));
let root_dir_nw_info = self.get_root_dir().clone().join("network_info_listeners");

let path = std::path::Path::new(&root_dir_nw_info);

if !path.exists() {
info!(
"File {:?} does not exist. Creating it now...",
root_dir_nw_info
);
if let Some(parent) = std::path::Path::new(path).parent() {
match std::fs::create_dir_all(parent) {
Ok(_) => info!("Directory created successfully: {:?}", parent),
Err(e) => eprintln!("Failed to create directory: {e}"),
let _handle = spawn(async move {
let path = std::path::Path::new(&root_dir_nw_info);

if !path.exists() {
info!(
"File {:?} does not exist. Creating it now...",
root_dir_nw_info
);
if let Some(parent) = std::path::Path::new(path).parent() {
match std::fs::create_dir_all(parent) {
Ok(_) => info!("Directory created successfully: {:?}", parent),
Err(e) => eprintln!("Failed to create directory: {e}"),
}
}
match std::fs::File::create(&root_dir_nw_info) {
Ok(_) => info!("File created successfully: {:?}", root_dir_nw_info),
Err(e) => eprintln!("Failed to create file: {e}"),
}
}

match std::fs::File::create(&root_dir_nw_info) {
Ok(_) => info!("File created successfully: {:?}", root_dir_nw_info),
Err(e) => eprintln!("Failed to create file: {e}"),
if !contains_string(&root_dir_nw_info, &listener_addr.to_string()) {
_ = append_to_file(&root_dir_nw_info, &listener_addr.to_string());
}
}

});
let _handle = spawn(async move {
for addr in peers {
if !contains_string(&root_dir_nw_info, &addr.to_string()) {
_ = append_to_file(&root_dir_nw_info, &addr.clone().to_string());
}
if let Err(err) = network.dial(addr.clone()).await {
tracing::error!("Failed to dial {addr}: {err:?}");
};
}
});
}
NetworkEvent::ClosedListenAddr(address) => {
let peer_id = self.network().peer_id();
let root_dir_nw_info = self
.get_root_dir()
.clone()
.join("network_info")
.join(format!("listeners_{peer_id}"));
let root_dir_nw_info = self.get_root_dir().clone().join("network_info_listeners");
let path = std::path::Path::new(&root_dir_nw_info);

if path.exists() {
Expand Down
12 changes: 5 additions & 7 deletions ant-service-management/src/metric.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use async_trait::async_trait;
use libp2p::{Multiaddr, PeerId};
use std::path::PathBuf;
use tokio::time::Duration;

// const MAX_CONNECTION_RETRY_ATTEMPTS: u8 = 5;
//const CONNECTION_RETRY_DELAY_SEC: Duration = Duration::from_secs(1);

Expand Down Expand Up @@ -69,10 +68,9 @@ impl NetworkInfoMetrics {
}
}

pub fn read_network_metrics_from_file(root_dir: PathBuf, peer_id: String) -> NetworkInfoMetrics {
let network_info_dir_path = root_dir.join("network_info");
let connected_peers_path = network_info_dir_path.join(format!("connected_peers_{}", peer_id));
let listeners_path = network_info_dir_path.join(format!("listeners_{}", peer_id));
pub fn read_network_metrics_from_file(root_dir: PathBuf) -> NetworkInfoMetrics {
let connected_peers_path = root_dir.join("connected_peers");
let listeners_path = root_dir.join("network_info_listeners");

let mut connected_peers = Vec::new();
if std::path::Path::new(&connected_peers_path).exists() {
Expand All @@ -89,6 +87,7 @@ pub fn read_network_metrics_from_file(root_dir: PathBuf, peer_id: String) -> Net
Err(e) => eprintln!("Failed to read the listeners file: {}", e),
}
}

NetworkInfoMetrics::new(connected_peers, listeners)
}

Expand Down Expand Up @@ -222,8 +221,7 @@ impl MetricActions for MetricClient {
let mut node_info = NodeInfoMetrics::default();
let _ = self.get_node_info_from_metadata_extended(&scrape, &mut node_info);

let network_info_metrics =
read_network_metrics_from_file(node_info.root_dir, node_info.peer_id.to_string());
let network_info_metrics = read_network_metrics_from_file(node_info.root_dir);

let connected_peers_ = network_info_metrics
.connected_peers
Expand Down

0 comments on commit ee9994a

Please sign in to comment.