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_message_details(request, group_id, message_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 and 'exc' in message.data['__sentry__']: 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,)) else: traceback = None return render_to_response('sentry/group/message.html', { 'page': 'messages', 'group': group, 'message': message, 'json_data': iter_data(message), 'traceback': traceback, })
def group_message_details(request, group_id, message_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 and "exc" in message.data["__sentry__"]: 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 json_data = iter_data(message) page = "messages" return render_to_response("sentry/group/message.html", locals())
def group_message_details(request, group_id, message_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 and 'exc' in message.data['__sentry__']: 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 json_data = iter_data(message) page = 'messages' return render_to_response('sentry/group/message.html', locals())
def group_message_details(request, group_id, message_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 and "exc" in message.data["__sentry__"]: 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,)) else: traceback = None return render_to_response( "sentry/group/message.html", { "page": "messages", "group": group, "message": message, "json_data": iter_data(message), "traceback": traceback, }, )
def group(request, group_id): group = get_object_or_404(GroupedMessage, pk=group_id) try: obj = group.message_set.all().order_by("-id")[0] except IndexError: # It's possible that a message would not be created under certain circumstances # (such as a post_save signal failing) obj = Message(group=group, data=group.data) if "__sentry__" in obj.data and "exc" in obj.data["__sentry__"]: module, args, frames = obj.data["__sentry__"]["exc"] obj.class_name = str(obj.class_name) # We fake the exception class due to many issues with imports/builtins/etc exc_type = type(obj.class_name, (Exception,), {}) exc_value = exc_type(obj.message) exc_value.args = args reporter = ImprovedExceptionReporter( obj.request, exc_type, exc_value, frames, obj.data["__sentry__"].get("template") ) traceback = mark_safe(reporter.get_traceback_html()) version_data = obj.data["__sentry__"].get("versions", {}).iteritems() elif group.traceback: traceback = mark_safe("<pre>%s</pre>" % (group.traceback,)) version_data = None else: traceback = None version_data = None return render_to_response( "sentry/group/details.html", { "page": "details", "group": group, "json_data": iter_data(obj), "traceback": traceback, "version_data": version_data, }, )
def group(request, group_id): group = get_object_or_404(GroupedMessage, pk=group_id) try: obj = group.message_set.all().order_by('-id')[0] except IndexError: # It's possible that a message would not be created under certain circumstances # (such as a post_save signal failing) obj = Message(group=group, data=group.data) if '__sentry__' in obj.data and 'exc' in obj.data['__sentry__']: module, args, frames = obj.data['__sentry__']['exc'] obj.class_name = str(obj.class_name) # We fake the exception class due to many issues with imports/builtins/etc exc_type = type(obj.class_name, (Exception, ), {}) exc_value = exc_type(obj.message) exc_value.args = args reporter = ImprovedExceptionReporter( obj.request, exc_type, exc_value, frames, obj.data['__sentry__'].get('template')) traceback = mark_safe(reporter.get_traceback_html()) version_data = obj.data['__sentry__'].get('versions', {}).iteritems() elif group.traceback: traceback = mark_safe('<pre>%s</pre>' % (group.traceback, )) version_data = None def iter_data(obj): for k, v in obj.data.iteritems(): if k.startswith('_') or k in ['url']: continue yield k, v json_data = iter_data(obj) page = 'details' return render_to_response('sentry/group/details.html', locals())
def group(request, group_id): group = get_object_or_404(GroupedMessage, pk=group_id) try: obj = group.message_set.all().order_by('-id')[0] except IndexError: # It's possible that a message would not be created under certain circumstances # (such as a post_save signal failing) obj = Message(group=group, data=group.data) if '__sentry__' in obj.data and 'exc' in obj.data['__sentry__']: module, args, frames = obj.data['__sentry__']['exc'] obj.class_name = str(obj.class_name) # We fake the exception class due to many issues with imports/builtins/etc exc_type = type(obj.class_name, (Exception,), {}) exc_value = exc_type(obj.message) exc_value.args = args reporter = ImprovedExceptionReporter(obj.request, exc_type, exc_value, frames, obj.data['__sentry__'].get('template')) traceback = mark_safe(reporter.get_traceback_html()) version_data = obj.data['__sentry__'].get('versions', {}).iteritems() elif group.traceback: traceback = mark_safe('<pre>%s</pre>' % (group.traceback,)) version_data = None def iter_data(obj): for k, v in obj.data.iteritems(): if k.startswith('_') or k in ['url']: continue yield k, v json_data = iter_data(obj) page = 'details' return render_to_response('sentry/group/details.html', locals())