def run_visualization_server(mac, broadcast_address, configuration): app = web.Application() app.router.add_route('GET', '/', get_last_state) loop = asyncio.get_event_loop() handler = app.make_handler() f = loop.create_server(handler, '0.0.0.0', 8888) srv = loop.run_until_complete(f) print('serving on', srv.sockets[0].getsockname()) global logger logger = logging.getLogger('Node') cfg_node = configuration['node'] io_executor = AsyncExecutor(5, loop) global udp_messenger debug_cfg = cfg_node['debug'] if not debug_cfg['enabled']: logger.error('Check config! Debug disabled!') return logger.info("Debug port: {}".format(debug_cfg['broadcasting_port'])) udp_messenger = UDPMessenger(broadcast_address, debug_cfg['broadcasting_port'], io_executor, True, loop) udp_messenger.start() asyncio.async(update_nodes()) try: loop.run_forever() except KeyboardInterrupt: pass finally: loop.run_until_complete(handler.finish_connections(1.0)) srv.close() udp_messenger.stop() loop.run_until_complete(srv.wait_closed()) loop.run_until_complete(app.finish()) loop.close()
def run_node(mac, broadcast_address, cfg): logger = logging.getLogger('Node') consts = Const() cfg_node = cfg['node'] hostname = cfg_node['hostname'] or mac messenger = Messenger(mac, broadcast_address, cfg_node['broadcasting_port'], cfg_node['tcp_port'], node_id=hostname) messenger.start() debug_cfg = cfg_node['debug'] if debug_cfg['enabled']: debug_messenger = UDPMessenger(broadcast_address, debug_cfg['broadcasting_port'], AsyncExecutor(2), False) else: debug_messenger = None context = Context(None, consts, messenger, debug_messenger) logger.debug('Running...') context.state = LooserState() try: asyncio.get_event_loop().set_debug(True) while True: asyncio.get_event_loop().run_until_complete(context.state.execute(context)) except KeyboardInterrupt: logger.info('Stopped by user.') messenger.stop() debug_messenger.stop()
def run_node(mac, broadcast_address, cfg): logger = logging.getLogger('Node') consts = Const() cfg_node = cfg['node'] hostname = cfg_node['hostname'] or mac messenger = Messenger(mac, broadcast_address, cfg_node['broadcasting_port'], cfg_node['tcp_port'], node_id=hostname) messenger.start() debug_cfg = cfg_node['debug'] if debug_cfg['enabled']: debug_messenger = UDPMessenger(broadcast_address, debug_cfg['broadcasting_port'], AsyncExecutor(2), False) else: debug_messenger = None context = Context(None, consts, messenger, debug_messenger) logger.debug('Running...') context.state = LooserState() try: asyncio.get_event_loop().set_debug(True) while True: asyncio.get_event_loop().run_until_complete( context.state.execute(context)) except KeyboardInterrupt: logger.info('Stopped by user.') messenger.stop() debug_messenger.stop()
def run_visualization_server(mac, broadcast_address, configuration): app = web.Application() app.router.add_route('GET', '/', get_last_state) loop = asyncio.get_event_loop() handler = app.make_handler() f = loop.create_server(handler, '0.0.0.0', 8888) srv = loop.run_until_complete(f) print('serving on', srv.sockets[0].getsockname()) global logger logger = logging.getLogger('Node') cfg_node = configuration['node'] io_executor = AsyncExecutor(5, loop) global udp_messenger debug_cfg = cfg_node['debug'] if not debug_cfg['enabled']: logger.error('Check config! Debug disabled!') return logger.info("Debug port: {}".format(debug_cfg['broadcasting_port'])) udp_messenger = UDPMessenger(broadcast_address, debug_cfg['broadcasting_port'], io_executor, True, loop) udp_messenger.start() asyncio. async (update_nodes()) try: loop.run_forever() except KeyboardInterrupt: pass finally: loop.run_until_complete(handler.finish_connections(1.0)) srv.close() udp_messenger.stop() loop.run_until_complete(srv.wait_closed()) loop.run_until_complete(app.finish()) loop.close()