dynamo_runtime/
instances.rs1use std::sync::Arc;
11
12use crate::component::Instance;
13use crate::discovery::{Discovery, DiscoveryQuery};
14
15pub async fn list_all_instances(
16 discovery_client: Arc<dyn Discovery>,
17) -> anyhow::Result<Vec<Instance>> {
18 let discovery_instances = discovery_client.list(DiscoveryQuery::AllEndpoints).await?;
19
20 let mut instances: Vec<Instance> = discovery_instances
21 .into_iter()
22 .filter_map(|di| match di {
23 crate::discovery::DiscoveryInstance::Endpoint(instance) => Some(instance),
24 _ => None, })
26 .collect();
27
28 instances.sort();
29
30 Ok(instances)
31}