##// END OF EJS Templates
Merge branch csp into 3.x...
Merge branch csp into 3.x Add APIHandler

File last commit:

r21469:b15ba97b
r21487:7222bd53 merge
Show More
handlers.py
59 lines | 1.7 KiB | text/x-python | PythonLexer
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 """Tornado handlers for cluster web service."""
Brian E. Granger
Adding new files.
r10641
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 # Copyright (c) IPython Development Team.
# Distributed under the terms of the Modified BSD License.
Brian E. Granger
Adding new files.
r10641
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 import json
Brian E. Granger
Adding new files.
r10641
from tornado import web
Min RK
Add APIHandler base class...
r21469 from ...base.handlers import APIHandler
Brian E. Granger
Adding new files.
r10641
#-----------------------------------------------------------------------------
# Cluster handlers
#-----------------------------------------------------------------------------
Min RK
Add APIHandler base class...
r21469 class MainClusterHandler(APIHandler):
Brian E. Granger
Adding new files.
r10641
@web.authenticated
def get(self):
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 self.finish(json.dumps(self.cluster_manager.list_profiles()))
Brian E. Granger
Adding new files.
r10641
Min RK
Add APIHandler base class...
r21469 class ClusterProfileHandler(APIHandler):
Brian E. Granger
Adding new files.
r10641
@web.authenticated
def get(self, profile):
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 self.finish(json.dumps(self.cluster_manager.profile_info(profile)))
Brian E. Granger
Adding new files.
r10641
Min RK
Add APIHandler base class...
r21469 class ClusterActionHandler(APIHandler):
Brian E. Granger
Adding new files.
r10641
@web.authenticated
def post(self, profile, action):
cm = self.cluster_manager
if action == 'start':
MinRK
fix default cluster count
r10685 n = self.get_argument('n', default=None)
if not n:
Brian E. Granger
Adding new files.
r10641 data = cm.start_cluster(profile)
else:
data = cm.start_cluster(profile, int(n))
if action == 'stop':
data = cm.stop_cluster(profile)
MinRK
only use zmq.jsonapi when talking to zmq sockets...
r17021 self.finish(json.dumps(data))
Brian E. Granger
More work on the handlers
r10647
#-----------------------------------------------------------------------------
# URL to handler mappings
#-----------------------------------------------------------------------------
_cluster_action_regex = r"(?P<action>start|stop)"
_profile_regex = r"(?P<profile>[^\/]+)" # there is almost no text that is invalid
default_handlers = [
(r"/clusters", MainClusterHandler),
(r"/clusters/%s/%s" % (_profile_regex, _cluster_action_regex), ClusterActionHandler),
(r"/clusters/%s" % _profile_regex, ClusterProfileHandler),
]