def get_event_payload(self, event): props = { 'event_id': event.event_id, 'project_id': event.project.slug, 'transaction': event.get_tag('transaction') or '', 'release': event.get_tag('sentry:release') or '', 'environment': event.get_tag('environment') or '', 'type': event.get_event_type(), } props['tags'] = [[k.format(tagstore.get_standardized_key(k)), v] for k, v in event.get_tags()] for key, value in six.iteritems(event.interfaces): if key == 'request': headers = value.headers if not isinstance(headers, dict): headers = dict(headers or ()) props.update({ 'request_url': value.url, 'request_method': value.method, 'request_referer': headers.get('Referer', ''), }) elif key == 'exception': exc = value.values[0] props.update({ 'exception_type': exc.type, 'exception_value': exc.value, }) elif key == 'logentry': props.update({ 'message': value.formatted or value.message, }) elif key in ('csp', 'expectct', 'expectstable', 'hpkp'): props.update({ '{}_{}'.format(key.rsplit('.', 1)[-1].lower(), k): v for k, v in six.iteritems(value.to_json()) }) elif key == 'user': user_payload = {} if value.id: user_payload['user_id'] = value.id if value.email: user_payload['user_email_hash'] = md5_text( value.email).hexdigest() if value.ip_address: user_payload['user_ip_trunc'] = anonymize_ip( value.ip_address) if user_payload: props.update(user_payload) return props
def get_event_payload_properties(self, event): props = { "event_id": event.event_id, "issue_id": event.group_id, "project_id": event.project.slug, "transaction": event.get_tag("transaction") or "", "release": event.get_tag("sentry:release") or "", "environment": event.get_tag("environment") or "", "type": event.get_event_type(), } props["tags"] = [[k.format(tagstore.get_standardized_key(k)), v] for k, v in event.tags] for key, value in six.iteritems(event.interfaces): if key == "request": headers = value.headers if not isinstance(headers, dict): headers = dict(headers or ()) props.update({ "request_url": value.url, "request_method": value.method, "request_referer": headers.get("Referer", ""), }) elif key == "exception": exc = value.values[0] props.update({ "exception_type": exc.type, "exception_value": exc.value }) elif key == "logentry": props.update({"message": value.formatted or value.message}) elif key in ("csp", "expectct", "expectstable", "hpkp"): props.update({ u"{}_{}".format(key.rsplit(".", 1)[-1].lower(), k): v for k, v in six.iteritems(value.to_json()) }) elif key == "user": user_payload = {} if value.id: user_payload["user_id"] = value.id if value.email: user_payload["user_email_hash"] = md5_text( value.email).hexdigest() if value.ip_address: user_payload["user_ip_trunc"] = anonymize_ip( value.ip_address) if user_payload: props.update(user_payload) return props
def get_event_payload(self, event): props = { 'event_id': event.event_id, 'project_id': event.project.slug, 'transaction': event.get_tag('transaction') or '', 'release': event.get_tag('sentry:release') or '', 'environment': event.get_tag('environment') or '', 'type': event.get_event_type(), } props['tags'] = [[k.format(tagstore.get_standardized_key(k)), v] for k, v in event.get_tags()] for key, value in six.iteritems(event.interfaces): if key == 'request': headers = value.headers if not isinstance(headers, dict): headers = dict(headers or ()) props.update({ 'request_url': value.url, 'request_method': value.method, 'request_referer': headers.get('Referer', ''), }) elif key == 'exception': exc = value.values[0] props.update({ 'exception_type': exc.type, 'exception_value': exc.value, }) elif key == 'logentry': props.update({ 'message': value.formatted or value.message, }) elif key in ('csp', 'expectct', 'expectstable', 'hpkp'): props.update({ '{}_{}'.format(key.rsplit('.', 1)[-1].lower(), k): v for k, v in six.iteritems(value.to_json()) }) elif key == 'user': user_payload = {} if value.id: user_payload['user_id'] = value.id if value.email: user_payload['user_email_hash'] = md5_text(value.email).hexdigest() if value.ip_address: user_payload['user_ip_trunc'] = anonymize_ip(value.ip_address) if user_payload: props.update(user_payload) return props
def test_ipv4(): assert anonymize_ip("192.168.128.193") == "192.168.128.0"
def test_ipv6(): assert anonymize_ip("5219:3a94:fdc5:19e1:70a3:b2c4:40ef:ae03") == "5219:3a94:fdc5::"
def test_ipv4(): assert anonymize_ip(u'192.168.128.193') == u'192.168.128.0'
def test_ipv6(): assert anonymize_ip(u'5219:3a94:fdc5:19e1:70a3:b2c4:40ef:ae03') == u'5219:3a94:fdc5::'