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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()