Source code for panel.io.liveness
from tornado import web
from .document import _cleanup_doc
[docs]class LivenessHandler(web.RequestHandler):
[docs] def initialize(self, applications):
self.applications = applications
async def get(self):
endpoint = self.get_argument("endpoint", default=None)
self.set_header('Content-Type', 'application/json')
if endpoint is not None and endpoint not in self.applications:
raise web.HTTPError(400, f"Endpoint {endpoint!r} does not exist.")
elif endpoint is None:
self.write({self.request.path: True})
return
app = self.applications[endpoint]
try:
doc = app.create_document()
_cleanup_doc(doc)
self.write({endpoint: True})
except Exception as e:
raise web.HTTPError(
500, f"Endpoint {endpoint!r} could not be served. Application raised error: {e}"
)