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

Source Code for Module buildbot.status.web.buildstatus

 1  from buildbot.status.web.base import Box 
 2  from buildbot.status.web.base import HtmlResource 
 3  from buildbot.status.web.base import IBox 
 4   
5 -class BuildStatusStatusResource(HtmlResource):
6 - def __init__(self, categories=None):
8
9 - def head(self, request):
10 return ""
11
12 - def body(self, request):
13 """Display a build in the same format as the waterfall page. 14 The HTTP GET parameters are the builder name and the build 15 number.""" 16 17 status = self.getStatus(request) 18 data = "" 19 20 # Get the parameters. 21 name = request.args.get("builder", [None])[0] 22 number = request.args.get("number", [None])[0] 23 if not name or not number: 24 return "builder and number parameter missing" 25 26 # Main table for the build status. 27 data += '<table>\n' 28 29 # Check if the builder in parameter exists. 30 try: 31 builder = status.getBuilder(name) 32 except: 33 return "unknown builder" 34 35 # Check if the build in parameter exists. 36 build = builder.getBuild(int(number)) 37 if not build: 38 return "unknown build %s" % number 39 40 # Display each step, starting by the last one. 41 for i in range(len(build.getSteps()) - 1, -1, -1): 42 if build.getSteps()[i].getText(): 43 data += " <tr>\n" 44 data += IBox(build.getSteps()[i]).getBox(request).td(align="center") 45 data += " </tr>\n" 46 47 # Display the bottom box with the build number in it. 48 data += "<tr>" 49 data += IBox(build).getBox(request).td(align="center") 50 data += "</tr></table>\n" 51 52 # We want all links to display in a new tab/window instead of in the 53 # current one. 54 data = data.replace('<a ', '<a target="_blank"') 55 return data
56