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, })
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()]), })
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} )
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} )
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, })
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'))
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'))
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, })
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, })
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), })
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, })