##// END OF EJS Templates
Merge pull request #6854 from takluyver/post-new-terminal...
Merge pull request #6854 from takluyver/post-new-terminal Create new terminals with POST request to API

File last commit:

r18616:d4e327ea
r18785:2ad28dc5 merge
Show More
handlers.py
41 lines | 1.3 KiB | text/x-python | PythonLexer
Scott Sanderson
BUG: Set file encoding for IPython.html.terminal.handlers.
r18534 #encoding: utf-8
Thomas Kluyver
Basic infrastructure for terminal page
r18480 """Tornado handlers for the terminal emulator."""
# Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Thomas Kluyver
Compatibility fix for Tornado 3.x
r18494 import tornado
Thomas Kluyver
Basic infrastructure for terminal page
r18480 from tornado import web
Thomas Kluyver
Terminal basically working...
r18481 import terminado
Thomas Kluyver
Basic infrastructure for terminal page
r18480 from ..base.handlers import IPythonHandler
class TerminalHandler(IPythonHandler):
Thomas Kluyver
Multiple terminals and conditional initialisation
r18482 """Render the terminal interface."""
Thomas Kluyver
Basic infrastructure for terminal page
r18480 @web.authenticated
Thomas Kluyver
Multiple terminals and conditional initialisation
r18482 def get(self, term_name):
self.write(self.render_template('terminal.html',
ws_path="terminals/websocket/%s" % term_name))
Thomas Kluyver
Basic infrastructure for terminal page
r18480
Thomas Kluyver
Add authentication for terminal websockets
r18484 class TermSocket(terminado.TermSocket, IPythonHandler):
def get(self, *args, **kwargs):
if not self.get_current_user():
raise web.HTTPError(403)
Thomas Kluyver
Compatibility fix for Tornado 3.x
r18494
# FIXME: only do super get on tornado ≥ 4
# tornado 3 has no get, will raise 405
if tornado.version_info >= (4,):
return super(TermSocket, self).get(*args, **kwargs)
Thomas Kluyver
Fix terminals with Tornado 3...
r18546
def clear_cookie(self, *args, **kwargs):
"""meaningless for websockets"""
pass
Thomas Kluyver
Compatibility fix for Tornado 3.x
r18494
def open(self, *args, **kwargs):
if tornado.version_info < (4,):
try:
self.get(*self.open_args, **self.open_kwargs)
except web.HTTPError:
self.close()
raise
super(TermSocket, self).open(*args, **kwargs)