Esempio n. 1
0
def run_server(options, args):

    http_port = options.port
    http_host = options.host
    external_host = options.external_host or http_host
    external_port = options.external_port or http_port
    if options.https:
        server_url = "https://"+external_host+("" if external_port == 443 else ":%d" % external_port)
    else:
        server_url = "http://"+external_host+("" if external_port == 80 else ":%d" % external_port)
    new_url = server_url + "/new"

    if args:
        if options.auth_type == "login":
            sys.exit("--auth_type=login cannot be combined with specified shell command")
        shell_command = args[:]
    elif options.auth_type == "login":
        if os.geteuid():
            sys.exit("Error: Must run server as root for --auth_type=login")
        if not options.https and external_host != "localhost":
            sys.exit("Error: At this time --auth_type=login is permitted only with https or localhost (for security reasons)")
        shell_command = ["login"]
    else:
        shell_command = ["bash"]

    term_manager = NamedTermManager(shell_command=shell_command,
                                             max_terminals=options.max_terminals)

    handlers = [
                (r"/_websocket/(\w+)", TermSocket,
                     {'term_manager': term_manager}),
                (r"/new/?", NewTerminalHandler),
                (r"/(\w+)/?", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)
               ]
    application = tornado.web.Application(handlers, static_path=STATIC_DIR,
                              template_path=TEMPLATE_DIR,
                              xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
                              term_manager=term_manager)

    ssl_options = prepare_ssl_options(options)

    Http_server = tornado.httpserver.HTTPServer(application, ssl_options=ssl_options)
    Http_server.listen(http_port, address=http_host)
    if options.logging:
        Log_filename = "pyxterm.log"
        setup_logging(logging.INFO, Log_filename, logging.INFO)
        logging.error("**************************Logging to %s", Log_filename)
    else:
        setup_logging(logging.WARNING)
        logging.error("**************************Logging to console")

    run_and_show_browser(new_url, term_manager)
Esempio n. 2
0
def main(argv):
    term_manager = SingleTermManager(shell_command=['bash'])
    handlers = [
                (r"/websocket", TermSocket,
                     {'term_manager': term_manager}),
                (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
                     {'allowed_modules': ['termjs']})
               ]
    app = tornado.web.Application(handlers, static_path=STATIC_DIR,
                      template_path=TEMPLATE_DIR,
                      xstatic_url = tornado_xstatic.url_maker('/xstatic/'))
    app.listen(8765, 'localhost')
    run_and_show_browser("http://localhost:8765/", term_manager)
Esempio n. 3
0
def main(argv):
    term_manager = UniqueTermManager(shell_command=['bash'])
    handlers = [
                (r"/websocket", TermSocket,
                     {'term_manager': term_manager}),
                (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
                     {'allowed_modules': ['termjs']})
               ]
    app = tornado.web.Application(handlers, static_path=STATIC_DIR,
                      template_path=TEMPLATE_DIR,
                      xstatic_url = tornado_xstatic.url_maker('/xstatic/'))
    app.listen(8765, 'localhost')
    run_and_show_browser("http://localhost:8765/", term_manager)
Esempio n. 4
0
def main():
    term_manager = NamedTermManager(shell_command=['bash'], max_terminals=100)
    ##logging.basicConfig(filename="config.log",filemode="a",format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",level=logging.DEBUG)
    handlers = [(r"/_websocket/(\w+)", TermSocket, {
        'term_manager': term_manager
    }), (r"/new", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)]
    application = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
        term_manager=term_manager)

    application.listen(8700)
    run_and_show_browser("http://localhost:8700/new", term_manager)
Esempio n. 5
0
def main():
    term_manager = NamedTermManager(shell_command=['bash'], max_terminals=100)

    handlers = [(r"/_websocket/(\w+)", TermSocket, {
        'term_manager': term_manager
    }), (r"/new/?", NewTerminalHandler), (r"/(\w+)/?", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)]
    application = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
        term_manager=term_manager)

    application.listen(8700, 'localhost')
    run_and_show_browser("http://localhost:8700/new", term_manager)
Esempio n. 6
0
def main():
    term_manager = NamedTermManager(shell_command=['bash'],
                                     max_terminals=100)

    handlers = [
                (r"/_websocket/(\w+)", TermSocket,
                     {'term_manager': term_manager}),
                (r"/new/?", NewTerminalHandler),
                (r"/(\w+)/?", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler)
               ]
    application = tornado.web.Application(handlers, static_path=STATIC_DIR,
                              template_path=TEMPLATE_DIR,
                              xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
                              term_manager=term_manager)

    application.listen(8700, 'localhost')
    run_and_show_browser("http://localhost:8700/new", term_manager)
def main(argv):
    term_manager = SingleTermManager(shell_command=['bash'])
    handlers = [(r"/user/[\s\S]+/terminals/websocket/1", TermSocket, {
        'term_manager': term_manager
    }), (r"/", TerminalPageHandler), (r"/user/[\s\S]+/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                }),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                })]
    app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'))
    app.listen(8000, '0.0.0.0')
    run_and_show_browser("http://0.0.0.0:8000/", term_manager)
Esempio n. 8
0
def main(argv):
    term_manager = SingleTermManager(shell_command=[
        'docker', 'exec', '-it',
        str(sys.argv[1]),
        str(sys.argv[2])
    ])
    handlers = [(r"/websocket", TermSocket, {
        'term_manager': term_manager
    }), (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                })]
    app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'))
    app.listen(8765, '0.0.0.0')
    run_and_show_browser("http://0.0.0.0:8765/", term_manager)
Esempio n. 9
0
def main(argv):
    term_manager = UniqueTermManager(shell_command=["bash"])
    handlers = [
        (r"/websocket", TermSocket, {
            "term_manager": term_manager
        }),
        (r"/", TerminalPageHandler),
        (
            r"/xstatic/(.*)",
            tornado_xstatic.XStaticFileHandler,
            {
                "allowed_modules": ["termjs"]
            },
        ),
    ]
    app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker("/xstatic/"),
    )
    app.listen(8765, "localhost")
    run_and_show_browser("http://localhost:8765/", term_manager)