def repair_tag_data(caches, project, events): for (group_id, env_name), keys in collect_tag_data(events).items(): environment = caches["Environment"](project.organization_id, env_name) for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): _, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, defaults={ "first_seen": first_seen, "last_seen": last_seen, "times_seen": times_seen, }, ) if not created: tagstore.incr_group_tag_value_times_seen( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, count=times_seen, extra={"first_seen": first_seen}, )
def repair_tag_data(caches, project, events): for group_id, keys in collect_tag_data(events).items(): for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, key=key, ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): instance, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, key=key, value=value, defaults={ 'first_seen': first_seen, 'last_seen': last_seen, 'times_seen': times_seen, }, ) if not created: instance.update( first_seen=first_seen, times_seen=F('times_seen') + times_seen, )
def repair_tag_data(caches, project, events): for group_id, keys in collect_tag_data(events).items(): for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, key=key, ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): instance, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, key=key, value=value, defaults={ 'first_seen': first_seen, 'last_seen': last_seen, 'times_seen': times_seen, }, ) if not created: instance.update( first_seen=first_seen, times_seen=F('times_seen') + times_seen, )
def repair_tag_data(caches, project, events): for (group_id, env_name), keys in collect_tag_data(events).items(): environment = caches['Environment']( project.organization_id, env_name, ) for key, values in keys.items(): tagstore.get_or_create_group_tag_key( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, ) # XXX: `{first,last}_seen` columns don't totally replicate the # ingestion logic (but actually represent a more accurate value.) # See GH-5289 for more details. for value, (times_seen, first_seen, last_seen) in values.items(): _, created = tagstore.get_or_create_group_tag_value( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, defaults={ 'first_seen': first_seen, 'last_seen': last_seen, 'times_seen': times_seen, }, ) if not created: tagstore.incr_group_tag_value_times_seen( project_id=project.id, group_id=group_id, environment_id=environment.id, key=key, value=value, count=times_seen, extra={'first_seen': first_seen} )