dorneanu / netgrafio

netgrafio - Visualize your network
Other
328 stars 20 forks source link

Trouble running netgrafio.py #2

Open 69sparrow69 opened 5 years ago

69sparrow69 commented 5 years ago

Hey,

I'm trying to run it using python3 and made a few changes to the netgrafio file:


import sys
import argparse
import logging
try:
    import queue
except ImportError:
    import Queue as queue

# Local packages
#from lib.TCPServer import JSONServer
from lib.WebSocketServer import WebSocketServer
from lib.WebServer import WebServer
try:
    import SocketServer as socketserver
    from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
except ImportError:
    import socketserver
    from http.server import HTTPServer, BaseHTTPRequestHandler

def parse_args(params):
    """ Parse cmd line arguments """
    parser = argparse.ArgumentParser(
        description="netgrafio - visualize your network",
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)

    # Set parameters
    parser.add_argument("--tcp-port", action="store", type=int,
                        help="Specify TCP port to listen for JSON packets", default=8081)
    parser.add_argument("--ws-port", action="store", type=int,
                        help="Specify WebSocket port to send JSON data to", default=8080)
    parser.add_argument("--web-port", action="store", type=str,
                        help="Specify web port to server web application", default=5000)
    parser.add_argument("--host", action="store", default="127.0.0.1",
                        help="Specify host to bind socket on")
    args = parser.parse_args(params)

    return args

def main(params):
    # Global logging settings
    logging.basicConfig(level=logging.DEBUG,
                        format="%(asctime)s - %(levelname)s - [%(name)s] - %(message)s")

    # Init in queue (producer and consumer pattern)
    in_queue = queue.Queue()

    # Set default host
    host = params.host

    # Start WebSocket server
    websocket_server = WebSocketServer(host, int(params.ws_port), in_queue)
    websocket_server.start()

    # Start Web Server
    web_server = WebServer(host, int(params.web_port))
    web_server.start()

    # Start JSON server
    tcp_server = JSONServer(host, int(params.tcp_port), in_queue)
    tcp_server.start()

if __name__ == "__main__":
    main(parse_args(sys.argv[1:]))

# EOF

However, I get the following errors:

$ python3 netgrafio1.py
2019-05-01 18:37:05,255 - DEBUG - [asyncio] - Using selector: EpollSelector
2019-05-01 18:37:05,257 - INFO - [WebSocketServer] - Starting WebSocket server on port 8080
2019-05-01 18:37:05,257 - INFO - [WebSocketServer] - Start collector server
2019-05-01 18:37:05,257 - INFO - [WebSocketServer] - Waiting for incoming data ...
2019-05-01 18:37:05,262 - INFO - [WebServer] - Listening on 5000
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/netgrafio/lib/WebServer.py", line 114, in start_server
    http_server = Thread(target=IOLoop.instance().start)
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tornado/ioloop.py", line 201, in instance
    return IOLoop.current()
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tornado/ioloop.py", line 265, in current
    loop = asyncio.get_event_loop()
  File "/usr/lib/python3.5/asyncio/events.py", line 632, in get_event_loop
    return get_event_loop_policy().get_event_loop()
  File "/usr/lib/python3.5/asyncio/events.py", line 578, in get_event_loop
    % threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'Thread-3'.

Traceback (most recent call last):
  File "netgrafio1.py", line 100, in <module>
    main(parse_args(sys.argv[1:]))
  File "netgrafio1.py", line 95, in main
    tcp_server = JSONServer(host, int(params.tcp_port), in_queue)
NameError: name 'JSONServer' is not defined
^CException ignored in: <module 'threading' from '/usr/lib/python3.5/threading.py'>
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 1288, in _shutdown
    t.join()
  File "/usr/lib/python3.5/threading.py", line 1054, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.5/threading.py", line 1070, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt

Any help would be appreciated since you folks had it running before. @dorneanu @jmillxyz

dorneanu commented 5 years ago

Hi @HackerQuaker,

I haven't touched this code for years. But just having a look at the error stack trace:

NameError: name 'JSONServer' is not defined

I think you should uncomment this line:

from lib.TCPServer import JSONServer

Have a nice day, Victor