Sort seller list inside of `list_sellers`

By sorting the list inside we have a more deterministic output that makes processing in JSON easier.
pull/617/head
Daniel Karzel 3 years ago
parent c275e33a6c
commit 6abf83f4ad
No known key found for this signature in database
GPG Key ID: 30C3FC2E438ADB6E

@ -285,7 +285,7 @@ async fn main() -> Result<()> {
.context("Failed to read in seed file")?;
let identity = seed.derive_libp2p_identity();
let mut sellers = list_sellers(
let sellers = list_sellers(
rendezvous_node_peer_id,
rendezvous_point,
namespace,
@ -293,7 +293,6 @@ async fn main() -> Result<()> {
identity,
)
.await?;
sellers.sort();
if json {
for seller in sellers {

@ -15,6 +15,12 @@ use std::collections::hash_map::Entry;
use std::collections::HashMap;
use std::time::Duration;
/// Returns sorted list of sellers, with [Online](Status::Online) listed first.
///
/// First uses the rendezvous node to discover peers in the given namespace,
/// then fetches a quote from each peer that was discovered. If fetching a quote
/// from a discovered peer fails the seller's status will be
/// [Unreachable](Status::Unreachable).
pub async fn list_sellers(
rendezvous_node_peer_id: PeerId,
rendezvous_node_addr: Multiaddr,
@ -289,7 +295,10 @@ impl EventLoop {
.collect::<Result<Vec<_>, _>>();
match all_quotes_fetched {
Ok(sellers) => break sellers,
Ok(mut sellers) => {
sellers.sort();
break sellers;
}
Err(StillPending {}) => continue,
}
}

Loading…
Cancel
Save