Files @ 104ff4606565
Branch filter:

Location: light9/light9/greplin_cyclone.py

Drew Perttula
cleanup. internal names in edit.py
Ignore-this: a27582c2365bed1cd24a775227a02e24
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)