Exemple #1
0
def group_message_details(group_id, event_id):
    group = get_object_or_404(GroupedMessage, pk=group_id)

    message = get_object_or_404(group.message_set, pk=message_id)

    if '__sentry__' in message.data:
        module, args, frames = message.data['__sentry__']['exc']
        message.class_name = str(message.class_name)
        # We fake the exception class due to many issues with imports/builtins/etc
        exc_type = type(message.class_name, (Exception,), {})
        exc_value = exc_type(message.message)

        exc_value.args = args

        reporter = ImprovedExceptionReporter(message.request, exc_type, exc_value, frames, message.data['__sentry__'].get('template'))
        traceback = mark_safe(reporter.get_traceback_html())
    elif group.traceback:
        traceback = mark_safe('<pre>%s</pre>' % (group.traceback,))

    def iter_data(obj):
        for k, v in obj.data.iteritems():
            if k.startswith('_') or k in ['url']:
                continue
            yield k, v

    return render_template('sentry/group/message.html', **{
        'page': 'messages',
        'json_data': iter_data(message),
        'group': group,
        'message': message,
        'traceback': traceback,
    })
Exemple #2
0
def group_event_details(group_id, event_id):
    group = get_object_or_404(Group, pk=group_id)
    event = get_object_or_404(Event, pk=event_id)

    def iter_data(obj):
        for k, v in obj.data['extra'].iteritems():
            if k.startswith('_') or k in ['url']:
                continue
            yield k, v

    return render_template('sentry/group/event.html', **{
        'page': 'events',
        'json_data': iter_data(event),
        'group': group,
        'event': event,
        'interface_list': filter(None, [Markup(i.to_html(event) or '') for i in event.get_interfaces()]),
    })
Exemple #3
0
def group_event_list(group_id):
    group = get_object_or_404(Group, pk=group_id)

    event_list = group.get_relations(Event)

    return render_template(
        "sentry/group/event_list.html", **{"page": "events", "group": group, "event_list": event_list}
    )
Exemple #4
0
def group_event_details(group_id, event_id):
    group = get_object_or_404(Group, pk=group_id)
    event = get_object_or_404(Event, pk=event_id)

    def iter_data(obj):
        for k, v in obj.data["extra"].iteritems():
            if k.startswith("_") or k in ["url"]:
                continue
            yield k, v

    # Render our event's custom output
    processor = event.get_processor()
    event_html = Markup(processor.to_html(event, event.data.get("event")))

    return render_template(
        "sentry/group/event.html",
        **{"page": "events", "json_data": iter_data(event), "group": group, "event": event, "event_html": event_html}
    )
Exemple #5
0
def group_event_list(group_id):
    group = get_object_or_404(Group, pk=group_id)

    event_list = group.get_relations(Event)

    return render_template('sentry/group/event_list.html', **{
        'page': 'events',
        'group': group,
        'event_list': event_list,
    })
Exemple #6
0
def group_plugin_action(request, group_id, slug):
    group = get_object_or_404(GroupedMessage, pk=group_id)
    
    try:
        cls = GroupActionProvider.plugins[slug]
    except KeyError:
        abort(404, 'Plugin not found')
    response = cls(group_id)(request, group)
    if response:
        return response
    return redirect(request.META.get('HTTP_REFERER') or reverse('sentry'))
Exemple #7
0
def group_plugin_action(group_id, slug):
    group = get_object_or_404(Group, pk=group_id)
    
    try:
        cls = GroupActionProvider.plugins[slug]
    except KeyError:
        abort(404, 'Plugin not found')
    response = cls(group_id)(request, group)
    if response:
        return response
    return redirect(request.environ.get('HTTP_REFERER') or url_for('index'))
Exemple #8
0
def group_message_list(group_id):
    group = get_object_or_404(GroupedMessage, pk=group_id)

    message_list = group.message_set.all().order_by('-datetime')

    page = 'messages'

    return render_template('sentry/group/message_list.html', **{
        'page': 'messages',
        'group': group,
        'message_list': message_list,
    })
Exemple #9
0
def group_event_details(group_id, event_id):
    group = get_object_or_404(Group, pk=group_id)
    event = get_object_or_404(Event, pk=event_id)

    def iter_data(obj):
        for k, v in obj.data.iteritems():
            if k.startswith('_') or k in ['url']:
                continue
            yield k, v

    # Render our event's custom output
    processor = event.get_processor()
    event_html = Markup(processor.to_html(event, event.data.get('__event__')))

    return render_template('sentry/group/event.html', **{
        'page': 'events',
        'json_data': iter_data(event),
        'group': group,
        'event': event,
        'event_html': event_html,
    })
Exemple #10
0
def group_details(group_id):
    group = get_object_or_404(Group, pk=group_id)
    
    last_event = group.get_relations(Event, limit=1)[0]

    def iter_data(obj):
        for k, v in obj.data.get('extra', {}).iteritems():
            if k.startswith('_') or k in ['url']:
                continue
            yield k, v

    return render_template('sentry/group/details.html', **{
        'page': 'details',
        'interface_list': filter(None, [Markup(i.to_html(last_event) or '') for i in last_event.get_interfaces()]),
        'group': group,
        'json_data': iter_data(last_event),
    })
Exemple #11
0
def group_details(group_id):
    group = get_object_or_404(Group, pk=group_id)
    
    last_event = group.get_relations(Event, limit=1)[0]

    def iter_data(obj):
        for k, v in obj.data.iteritems():
            if k.startswith('_') or k in ['url']:
                continue
            yield k, v

    # Render our event's custom output
    event_html = Markup(last_event.get_processor().to_html(last_event))
    
    return render_template('sentry/group/details.html', **{
        'page': 'details',
        'group': group,
        'json_data': iter_data(last_event),
        'event_html': event_html,
    })