Files @ d01e21621975
Branch filter:

Location: light9/light9/greplin_cyclone.py

Drew Perttula
import cyclone.web, cyclone.websocket, cyclone.httpclient

import greplin.scales.twistedweb, greplin.scales.formats
from greplin import scales


# Like scales.twistedweb.StatsResource, but modified for cyclone. May
# be missing features.
class StatsForCyclone(cyclone.web.RequestHandler):

    def get(self):
        parts = []
        statDict = greplin.scales.twistedweb.util.lookup(
            scales.getStats(), parts)

        if statDict is None:
            self.set_status(404)
            self.write("Path not found.")
            return

        query = self.get_argument('query', default=None)

        if self.get_argument('format', default=None) == 'json':
            self.set_header('content-type', 'text/javascript; charset=UTF-8')
            greplin.scales.formats.jsonFormat(self, statDict, query)
        elif self.get_argument('format', default=None) == 'prettyjson':
            self.set_header('content-type', 'text/javascript; charset=UTF-8')
            greplin.scales.formats.jsonFormat(self,
                                              statDict,
                                              query,
                                              pretty=True)
        else:
            greplin.scales.formats.htmlHeader(self, '/' + '/'.join(parts),
                                              'svr', query)
            greplin.scales.formats.htmlFormat(self, tuple(parts), statDict,
                                              query)