ovlinfo.py

This commit is contained in:
Tony Garnock-Jones 2019-05-28 17:00:36 +01:00
parent 207d54c576
commit b67ad5d1c5
1 changed files with 37 additions and 0 deletions

37
ovlinfo.py Normal file
View File

@ -0,0 +1,37 @@
import sys
import asyncio
import random
import threading
import syndicate.mini.core as S
OverlayLink = S.Record.makeConstructor('OverlayLink', 'downNode upNode')
conn = S.WebsocketConnection(sys.argv[1], sys.argv[2])
uplinks = {}
def add_uplink(src, tgt):
uplinks[src] = tgt
summarise_uplinks()
def del_uplink(src, tgt):
del uplinks[src]
summarise_uplinks()
def summarise_uplinks():
print(repr(uplinks))
S.Endpoint(conn, S.Observe(OverlayLink(S.CAPTURE, S.CAPTURE)),
on_add=add_uplink,
on_del=del_uplink)
async def reconnect(loop):
while conn:
did_connect = await conn.main(loop, on_connected=lambda: print('-'*50, 'Connected'))
if did_connect:
print('-'*50, 'Disconnected')
else:
await asyncio.sleep(2)
loop = asyncio.get_event_loop()
loop.set_debug(True)
loop.run_until_complete(reconnect(loop))
loop.stop()
loop.run_forever()
loop.close()