in crashclouseau/datacollector.py [0:0]
def get_uuids_fennec(signatures, search_date, channel):
"""Get the uuids for Fennec java crashes"""
logger.info("Get uuids for Fennec-{}: started.".format(channel))
def handler(json, data):
if json["errors"] or not json["facets"]["signature"]:
return
bid = json["facets"]["build_id"][0]["term"]
bid = utils.get_build_date(bid)
for facets in json["facets"]["signature"]:
sgn = facets["term"]
count = facets["count"]
facets = facets["facets"]
uuid = facets["uuid"][0]["term"]
protos = data[sgn]["protos"][bid]
if not protos:
protos.append({"proto": "", "count": count, "uuid": uuid})
base_params = {
"product": "Fennec",
"release_channel": utils.get_search_channel(channel),
"date": search_date,
"build_id": "",
"signature": "",
"_aggs.signature": "uuid",
"_results_number": 0,
"_facets": "build_id",
"_facets_size": 100,
}
queries = []
sgns_by_bids = utils.get_sgns_by_bids(signatures)
for bid, all_signatures in sgns_by_bids.items():
params = copy.deepcopy(base_params)
params["build_id"] = utils.get_buildid(bid)
for sgns in Connection.chunks(all_signatures, 10):
params = copy.deepcopy(params)
params["signature"] = ["=" + s for s in sgns]
queries.append(
Query(
socorro.SuperSearch.URL,
params=params,
handler=handler,
handlerdata=signatures,
)
)
socorro.SuperSearch(queries=queries).wait()
logger.info("Get uuids for Fennec-{}: finished.".format(channel))