blob: c1af666474b0cfc5c81cd939660df7244eb68ef6 [file] [log] [blame]
# Copyright (c) 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import json
import os
import webapp2
from perf_insights import cloud_config
from perf_insights import corpus_query
from perf_insights import trace_info
from google.appengine.api import app_identity
def _bucket_name():
if 'GCS_BUCKET_NAME' not in os.environ:
return app_identity.get_default_gcs_bucket_name()
return os.environ['GCS_BUCKET_NAME']
class QueryPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
raw_query = self.request.get('q')
if not raw_query:
raw_query = 'MAX_TRACE_HANDLES=100'
query = corpus_query.CorpusQuery.FromString(raw_query)
(gql, args) = query.AsGQLWhereClause()
reports = trace_info.TraceInfo.gql(gql, *args)
reports_json = json.dumps(
['gs://%s/%s.gz' % (cloud_config.Get().trace_upload_bucket,
i.key.string_id()) for i in reports])
self.response.out.write(reports_json)
app = webapp2.WSGIApplication([('/query', QueryPage)])