mini-syndicate-py/ovlinfo.py

33 lines
781 B
Python
Raw Permalink Normal View History

2019-05-28 16:00:36 +00:00
import sys
import asyncio
import random
import threading
import syndicate.mini.core as S
OverlayLink = S.Record.makeConstructor('OverlayLink', 'downNode upNode')
2019-06-23 13:37:16 +00:00
conn = S.Connection.from_url(sys.argv[1])
2019-05-28 16:00:36 +00:00
uplinks = {}
2019-06-11 23:26:40 +00:00
def add_uplink(turn, src, tgt):
2019-05-28 16:00:36 +00:00
uplinks[src] = tgt
summarise_uplinks()
2019-06-11 23:26:40 +00:00
def del_uplink(turn, src, tgt):
2019-05-28 16:00:36 +00:00
del uplinks[src]
summarise_uplinks()
def summarise_uplinks():
print(repr(uplinks))
2019-06-11 23:26:40 +00:00
with conn.turn() as t:
with conn.actor().react(t) as facet:
facet.add(S.Observe(OverlayLink(S.CAPTURE, S.CAPTURE)),
on_add=add_uplink,
on_del=del_uplink)
2019-05-28 16:00:36 +00:00
loop = asyncio.get_event_loop()
loop.set_debug(True)
loop.run_until_complete(conn.reconnecting_main(loop))
2019-05-28 16:00:36 +00:00
loop.stop()
loop.run_forever()
loop.close()