##// END OF EJS Templates
Initial REST API for terminals
Thomas Kluyver -
Show More
@@ -0,0 +1,35 b''
1 import json
2 from tornado import web
3 from ..base.handlers import IPythonHandler, json_errors
4
5 class TerminalRootHandler(IPythonHandler):
6 @web.authenticated
7 @json_errors
8 def get(self):
9 tm = self.application.terminal_manager
10 terms = [{'name': name} for name in tm.terminals]
11 self.finish(json.dumps(terms))
12
13 class TerminalHandler(IPythonHandler):
14 SUPPORTED_METHODS = ('GET', 'DELETE')
15
16 @web.authenticated
17 @json_errors
18 def get(self, name):
19 tm = self.application.terminal_manager
20 if name in tm.terminals:
21 self.finish(json.dumps({'name': name}))
22 else:
23 raise web.HTTPError(404, "Terminal not found: %r" % name)
24
25 @web.authenticated
26 @json_errors
27 def delete(self, name):
28 tm = self.application.terminal_manager
29 if name in tm.terminals:
30 tm.kill(name)
31 # XXX: Should this wait for terminal to finish before returning?
32 self.set_status(204)
33 self.finish()
34 else:
35 raise web.HTTPError(404, "Terminal not found: %r" % name) No newline at end of file
@@ -1,6 +1,7 b''
1 import os
1 import os
2 from terminado import NamedTermManager
2 from terminado import NamedTermManager
3 from .handlers import TerminalHandler, NewTerminalHandler, TermSocket
3 from .handlers import TerminalHandler, NewTerminalHandler, TermSocket
4 from . import api_handlers
4
5
5 def initialize(webapp):
6 def initialize(webapp):
6 shell = os.environ.get('SHELL', 'sh')
7 shell = os.environ.get('SHELL', 'sh')
@@ -10,5 +11,7 b' def initialize(webapp):'
10 (r"/terminals/(\w+)", TerminalHandler),
11 (r"/terminals/(\w+)", TerminalHandler),
11 (r"/terminals/websocket/(\w+)", TermSocket,
12 (r"/terminals/websocket/(\w+)", TermSocket,
12 {'term_manager': webapp.terminal_manager}),
13 {'term_manager': webapp.terminal_manager}),
14 (r"/api/terminals", api_handlers.TerminalRootHandler),
15 (r"/api/terminals/(\w+)", api_handlers.TerminalHandler),
13 ]
16 ]
14 webapp.add_handlers(".*$", handlers) No newline at end of file
17 webapp.add_handlers(".*$", handlers)
General Comments 0
You need to be logged in to leave comments. Login now