Exemplo n.º 1
0
def terminal(app, port, debug=False):
    term_manager = NamedTermManager(shell_command=None, max_terminals=100)
    wrapped_app = WSGIContainer(app)
    handlers = [
        (r"/_websocket/(\w+)", TermSocket, {
            'term_manager': term_manager
        }),
        (r"/terminal/new/([a-zA-Z\-0-9\.]+)/(.*)/?", NewTerminalHandler),
        (r"/terminal/open/([a-zA-Z\-0-9\.]+)/(.*)/?", TerminalPageHandler),
        (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler),
        ("/(.*)", tornado.web.FallbackHandler, {
            'fallback': wrapped_app
        }),
    ]

    tornado_app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
        term_manager=term_manager,
        debug=debug)
    http_server = HTTPServer(tornado_app)
    http_server.listen(port, '0.0.0.0')
    IOLoop.instance().start()
Exemplo n.º 2
0
def start(listen_address='127.0.0.1',
          listen_port=8001,
          ssl_crt=None,
          ssl_key=None,
          asterisk_binary='/usr/sbin/asterisk',
          asterisk_options='-vvvvvr'):
    salt.utils.process.appendproctitle('AsteriskCLI')
    log.info('Starting Asterisk CLI server at %s:%s.', listen_address,
             listen_port)
    io_loop = salt.ext.tornado.ioloop.IOLoop(make_current=False)
    io_loop.make_current()
    term_manager = UniqueTermManager(
        shell_command=[asterisk_binary, asterisk_options], ioloop=io_loop)
    handlers = [(r'/ws', MyTermSocket, {
        'term_manager': term_manager
    }),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                })]
    # Init app.
    app = salt.ext.tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'))
    ssl_options = None
    if all([ssl_crt, ssl_key]):
        ssl_options = {"certfile": ssl_crt, "keyfile": ssl_key}
    http_server = salt.ext.tornado.httpserver.HTTPServer(
        app, ssl_options=ssl_options)
    http_server.listen(listen_port, address=listen_address)
    try:
        if not io_loop._running:
            io_loop.start()
    finally:
        term_manager.shutdown()
Exemplo n.º 3
0
def main(argv):

    term_manager = UniqueTermManager(shell_command=['bash'])

    handlers = [
                (r"/websocket", TermSocket,
                     {'term_manager': term_manager, 'keep_alive_time': 30}),  # AJL: added the keep_alive after noticed dropped ws in class after 55s Heroku limit.
                (r"/", TerminalHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
                     {'allowed_modules': ['termjs']}),
                (r"/(dir[0-9][0-9])", ClassDir),
                (r"/(class[0-9][0-9])/(week[0-9][0-9])/([0-9][0-9])", ClassWeek),
                (r"/(class[0-9][0-9])/(lesson[0-9][0-9])/([0-9][0-9])", ClassLesson),
                # (r"/test", TestHandler),
                (r"/ws", WSHandler),
               ]

    app = tornado.web.Application(handlers,
                                  # static_path=os.path.join(os.path.dirname(terminado.__file__), "static/js"),
                                  static_path=os.path.join(os.path.dirname(__file__), "static"),
                                  # static_path=os.path.join(os.path.dirname(__file__), "static"),
                                  template_path=os.path.join(os.path.dirname(__file__), "templates"),
                                  ui_modules={'Terminal': uimodule.Terminal},
                                  xstatic_url=tornado_xstatic.url_maker('/xstatic/', True)
                                  )

    http_server = tornado.httpserver.HTTPServer(app)
    port = int(os.environ.get("PORT", 8765))
    http_server.listen(port)
    tornado.ioloop.IOLoop.instance().start()
Exemplo n.º 4
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)
Exemplo n.º 5
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)
Exemplo n.º 6
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)
Exemplo n.º 7
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)
Exemplo n.º 8
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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
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)
Exemplo n.º 11
0
def main():
    print("Starting")
    term_manager = NamedTermManager(shell_command=['zsh'], max_terminals=100)

    handlers = [(r"/_websocket/(\w+)", TermSocket, {
        'term_manager': term_manager
    }), (r"/multi/?", MultiTerm), (r"/new/?", NewTerminalHandler),
                (r"/(\w+)/?", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler),
                (r"/static/(.*)", tornado.web.StaticFileHandler)]
    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(5001, '0.0.0.0')
    tornado.ioloop.IOLoop.current().start()
Exemplo n.º 12
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)
Exemplo n.º 13
0
def main(argv):
    term_manager = ProtectedTermManager()
    handlers = [(r"/file", FileUploadHandler),
                (r"/websocket", UserTermSocket, {
                    'term_manager': term_manager
                }), (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                }),
                (r"/(.*)", tornado.web.StaticFileHandler, {
                    "path": "./client"
                })]
    app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        template_path=TEMPLATE_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'),
        cookie_secret="TEST_SECRET")
    app.listen(80, '0.0.0.0')
    run_and_show_browser("http://0.0.0.0/", term_manager)
Exemplo n.º 14
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)
Exemplo n.º 15
0

class TerminalPageHandler(tornado.web.RequestHandler):
    def get(self):
        return self.render("termpage.html",
                           static=self.static_url,
                           xstatic=self.application.settings['xstatic_url'],
                           ws_url_path="/websocket")


