mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-16 14:47:25 +08:00
refactor: get_running_info fn replace status polling with direct calls (#1441)
This commit is contained in:
@@ -123,22 +123,33 @@ impl NetworkInstanceManager {
|
||||
Ok(self.list_network_instance_ids())
|
||||
}
|
||||
|
||||
pub fn collect_network_infos(
|
||||
pub async fn collect_network_infos(
|
||||
&self,
|
||||
) -> Result<BTreeMap<uuid::Uuid, NetworkInstanceRunningInfo>, anyhow::Error> {
|
||||
let mut ret = BTreeMap::new();
|
||||
for instance in self.instance_map.iter() {
|
||||
if let Some(info) = instance.get_running_info() {
|
||||
if let Ok(info) = instance.get_running_info().await {
|
||||
ret.insert(*instance.key(), info);
|
||||
}
|
||||
}
|
||||
Ok(ret)
|
||||
}
|
||||
|
||||
pub fn get_network_info(&self, instance_id: &uuid::Uuid) -> Option<NetworkInstanceRunningInfo> {
|
||||
pub fn collect_network_infos_sync(
|
||||
&self,
|
||||
) -> Result<BTreeMap<uuid::Uuid, NetworkInstanceRunningInfo>, anyhow::Error> {
|
||||
tokio::runtime::Runtime::new()?.block_on(self.collect_network_infos())
|
||||
}
|
||||
|
||||
pub async fn get_network_info(
|
||||
&self,
|
||||
instance_id: &uuid::Uuid,
|
||||
) -> Option<NetworkInstanceRunningInfo> {
|
||||
self.instance_map
|
||||
.get(instance_id)
|
||||
.and_then(|instance| instance.value().get_running_info())
|
||||
.get(instance_id)?
|
||||
.get_running_info()
|
||||
.await
|
||||
.ok()
|
||||
}
|
||||
|
||||
pub fn list_network_instance_ids(&self) -> Vec<uuid::Uuid> {
|
||||
|
||||
Reference in New Issue
Block a user