def test_clean_data_from_query_parameters(self) -> None: from zerver.filters import clean_data_from_query_parameters self.assertEqual( clean_data_from_query_parameters("api_key=abcdz&stream=1"), "api_key=******&stream=******") self.assertEqual( clean_data_from_query_parameters( "api_key=abcdz&stream=foo&topic=bar"), "api_key=******&stream=******&topic=******")
def email_server_error(report: Dict[str, Any]) -> None: email_subject = "{node}: {message}".format(**report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report["has_request"]: request_repr = """\ Request info: - path: {path} - {method}: {data} """.format( **report ) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += f'- {field}: "{val}"\n' else: request_repr = "Request info: none\n" message = f"""\ {logger_str} Error generated by {user_info} {report['stack_trace']} {deployment} {request_repr}""" mail_admins(format_email_subject(email_subject), message, fail_silently=True)
def email_server_error(report: Dict[str, Any]) -> None: email_subject = '%(node)s: %(message)s' % dict(report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report['has_request']: request_repr = ("Request info:\n" "- path: %(path)s\n" "- %(method)s: %(data)s\n") % dict(report) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += "- %s: \"%s\"\n" % (field, val) else: request_repr = "Request info: none\n" message = ("%s\nError generated by %s\n\n%s\n\n%s\n\n%s" % (logger_str, user_info, report['stack_trace'], deployment, request_repr)) mail_admins(format_email_subject(email_subject), message, fail_silently=True)
def zulip_server_error(report: Dict[str, Any]) -> None: email_subject = '%(node)s: %(message)s' % dict(report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report['has_request']: request_repr = ("Request info:\n~~~~\n" "- path: %(path)s\n" "- %(method)s: %(data)s\n") % dict(report) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += "- %s: \"%s\"\n" % (field, val) request_repr += "~~~~" else: request_repr = "Request info: none" message = ("%s\nError generated by %s\n\n~~~~ pytb\n%s\n\n~~~~\n%s\n%s" % (logger_str, user_info, report['stack_trace'], deployment, request_repr)) error_bot = get_system_bot(settings.ERROR_BOT) realm = error_bot.realm errors_stream = get_stream('errors', realm) internal_send_stream_message(realm, error_bot, errors_stream, format_email_subject(email_subject), message)
def zulip_server_error(report: Dict[str, Any]) -> None: email_subject = '%(node)s: %(message)s' % (report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report['has_request']: request_repr = ( "Request info:\n~~~~\n" "- path: %(path)s\n" "- %(method)s: %(data)s\n") % (report) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += "- %s: \"%s\"\n" % (field, val) request_repr += "~~~~" else: request_repr = "Request info: none" message = ("%s\nError generated by %s\n\n~~~~ pytb\n%s\n\n~~~~\n%s\n%s" % (logger_str, user_info, report['stack_trace'], deployment, request_repr)) realm = get_system_bot(settings.ERROR_BOT).realm internal_send_message(realm, settings.ERROR_BOT, "stream", "errors", format_email_subject(email_subject), message)
def zulip_server_error(report: Dict[str, Any]) -> None: email_subject = "{node}: {message}".format(**report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report["has_request"]: request_repr = """\ Request info: ~~~~ - path: {path} - {method}: {data} """.format( **report ) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += f'- {field}: "{val}"\n' request_repr += "~~~~" else: request_repr = "Request info: none" message = f"""{logger_str} Error generated by {user_info} ~~~~ pytb {report['stack_trace']} ~~~~ {deployment} {request_repr}""" error_bot_realm = get_realm(settings.STAFF_SUBDOMAIN) error_bot = get_system_bot(settings.ERROR_BOT, error_bot_realm.id) errors_stream = get_stream("errors", error_bot_realm) internal_send_stream_message( error_bot, errors_stream, format_email_subject(email_subject), message, )
def email_server_error(report: Dict[str, Any]) -> None: email_subject = '%(node)s: %(message)s' % (report) logger_str = logger_repr(report) user_info = user_info_str(report) deployment = deployment_repr(report) if report['has_request']: request_repr = ( "Request info:\n" "- path: %(path)s\n" "- %(method)s: %(data)s\n") % (report) for field in ["REMOTE_ADDR", "QUERY_STRING", "SERVER_NAME"]: val = report.get(field.lower()) if field == "QUERY_STRING": val = clean_data_from_query_parameters(str(val)) request_repr += "- %s: \"%s\"\n" % (field, val) else: request_repr = "Request info: none\n" message = ("%s\nError generated by %s\n\n%s\n\n%s\n\n%s" % (logger_str, user_info, report['stack_trace'], deployment, request_repr)) mail_admins(format_email_subject(email_subject), message, fail_silently=True)
def test_clean_data_from_query_parameters(self) -> None: from zerver.filters import clean_data_from_query_parameters self.assertEqual(clean_data_from_query_parameters("api_key=abcdz&stream=1"), "api_key=******&stream=******") self.assertEqual(clean_data_from_query_parameters("api_key=abcdz&stream=foo&topic=bar"), "api_key=******&stream=******&topic=******")