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

Side by Side Diff: third_party/buildbot_8_4p1/buildbot/status/web/build.py

Issue 1885033002: BuildBot: Add anchors for unbound aliases. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 4 years, 8 months 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
OLDNEW
1 # This file is part of Buildbot. Buildbot is free software: you can 1 # This file is part of Buildbot. Buildbot is free software: you can
2 # redistribute it and/or modify it under the terms of the GNU General Public 2 # redistribute it and/or modify it under the terms of the GNU General Public
3 # License as published by the Free Software Foundation, version 2. 3 # License as published by the Free Software Foundation, version 2.
4 # 4 #
5 # This program is distributed in the hope that it will be useful, but WITHOUT 5 # This program is distributed in the hope that it will be useful, but WITHOUT
6 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 6 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
7 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 7 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
8 # details. 8 # details.
9 # 9 #
10 # You should have received a copy of the GNU General Public License along with 10 # You should have received a copy of the GNU General Public License along with
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 step['time_to_run'] = "" 114 step['time_to_run'] = ""
115 115
116 cxt['steps'].append(step) 116 cxt['steps'].append(step)
117 117
118 step['link'] = req.childLink("steps/%s" % urllib.quote(s.getName(), 118 step['link'] = req.childLink("steps/%s" % urllib.quote(s.getName(),
119 safe='')) 119 safe=''))
120 step['text'] = " ".join(s.getText()) 120 step['text'] = " ".join(s.getText())
121 step['urls'] = map(lambda x:dict(url=x[1],logname=x[0]), s.getURLs() .items()) 121 step['urls'] = map(lambda x:dict(url=x[1],logname=x[0]), s.getURLs() .items())
122 step['nest_level'] = s.getNestLevel() 122 step['nest_level'] = s.getNestLevel()
123 123
124 step['aliases'] = {}
125 for base, aliases in s.getAliases().iteritems():
126 step['aliases'][base] = [{
127 'text': a[0],
128 'url': a[1],
129 } for a in aliases]
130
131 step['logs']= [] 124 step['logs']= []
132 125
133 for l in s.getLogs(): 126 for l in s.getLogs():
134 logname = l.getName() 127 logname = l.getName()
135 step['logs'].append({ 'link': req.childLink("steps/%s/logs/%s" % 128 step['logs'].append({ 'link': req.childLink("steps/%s/logs/%s" %
136 (urllib.quote(s.getName(), safe=''), 129 (urllib.quote(s.getName(), safe=''),
137 urllib.quote(logname, safe=''))), 130 urllib.quote(logname, safe=''))),
138 'name': logname }) 131 'name': logname })
139 132
133 step['aliases'] = {}
134 seen_aliases = set()
135 for base, aliases in s.getAliases().iteritems():
136 step['aliases'][base] = [{
137 'text': a[0],
138 'url': a[1],
139 } for a in aliases]
140 seen_aliases.add(base)
141
142 seen_aliases.difference_update(s['logname'] for s in step['urls'])
143 seen_aliases.difference_update(s['name'] for s in step['logs'])
144
145 # Append link-less log anchors for unbased aliases to attach to.
146 #
147 # We include an empty link so that custom templates that don't
148 # support aliases don't crash when trying to render these anchors.
149 # This will cause waterfalls that have alias data but haven't
150 # updated their templates to render them to show blank links. This
151 # is okay, since waterfalls that accept alias data should have
152 # their templates updated to render this data.
153 for base in sorted(seen_aliases):
154 step['logs'].append({'name': base, 'link': ''})
155
dnj 2016/04/13 15:39:59 Note: because templates are immediately loaded pos
140 ps = cxt['properties'] = [] 156 ps = cxt['properties'] = []
141 for name, value, source in b.getProperties().asList(): 157 for name, value, source in b.getProperties().asList():
142 value = str(value) 158 value = str(value)
143 p = { 'name': name, 'value': value, 'source': source} 159 p = { 'name': name, 'value': value, 'source': source}
144 if len(value) > 500: 160 if len(value) > 500:
145 p['short_value'] = value[:500] 161 p['short_value'] = value[:500]
146 162
147 ps.append(p) 163 ps.append(p)
148 164
149 165
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 try: 278 try:
263 num = int(path) 279 num = int(path)
264 except ValueError: 280 except ValueError:
265 num = None 281 num = None
266 if num is not None: 282 if num is not None:
267 build_status = self.builder_status.getBuild(num) 283 build_status = self.builder_status.getBuild(num)
268 if build_status: 284 if build_status:
269 return StatusResourceBuild(build_status) 285 return StatusResourceBuild(build_status)
270 286
271 return HtmlResource.getChild(self, path, req) 287 return HtmlResource.getChild(self, path, req)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698