add cli command for global foreign network info

This commit is contained in:
sijie.sun
2024-09-22 22:18:13 +08:00
committed by Sijie.Sun
parent aca9a0e35b
commit 783ba50c9e
6 changed files with 142 additions and 7 deletions
+28
View File
@@ -72,6 +72,7 @@ enum PeerSubCommand {
Remove,
List(PeerListArgs),
ListForeign,
ListGlobalForeign,
}
#[derive(Args, Debug)]
@@ -342,6 +343,30 @@ impl CommandHandler {
Ok(())
}
async fn handle_global_foreign_network_list(&self) -> Result<(), Error> {
let client = self.get_peer_manager_client().await?;
let request = ListGlobalForeignNetworkRequest::default();
let response = client
.list_global_foreign_network(BaseController {}, request)
.await?;
if self.verbose {
println!("{:#?}", response);
return Ok(());
}
for (k, v) in response.foreign_networks.iter() {
println!("Peer ID: {}", k);
for n in v.foreign_networks.iter() {
println!(
" Network Name: {}, Last Updated: {}, Version: {}, PeerIds: {:?}",
n.network_name, n.last_updated, n.version, n.peer_ids
);
}
}
Ok(())
}
async fn handle_route_list(&self) -> Result<(), Error> {
#[derive(tabled::Tabled)]
struct RouteTableItem {
@@ -464,6 +489,9 @@ async fn main() -> Result<(), Error> {
Some(PeerSubCommand::ListForeign) => {
handler.handle_foreign_network_list().await?;
}
Some(PeerSubCommand::ListGlobalForeign) => {
handler.handle_global_foreign_network_list().await?;
}
None => {
handler.handle_peer_list(&peer_args).await?;
}