Skip to content

Commit 14b5490

Browse files
authored
Update network.py
1 parent 1392299 commit 14b5490

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

src/ix_operator/network.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from ix_operator.agents import AgentMessage
77
from ix_operator.bus import ReceivedAgentMessage
8+
from ix_operator.diagnostics import NetworkSnapshot
89
from ix_operator.identity import NodeIdentity
910
from ix_operator.ix import ExecutionReport, IxProgram
1011
from ix_operator.node import OperatorNode
@@ -50,6 +51,18 @@ def local(
5051
def hub(self) -> LocalTransportHub:
5152
return self._hub
5253

54+
def snapshot(self) -> NetworkSnapshot:
55+
with self._lock:
56+
peer_ids = tuple(sorted(self._nodes.keys()))
57+
node_snapshots = tuple(self._nodes[peer_id].snapshot() for peer_id in peer_ids)
58+
59+
snapshot = NetworkSnapshot(
60+
peer_ids=peer_ids,
61+
node_snapshots=node_snapshots,
62+
)
63+
snapshot.validate()
64+
return snapshot
65+
5366
def add_node(self, identity: NodeIdentity) -> OperatorNode:
5467
identity.validate()
5568

0 commit comments

Comments
 (0)