in crashclouseau/update.py [0:0]
def put_crashes(date, channel, product):
"""Get and put crashes data in the database"""
if not date:
date = pytz.utc.localize(datetime.utcnow())
data = dc.get_new_signatures(product, channel, date)
errors = set()
for sgn, i in data.items():
sgnid = None
for bid, protos in i["protos"].items():
bidid = models.Build.get_id(bid, channel, product)
if bidid is None:
errors.add(bid)
continue
if sgnid is None:
sgnid = models.Signature.get_id(sgn)
models.Stats.add(sgnid, bidid, i["bids"][bid], i["installs"][bid])
for proto in protos:
uuid = proto["uuid"]
proto_sgn = proto["proto"]
models.UUID.add(uuid, sgnid, proto_sgn, bidid, commit=False)
models.commit()
for bid in errors:
logger.info("No buildid in db for {}/{}/{}".format(bid, product, channel))