def put_crashes()

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))