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)
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)