if __name__ == '__main__':
    term_manager = terminado.SingleTermManager(shell_command=['bash'])
    handlers = [(r"/websocket", terminado.TermSocket, {
        'term_manager': term_manager
    }), (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                })]
    app = tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'))
    # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here will
    # work, but it will listen on the public network interface as well.
    # Given what terminado does, that would be rather a security hole.
    app.listen(3100, 'localhost')
    # app.listen(3030, '127.0.0.1')
    try:
        tornado.ioloop.IOLoop.instance().start()
    finally:
        term_manager.shutdown()
Exemplo n.º 16
0
STATIC_DIR = os.path.join(os.path.dirname(terminado.__file__), "_static")


class TerminalPageHandler(tornado.web.RequestHandler):
    def get(self):
        return self.render(
            "termpage.html",
            static=self.static_url,
            xstatic=self.application.settings["xstatic_url"],
            ws_url_path="/websocket",
        )


if __name__ == "__main__":
    term_manager = terminado.UniqueTermManager(shell_command=["bash"])
    handlers = [
        (r"/websocket", terminado.TermSocket, {"term_manager": term_manager}),
        (r"/", TerminalPageHandler),
        (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {"allowed_modules": ["termjs"]}),
    ]
    app = tornado.web.Application(handlers, static_path=STATIC_DIR, xstatic_url=tornado_xstatic.url_maker("/xstatic/"))
    # Serve at http://localhost:8765/ N.B. Leaving out 'localhost' here will
    # work, but it will listen on the public network interface as well.
    # Given what terminado does, that would be rather a security hole.
    app.listen(8765, "localhost")
    try:
        tornado.ioloop.IOLoop.instance().start()
    finally:
        term_manager.shutdown()
Exemplo n.º 17
0
def make_app():
	global term_manager

	settings = {
		"xstatic_url": tornado_xstatic.url_maker('/xstatic/'),
		"template_path": "templates",
		"cookie_secret": get_cookie_secret(),
		"login_url": "/login",
		"upload_progress_handler": dict()
		#"autoescape": None
	}

	term_manager = SingleTermManager(shell_command=['./zynbash.sh'])

	return tornado.web.Application([
		(r'/$', DashboardHandler),
		#(r'/()$', tornado.web.StaticFileHandler, {'path': 'html', "default_filename": "index.html"}),
		(r'/(.*\.html)$', tornado.web.StaticFileHandler, {'path': 'html'}),
		(r'/(favicon\.ico)$', tornado.web.StaticFileHandler, {'path': 'img'}),
		(r'/fonts/(.*)$', tornado.web.StaticFileHandler, {'path': 'fonts'}),
		(r'/img/(.*)$', tornado.web.StaticFileHandler, {'path': 'img'}),
		(r'/css/(.*)$', tornado.web.StaticFileHandler, {'path': 'css'}),
		(r'/js/(.*)$', tornado.web.StaticFileHandler, {'path': 'js'}),
		(r'/captures/(.*)$', tornado.web.StaticFileHandler, {'path': 'captures'}),
		(r'/bower_components/(.*)$', tornado.web.StaticFileHandler, {'path': 'bower_components'}),
		(r"/login", LoginHandler),
		(r"/logout", LogoutHandler),
		(r"/lib-snapshot$", SnapshotConfigHandler),
		(r"/lib-snapshot/ajax/(.*)$", SnapshotConfigHandler),
		(r"/lib-snapshot/download/(.*)$", SnapshotDownloadHandler),
		(r"/lib-snapshot/remove/(.*)/(.*)$", SnapshotRemoveOptionHandler),
		(r"/lib-snapshot/remove-layer/(.*)/(.*)$", SnapshotRemoveLayerHandler),
		(r"/lib-snapshot/add/(.*)/(.*)$", SnapshotAddOptionsHandler),
		(r"/lib-presets$", PresetsConfigHandler),
		(r"/lib-presets/(.*)$", PresetsConfigHandler),
		(r"/lib-presets/(.*)/(.*)$", PresetsConfigHandler),
		(r"/lib-captures$", CapturesConfigHandler),
		(r"/hw-kit$", KitConfigHandler),
		(r"/hw-audio$", AudioConfigHandler),
		(r"/hw-audio-mixer$", AudioMixerHandler),
		(r"/hw-audio-mixer/(.*)/(.*)$", AudioMixerHandler),
		(r"/hw-display$", DisplayConfigHandler),
		(r"/hw-wiring$", WiringConfigHandler),
		(r"/sw-update$", SoftwareUpdateHandler),
		(r"/sw-pianoteq$", PianoteqHandler),
		(r"/sw-jalv-lv2$", JalvLv2Handler),
		(r"/sw-repos$", RepositoryHandler),
		(r"/ui-options$", UiConfigHandler),
		(r"/ui-keybind$", UiKeybindHandler),
		(r"/ui-log$", UiLogHandler),
		(r"/ui-midi-options$", MidiConfigHandler),
		(r"/ui-midi-log$", MidiLogHandler),
		(r"/sys-wifi$", WifiConfigHandler),
		(r"/sys-backup$", SystemBackupHandler),
		(r"/sys-security$", SecurityConfigHandler),
		(r"/sys-reboot$", RebootHandler),
		(r"/sys-poweroff$", PoweroffHandler),
		(r"/wifi/list$", WifiListHandler),
		(r'/upload$', UploadHandler),
		(r"/ws$", ZynthianWebSocketHandler),
		(r"/zynterm", ZyntermHandler),
		(r"/zynterm_ws", TermSocket, {'term_manager': term_manager}),
		(r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {'allowed_modules': ['termjs']})
	], **settings)