port check_success to facets

this demonstrates how we do client side facets in check_success,
making the code a bit simpler, and pushing the logic to the tested
back end.

Also increase the max query returns by an order of magnitude to
ensure we don't miss any results.

Change-Id: Icdf4842b110e9cbe2ac4674b565e51a16a10e2ee
This commit is contained in:
Sean Dague
2013-12-03 15:47:15 -05:00
parent 32d98ae233
commit f6c70fb9d2

View File

@@ -20,6 +20,7 @@ import os
from launchpadlib import launchpad
import elastic_recheck.elasticRecheck as er
import elastic_recheck.results as er_results
LPCACHEDIR = os.path.expanduser('~/.launchpadlib/cache')
@@ -35,24 +36,17 @@ def get_options():
def collect_metrics(classifier):
data = {}
for q in classifier.queries:
results = classifier.hits_by_query(q['query'], size=3000)
rate = {}
for hit in results:
uuid = hit.build_uuid
success = hit.build_status
if success not in rate:
rate[success] = set(uuid)
else:
rate[success].add(uuid)
results = classifier.hits_by_query(q['query'], size=30000)
facets = er_results.FacetSet()
facets.detect_facets(results, ["build_status", "build_uuid"])
num_fails = 0
if "FAILURE" in rate:
num_fails = len(rate["FAILURE"])
if "FAILURE" in facets:
num_fails = len(facets["FAILURE"])
data[q['bug']] = {
'fails': num_fails,
'hits': rate,
'hits': facets,
'query': q['query']
}