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