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

Source Code for Module buildbot.status.web.buildstatus

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