Пример #1
0
    def test_environment(self):
        self.login_as(user=self.user)

        group = self.create_group()
        events = {}

        for name in ['production', 'development']:
            environment = Environment.get_or_create(group.project, name)

            tagstore.get_or_create_tag_key(
                project_id=group.project_id,
                environment_id=environment.id,
                key='environment',
            )

            tagstore.create_tag_value(
                project_id=group.project_id,
                environment_id=environment.id,
                key='environment',
                value=name,
            )

            events[name] = event = self.create_event(
                group=group,
                tags={'environment': name},
            )

            tagstore.create_event_tags(
                project_id=group.project_id,
                group_id=group.id,
                environment_id=environment.id,
                event_id=event.id,
                tags=[
                    ('environment', name),
                ],
            )

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(url + '?environment=production',
                                   format='json')

        assert response.status_code == 200, response.content
        assert set(map(lambda x: x['id'], response.data)) == set([
            six.text_type(events['production'].id),
        ])

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(url + '?environment=invalid', format='json')

        assert response.status_code == 200, response.content
        assert response.data == []

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(
            url + '?environment=production&query=environment:development',
            format='json')

        assert response.status_code == 200, response.content
        assert response.data == []
Пример #2
0
    def test_environment(self):
        self.login_as(user=self.user)

        group = self.create_group()
        events = {}

        for name in ['production', 'development']:
            environment = Environment.get_or_create(group.project, name)

            tagstore.get_or_create_tag_key(
                project_id=group.project_id,
                environment_id=environment.id,
                key='environment',
            )

            tagstore.create_tag_value(
                project_id=group.project_id,
                environment_id=environment.id,
                key='environment',
                value=name,
            )

            events[name] = event = self.create_event(
                group=group,
                tags={'environment': name},
            )

            tagstore.create_event_tags(
                project_id=group.project_id,
                group_id=group.id,
                environment_id=environment.id,
                event_id=event.id,
                tags=[
                    ('environment', name),
                ],
            )

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(url + '?environment=production', format='json')

        assert response.status_code == 200, response.content
        assert set(map(lambda x: x['id'], response.data)) == set([
            six.text_type(events['production'].id),
        ])

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(url + '?environment=invalid', format='json')

        assert response.status_code == 200, response.content
        assert response.data == []

        url = u'/api/0/issues/{}/events/'.format(group.id)
        response = self.client.get(
            url + '?environment=production&query=environment:development',
            format='json')

        assert response.status_code == 200, response.content
        assert response.data == []
Пример #3
0
def index_event_tags(organization_id,
                     project_id,
                     event_id,
                     tags,
                     group_id=None,
                     **kwargs):
    from sentry import tagstore
    from sentry.models import EventTag

    Raven.tags_context({
        'project': project_id,
    })

    for key, value in tags:
        tagkey, _ = tagstore.get_or_create_tag_key(project_id, key)
        tagvalue, _ = tagstore.get_or_create_tag_value(project_id, key, value)

        try:
            # handle replaying of this task
            with transaction.atomic():
                EventTag.objects.create(
                    project_id=project_id,
                    group_id=group_id,
                    event_id=event_id,
                    key_id=tagkey.id,
                    value_id=tagvalue.id,
                )
        except IntegrityError:
            pass
Пример #4
0
def index_event_tags(organization_id, project_id, event_id, tags, group_id,
                     environment_id, **kwargs):
    from sentry import tagstore

    Raven.tags_context({
        'project': project_id,
    })

    tag_ids = []
    for key, value in tags:
        tagkey, _ = tagstore.get_or_create_tag_key(project_id, environment_id,
                                                   key)
        tagvalue, _ = tagstore.get_or_create_tag_value(project_id,
                                                       environment_id,
                                                       key,
                                                       value,
                                                       key_id=tagkey.id)
        tag_ids.append((tagkey.id, tagvalue.id))

    tagstore.create_event_tags(
        project_id=project_id,
        group_id=group_id,
        environment_id=environment_id,
        event_id=event_id,
        tags=tag_ids,
    )
Пример #5
0
def index_event_tags(organization_id, project_id, event_id, tags, group_id,
                     environment_id, **kwargs):
    from sentry import tagstore

    Raven.tags_context({
        'project': project_id,
    })

    tag_ids = []
    for key, value in tags:
        tagkey, _ = tagstore.get_or_create_tag_key(project_id, environment_id,
                                                   key)
        # TODO(brett): optimization to hand `get_or_create_tag_value` the key_id
        # so it doesn't have to hit the database for something we just had on hand
        tagvalue, _ = tagstore.get_or_create_tag_value(project_id,
                                                       environment_id, key,
                                                       value)
        tag_ids.append((tagkey.id, tagvalue.id))

    tagstore.create_event_tags(
        project_id=project_id,
        group_id=group_id,
        environment_id=environment_id,
        event_id=event_id,
        tags=tag_ids,
    )
Пример #6
0
def index_event_tags(organization_id, project_id, event_id, tags, group_id=None, **kwargs):
    from sentry import tagstore

    Raven.tags_context({
        'project': project_id,
    })

    for key, value in tags:
        tagkey, _ = tagstore.get_or_create_tag_key(project_id, key)
        tagvalue, _ = tagstore.get_or_create_tag_value(project_id, key, value)

        tagstore.create_event_tag(
            project_id=project_id,
            group_id=group_id,
            event_id=event_id,
            key_id=tagkey.id,
            value_id=tagvalue.id,
        )