| Index: dashboard/dashboard/email_template.py
|
| diff --git a/dashboard/dashboard/email_template.py b/dashboard/dashboard/email_template.py
|
| index b8fda30b94eef272bf8253ac86c15ba4ca9ed158..fa7bd8a307d871925cbd813d9f713ff8176fa866 100644
|
| --- a/dashboard/dashboard/email_template.py
|
| +++ b/dashboard/dashboard/email_template.py
|
| @@ -62,6 +62,7 @@ _PERF_TRY_EMAIL_SUBJECT = (
|
| _PERF_TRY_EMAIL_HTML_BODY = """
|
| Perf Try Job %(status)s
|
| <br><br>
|
| +%(warnings)s
|
| A Perf Try Job was submitted on %(bot)s at
|
| <a href="%(perf_url)s">%(perf_url)s</a>.<br>
|
| <table cellpadding='4'>
|
| @@ -75,7 +76,7 @@ A Perf Try Job was submitted on %(bot)s at
|
|
|
| _PERF_TRY_EMAIL_TEXT_BODY = """
|
| Perf Try Job %(status)s
|
| -
|
| +%(warnings)s
|
| Bot: %(bot)s
|
| Test: %(command)s
|
| Revision Range:%(start)s - %(end)s
|
| @@ -94,6 +95,8 @@ _BISECT_FYI_EMAIL_SUBJECT = (
|
| _BISECT_FYI_EMAIL_HTML_BODY = """
|
| <font color="red"><b>Bisect FYI Try Job Failed</b></font>
|
| <br><br>
|
| +%(message)s
|
| +<br><br>
|
| A Bisect FYI Try Job for %(test_name)s was submitted on %(bot)s at
|
| <a href="%(job_url)s">%(job_url)s</a>.<br>
|
| <table cellpadding='4'>
|
| @@ -119,35 +122,36 @@ Bisect Results:
|
| """
|
|
|
|
|
| -def GetPerfTryJobEmail(perf_results):
|
| +def GetPerfTryJobEmailReport(try_job_entity):
|
| """Gets the contents of the email to send once a perf try job completes."""
|
| - if perf_results['status'] == 'Completed':
|
| + results_data = try_job_entity.results_data
|
| + config = try_job_entity.GetConfigDict()
|
| + if results_data['status'] == 'completed':
|
| profiler_html_links = ''
|
| profiler_text_links = ''
|
| - for title, link in perf_results['profiler_results']:
|
| - profiler_html_links += _PERF_PROFILER_HTML_ROW % {'title': title,
|
| - 'link': link}
|
| - profiler_text_links += _PERF_PROFILER_TEXT_ROW % {'title': title,
|
| - 'link': link}
|
| + for link_dict in results_data['profiler_links']:
|
| + profiler_html_links += _PERF_PROFILER_HTML_ROW % link_dict
|
| + profiler_text_links += _PERF_PROFILER_TEXT_ROW % link_dict
|
| subject_dict = {
|
| - 'status': 'Success', 'bot': perf_results['bisect_bot'],
|
| - 'start': perf_results['config']['good_revision'],
|
| - 'end': perf_results['config']['bad_revision']
|
| + 'status': 'Success', 'bot': results_data['bisect_bot'],
|
| + 'start': config['good_revision'],
|
| + 'end': config['bad_revision']
|
| }
|
| html_dict = {
|
| 'status': 'SUCCESS',
|
| - 'bot': perf_results['bisect_bot'],
|
| - 'perf_url': perf_results['buildbot_log_url'],
|
| - 'command': perf_results['config']['command'],
|
| - 'start': perf_results['config']['good_revision'],
|
| - 'end': perf_results['config']['bad_revision'],
|
| - 'html_results': perf_results['html_results'],
|
| - 'profiler_results': profiler_html_links
|
| + 'bot': results_data['bisect_bot'],
|
| + 'perf_url': results_data['buildbot_log_url'],
|
| + 'command': config['command'],
|
| + 'start': config['good_revision'],
|
| + 'end': config['bad_revision'],
|
| + 'html_results': results_data['cloud_link'],
|
| + 'profiler_results': profiler_html_links,
|
| }
|
| + if results_data.get('warnings'):
|
| + html_dict['warnings'] = ','.join(results_data['warnings'])
|
| text_dict = html_dict.copy()
|
| text_dict['profiler_results'] = profiler_text_links
|
| - elif perf_results['status'] == 'Failure':
|
| - config = perf_results.get('config')
|
| + elif results_data['status'] == 'failed':
|
| if not config:
|
| config = {
|
| 'good_revision': '?',
|
| @@ -155,18 +159,18 @@ def GetPerfTryJobEmail(perf_results):
|
| 'command': '?',
|
| }
|
| subject_dict = {
|
| - 'status': 'Failure', 'bot': perf_results['bisect_bot'],
|
| + 'status': 'Failure', 'bot': results_data['bisect_bot'],
|
| 'start': config['good_revision'],
|
| 'end': config['bad_revision']
|
| }
|
| html_dict = {
|
| 'status': 'FAILURE',
|
| - 'bot': perf_results['bisect_bot'],
|
| - 'perf_url': perf_results['buildbot_log_url'],
|
| + 'bot': results_data['bisect_bot'],
|
| + 'perf_url': results_data['buildbot_log_url'],
|
| 'command': config['command'],
|
| 'start': config['good_revision'],
|
| 'end': config['bad_revision'],
|
| - 'html_results': '', 'profiler_results': ''
|
| + 'html_results': '', 'profiler_results': '',
|
| }
|
| text_dict = html_dict
|
| else:
|
| @@ -312,26 +316,24 @@ def GetAlertInfo(alert, test):
|
| return results
|
|
|
|
|
| -def GetBisectFYITryJobEmail(job, test_results):
|
| +def GetBisectFYITryJobEmailReport(job, message):
|
| """Gets the contents of the email to send once a bisect FYI job completes."""
|
| - if test_results['status'] != 'Completed':
|
| - subject_dict = {
|
| - 'bot': test_results['bisect_bot'],
|
| - 'test_name': job.job_name
|
| - }
|
| - html_dict = {
|
| - 'bot': test_results['bisect_bot'],
|
| - 'job_url': test_results['buildbot_log_url'],
|
| - 'test_name': job.job_name,
|
| - 'config': job.config if job.config else 'Undefined',
|
| - 'errors': test_results.get('errors'),
|
| - 'results': test_results.get('results'),
|
| - }
|
| - text_dict = html_dict
|
| - else:
|
| - return None
|
| + results_data = job.results_data
|
| + subject_dict = {
|
| + 'bot': results_data['bisect_bot'],
|
| + 'test_name': job.job_name,
|
| + }
|
| + report_dict = {
|
| + 'message': message,
|
| + 'bot': results_data['bisect_bot'],
|
| + 'job_url': results_data['buildbot_log_url'],
|
| + 'test_name': job.job_name,
|
| + 'config': job.config if job.config else 'Undefined',
|
| + 'errors': results_data.get('errors'),
|
| + 'results': results_data.get('results'),
|
| + }
|
|
|
| - html = _BISECT_FYI_EMAIL_HTML_BODY % html_dict
|
| - text = _BISECT_FYI_EMAIL_TEXT_BODY % text_dict
|
| + html = _BISECT_FYI_EMAIL_HTML_BODY % report_dict
|
| + text = _BISECT_FYI_EMAIL_TEXT_BODY % report_dict
|
| subject = _BISECT_FYI_EMAIL_SUBJECT % subject_dict
|
| return {'subject': subject, 'html': html, 'body': text}
|
|
|