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 == []
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
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, )
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, )
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, )