diff --git a/elastic_recheck/cmd/graph.py b/elastic_recheck/cmd/graph.py index 35bcd65a..6f4e6b6d 100755 --- a/elastic_recheck/cmd/graph.py +++ b/elastic_recheck/cmd/graph.py @@ -49,6 +49,8 @@ def main(): help='path to query file') parser.add_argument('-o', dest='output', help='output filename') + parser.add_argument('-q', dest='queue', + help='limit results to a specific query') args = parser.parse_args() classifier = er.Classifier(args.queries) @@ -63,6 +65,9 @@ def main(): start = now - (14 * 24 * STEP) for query in classifier.queries: + if args.queue: + query['query'] = query['query'] + ('AND build_queue:"%s"' % + args.queue) urlq = dict(search=query['query'], fields=[], offset=0, @@ -78,7 +83,9 @@ def main(): fails24=0, data=[]) buglist.append(bug) - results = classifier.hits_by_query(query['query'], size=3000) + results = classifier.hits_by_query(query['query'], + args.queue, + size=3000) facets_for_fail = er_results.FacetSet() facets_for_fail.detect_facets(results, diff --git a/elastic_recheck/elasticRecheck.py b/elastic_recheck/elasticRecheck.py index 4e4f28ee..9b76d5e9 100755 --- a/elastic_recheck/elasticRecheck.py +++ b/elastic_recheck/elasticRecheck.py @@ -286,8 +286,11 @@ class Classifier(): self.queries_dir = queries_dir self.queries = loader.load(self.queries_dir) - def hits_by_query(self, query, facet=None, size=100): - es_query = qb.generic(query, facet=facet) + def hits_by_query(self, query, queue=None, facet=None, size=100): + if queue: + es_query = qb.single_queue(query, queue, facet=facet) + else: + es_query = qb.generic(query, facet=facet) return self.es.search(es_query, size=size) def classify(self, change_number, patch_number, short_build_uuid, diff --git a/elastic_recheck/query_builder.py b/elastic_recheck/query_builder.py index bf03993c..eda4f31e 100644 --- a/elastic_recheck/query_builder.py +++ b/elastic_recheck/query_builder.py @@ -59,6 +59,13 @@ def generic(raw_query, facet=None): return query +def single_queue(query, queue, facet=None): + """A query for a single queue.""" + return generic('%s ' + 'AND build_queue:"%s" ' % + (query, queue), facet=facet) + + def result_ready(review, patch, name, short_build_uuid): """A query to determine if we have a failure for a particular patch.