MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / get_sync_data

Method get_sync_data

gateway/src/debug_service.rs:58–109  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

56 }
57
58 async fn get_sync_data(self) -> Result<DebugSyncDataResponse> {
59 let kv_store = self.state.kv_store();
60 let my_node_id = kv_store.my_node_id();
61
62 // Get all peer addresses
63 let peer_addrs: Vec<PeerAddrEntry> = kv_store
64 .get_all_peer_addrs()
65 .into_iter()
66 .map(|(node_id, url)| PeerAddrEntry {
67 node_id: node_id as u64,
68 url,
69 })
70 .collect();
71
72 // Get all node info
73 let nodes: Vec<NodeInfoEntry> = kv_store
74 .load_all_nodes()
75 .into_iter()
76 .map(|(node_id, data)| NodeInfoEntry {
77 node_id: node_id as u64,
78 url: data.url,
79 wg_public_key: data.wg_public_key,
80 wg_endpoint: data.wg_endpoint,
81 wg_ip: data.wg_ip,
82 })
83 .collect();
84
85 // Get all instances
86 let instances: Vec<InstanceEntry> = kv_store
87 .load_all_instances()
88 .into_iter()
89 .map(|(instance_id, data)| InstanceEntry {
90 instance_id,
91 app_id: data.app_id,
92 ip: data.ip.to_string(),
93 public_key: data.public_key,
94 })
95 .collect();
96
97 // Get key counts
98 let persistent_keys = kv_store.persistent().read().status().n_kvs as u64;
99 let ephemeral_keys = kv_store.ephemeral().read().status().n_kvs as u64;
100
101 Ok(DebugSyncDataResponse {
102 my_node_id: my_node_id as u64,
103 peer_addrs,
104 nodes,
105 instances,
106 persistent_keys,
107 ephemeral_keys,
108 })
109 }
110
111 async fn get_proxy_state(self) -> Result<DebugProxyStateResponse> {
112 let state = self.state.lock();

Callers

nothing calls this directly

Calls 9

kv_storeMethod · 0.80
my_node_idMethod · 0.80
into_iterMethod · 0.80
get_all_peer_addrsMethod · 0.80
load_all_nodesMethod · 0.80
load_all_instancesMethod · 0.80
persistentMethod · 0.80
ephemeralMethod · 0.80
statusMethod · 0.45

Tested by

no test coverage detected