diff --git a/reports/error_details.py b/reports/error_details.py index a45bfd5..c3b7b8e 100644 --- a/reports/error_details.py +++ b/reports/error_details.py @@ -160,16 +160,24 @@ if __name__ == '__main__': expiry = 60 * 60 # 1 hour cmds = ['create', 'rebuild', 'rescue', 'resize', 'snapshot'] + requests = models.RawData.objects.filter(when__gt=dstart, when__lte=dend)\ + .exclude(instance=None)\ + .values('request_id', 'instance')\ + .distinct() + inst_recs = {} + for request in requests: + uuid = request['instance'] + request_id = request['request_id'] + if uuid in inst_recs: + inst_recs[uuid].append(request_id) + else: + inst_recs[uuid] = [request_id] + for uuid_dict in updates: uuid = uuid_dict['instance'] - # All the unique Request ID's for this instance during that timespan. - reqs = models.RawData.objects.filter(instance=uuid, - when__gt=dstart, when__lte=dend)\ - .values('request_id').distinct() - req_list = [] - for req_dict in reqs: + for req_dict in inst_recs.get(uuid, []): req = req_dict['request_id'] raws = list(models.RawData.objects.filter(request_id=req)