##// END OF EJS Templates
DEV: Remove ContentsManager.walk.
DEV: Remove ContentsManager.walk.

File last commit:

r18616:d4e327ea
r19827:f5aef843
Show More
api_handlers.py
43 lines | 1.3 KiB | text/x-python | PythonLexer
Thomas Kluyver
Initial REST API for terminals
r18483 import json
from tornado import web
from ..base.handlers import IPythonHandler, json_errors
Min RK
create new terminals with POST /api/terminals...
r18616 from ..utils import url_path_join
Thomas Kluyver
Initial REST API for terminals
r18483
class TerminalRootHandler(IPythonHandler):
@web.authenticated
@json_errors
def get(self):
Min RK
create new terminals with POST /api/terminals...
r18616 tm = self.terminal_manager
Thomas Kluyver
Initial REST API for terminals
r18483 terms = [{'name': name} for name in tm.terminals]
self.finish(json.dumps(terms))
Min RK
create new terminals with POST /api/terminals...
r18616 @web.authenticated
@json_errors
def post(self):
"""POST /terminals creates a new terminal and redirects to it"""
name, _ = self.terminal_manager.new_named_terminal()
self.finish(json.dumps({'name': name}))
Thomas Kluyver
Initial REST API for terminals
r18483 class TerminalHandler(IPythonHandler):
SUPPORTED_METHODS = ('GET', 'DELETE')
@web.authenticated
@json_errors
def get(self, name):
Min RK
create new terminals with POST /api/terminals...
r18616 tm = self.terminal_manager
Thomas Kluyver
Initial REST API for terminals
r18483 if name in tm.terminals:
self.finish(json.dumps({'name': name}))
else:
raise web.HTTPError(404, "Terminal not found: %r" % name)
@web.authenticated
@json_errors
def delete(self, name):
Min RK
create new terminals with POST /api/terminals...
r18616 tm = self.terminal_manager
Thomas Kluyver
Initial REST API for terminals
r18483 if name in tm.terminals:
tm.kill(name)
# XXX: Should this wait for terminal to finish before returning?
self.set_status(204)
self.finish()
else:
raise web.HTTPError(404, "Terminal not found: %r" % name)