def _SendSummaryEmail(sheriff_entity, start_time): """Sends a summary email for the given sheriff rotation. Args: sheriff_entity: A Sheriff entity. start_time: A starting datetime for anomalies to fetch. """ receivers = email_template.GetSheriffEmails(sheriff_entity) anomalies, _, _ = anomaly.Anomaly.QueryAsync( sheriff=sheriff_entity.key.id(), bug_id='', is_improvement=False, min_timestamp=start_time).get_result() logging.info('_SendSummaryEmail: %s', str(sheriff_entity.key)) logging.info(' - receivers: %s', str(receivers)) logging.info(' - anomalies: %d', len(anomalies)) if not anomalies: return subject = _EmailSubject(sheriff_entity, anomalies) html, text = _EmailBody(anomalies, sheriff_entity.key.string_id()) logging.info(' - body: %s', text) mail.send_mail(sender='*****@*****.**', to=receivers, subject=subject, body=text, html=html)
def _SendSummaryEmail(sheriff_entity, start_time): """Sends a summary email for the given sheriff rotation. Args: sheriff_entity: A Sheriff entity. start_time: A starting datetime for anomalies to fetch. """ receivers = email_template.GetSheriffEmails(sheriff_entity) anomalies = _RecentUntriagedAnomalies(sheriff_entity, start_time) if not anomalies: return subject = _EmailSubject(sheriff_entity, anomalies) html, text = _EmailBody(anomalies) mail.send_mail( sender='*****@*****.**', to=receivers, subject=subject, body=text, html=html)
def EmailSheriff(sheriff, test, anomaly): """Sends an email to the sheriff on duty about the given anomaly. Args: sheriff: sheriff.Sheriff entity. test: The graph_data.Test entity associated with the anomaly. anomaly: The anomaly.Anomaly entity. """ receivers = email_template.GetSheriffEmails(sheriff) if not receivers: logging.warn('No email address for %s', sheriff) return anomaly_info = email_template.GetAlertInfo(anomaly, test) mail.send_mail(sender='*****@*****.**', to=receivers, subject=anomaly_info['email_subject'], body=anomaly_info['email_text'], html=anomaly_info['email_html'] + anomaly_info['alerts_link'])
def _SendStoppageAlertEmail(sheriff_entity): """Sends a summary email for the given sheriff rotation. Args: sheriff_entity: A Sheriff key. """ stoppage_alerts = _RecentStoppageAlerts(sheriff_entity) if not stoppage_alerts: return alert_dicts = [_AlertRowDict(a) for a in stoppage_alerts] mail.send_mail(sender='*****@*****.**', to=email_template.GetSheriffEmails(sheriff_entity), subject=_Subject(sheriff_entity, stoppage_alerts), body=_TextBody(alert_dicts), html=_HtmlBody(alert_dicts)) for alert in stoppage_alerts: alert.mail_sent = True ndb.put_multi(stoppage_alerts)