Пример #1
0
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},
                    )
Пример #2
0
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,
                    )
Пример #3
0
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,
                    )
Пример #4
0
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}
                    )