Example #1
0
def _handle_stats_request(stats_req):
    filename = construct_filename(stats_req.start_time, stats_req.end_time)
    data = storage.select_time_range(stats_req.start_time, stats_req.end_time)
    try:
        plot_data(data, filename)
        stats_req.image_id = str(uuid.uuid4())
        # storage.create_image_filename(stats_req.image_id, filename)
        storage.create_image_bytes(stats_req.image_id, open(filename, 'rb').read())
        stats_req.status = Status.COMPLETED
    except GnuplotException as e:
        print traceback.format_exc()
        stats_req.status = Status.ERROR
    except Exception as e:
        print traceback.format_exc()
        stats_req.status = Status.INTERNAL_ERROR

    storage.update_stats_request(stats_req)
Example #2
0
    def on_get(self, req, resp):
        """Handle GET /stats-files"""

        if 'start_time' not in req.params:
            resp.status = falcon.HTTP_400
            resp.body = make_error_body('Need "start_time" url parameter')
            return
        if 'end_time' not in req.params:
            resp.status = falcon.HTTP_400
            resp.body = make_error_body('Need "end_time" url parameter')
            return

        try:
            start_time = float(req.params['start_time'])
            end_time = float(req.params['end_time'])
        except ValueError as e:
            resp.status = falcon.HTTP_400
            resp.body = make_error_body(str(e))
            return
        data = storage.select_time_range(start_time, end_time)
        resp.content_type = 'text/plain'
        resp.status = falcon.HTTP_200
        resp.body = "\n".join(data)