Package buildbot :: Package status :: Package web :: Module buildstatus
[frames] | no frames]

Source Code for Module buildbot.status.web.buildstatus

 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 
 3  # License as published by the Free Software Foundation, version 2. 
 4  # 
 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 
 7  # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
 8  # details. 
 9  # 
10  # You should have received a copy of the GNU General Public License along with 
11  # this program; if not, write to the Free Software Foundation, Inc., 51 
12  # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 
13  # 
14  # Copyright Buildbot Team Members 
15   
16  from buildbot.status.web.base import HtmlResource, IBox 
17   
18 -class BuildStatusStatusResource(HtmlResource):
19 - def __init__(self, categories=None):
21
22 - def content(self, request, ctx):
23 """Display a build in the same format as the waterfall page. 24 The HTTP GET parameters are the builder name and the build 25 number.""" 26 27 status = self.getStatus(request) 28 request.setHeader('Cache-Control', 'no-cache') 29 30 # Get the parameters. 31 name = request.args.get("builder", [None])[0] 32 number = request.args.get("number", [None])[0] 33 if not name or not number: 34 return "builder and number parameter missing" 35 number = int(number) 36 37 # Check if the builder in parameter exists. 38 try: 39 builder = status.getBuilder(name) 40 except: 41 return "unknown builder" 42 43 # Check if the build in parameter exists. 44 build = builder.getBuild(int(number)) 45 if not build: 46 return "unknown build %s" % number 47 48 rows = ctx['rows'] = [] 49 50 # Display each step, starting by the last one. 51 for i in range(len(build.getSteps()) - 1, -1, -1): 52 step = build.getSteps()[i] 53 if step.isStarted() and step.getText(): 54 rows.append(IBox(step).getBox(request).td(align="center")) 55 56 # Display the bottom box with the build number in it. 57 ctx['build'] = IBox(build).getBox(request).td(align="center") 58 59 template = request.site.buildbot_service.templates.get_template("buildstatus.html") 60 data = template.render(**ctx) 61 62 # We want all links to display in a new tab/window instead of in the 63 # current one. 64 # TODO: Move to template 65 data = data.replace('<a ', '<a target="_blank"') 66 return data
67