Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(999)

Side by Side Diff: gatekeeper_mailer.py

Issue 99423008: Accept subject template for mailer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/chromium-build
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | mailer.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Provides mailer templates for gatekeeper_ng. 6 """Provides mailer templates for gatekeeper_ng.
7 7
8 This module populates jinja mail templates to notify tree watchers when the 8 This module populates jinja mail templates to notify tree watchers when the
9 tree is closed. 9 tree is closed.
10 """ 10 """
11 11
12 import jinja2 12 import jinja2
13 import os 13 import os
14 import utils 14 import utils
15 15
16 jinja_environment = jinja2.Environment( 16 jinja_environment = jinja2.Environment(
17 loader=jinja2.FileSystemLoader( 17 loader=jinja2.FileSystemLoader(
18 os.path.join(os.path.dirname(__file__), 'templates')), 18 os.path.join(os.path.dirname(__file__), 'templates')),
19 autoescape=True) 19 autoescape=True)
20 jinja_environment.filters['urlquote'] = utils.urlquote 20 jinja_environment.filters['urlquote'] = utils.urlquote
21 21
22 # From buildbot's results.py. 22 # From buildbot's results.py.
23 SUCCESS, WARNINGS, FAILURE, SKIPPED, EXCEPTION, RETRY = range(6) 23 SUCCESS, WARNINGS, FAILURE, SKIPPED, EXCEPTION, RETRY = range(6)
24 Results = ["success", "warnings", "failure", "skipped", "exception", "retry"] 24 Results = ["success", "warnings", "failure", "skipped", "exception", "retry"]
25 25
26 26
27 class MailTemplate(object): 27 class MailTemplate(object):
28 """Encapsulates a buildbot status email.""" 28 """Encapsulates a buildbot status email."""
29 29
30 status_header = 'Automatically closing tree for "%(steps)s" on "%(builder)s"' 30 status_header = 'Automatically closing tree for "%(steps)s" on "%(builder)s"'
31 default_subject = ('buildbot %(result)s in %(projectName)s on %(builder)s, '
32 'revision %(revision)s')
31 33
32 def __init__(self, waterfall_url, build_url, 34 def __init__(self, waterfall_url, build_url, project_name, fromaddr,
33 project_name, 35 reply_to=None, subject=None):
34 fromaddr, 36
35 reply_to=None,
36 subject='buildbot %(result)s in %(projectName)s on %(builder)s, '
37 'revision %(revision)s'):
38 37
39 self.reply_to = reply_to 38 self.reply_to = reply_to
40 self.fromaddr = fromaddr 39 self.fromaddr = fromaddr
41 self.subject = subject 40 self.subject = subject or self.default_subject
42 self.waterfall_url = waterfall_url.rstrip('/') + '/' 41 self.waterfall_url = waterfall_url.rstrip('/') + '/'
43 self.build_url = build_url 42 self.build_url = build_url
44 self.project_name = project_name 43 self.project_name = project_name
45 44
46 def genMessageContent(self, build_status): 45 def genMessageContent(self, build_status):
47 builder_name = build_status['builderName'] 46 builder_name = build_status['builderName']
48 us_steps = ','.join(build_status['unsatisfied']) 47 us_steps = ','.join(build_status['unsatisfied'])
49 revisions_list = build_status['revisions'] 48 revisions_list = build_status['revisions']
50 status_text = self.status_header % { 49 status_text = self.status_header % {
51 'builder': builder_name, 50 'builder': builder_name,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 subject = self.subject % { 84 subject = self.subject % {
86 'result': result, 85 'result': result,
87 'projectName': self.project_name, 86 'projectName': self.project_name,
88 'builder': builder_name, 87 'builder': builder_name,
89 'reason': build_status['reason'], 88 'reason': build_status['reason'],
90 'revision': str(latest_revision), 89 'revision': str(latest_revision),
91 'buildnumber': str(build_status['number']), 90 'buildnumber': str(build_status['number']),
92 } 91 }
93 92
94 return text_content, html_content, subject 93 return text_content, html_content, subject
OLDNEW
« no previous file with comments | « no previous file | mailer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698