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
9
10 - def head(self, request):
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
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
29 data += '<table>\n'
30
31
32 try:
33 builder = status.getBuilder(name)
34 except:
35 return "unknown builder"
36
37
38 build = builder.getBuild(int(number))
39 if not build:
40 return "unknown build %s" % number
41
42
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
50 data += "<tr>"
51 data += IBox(build).getBox(request).td(align="center")
52 data += "</tr></table>\n"
53
54
55
56 data = data.replace('<a ', '<a target="_blank"')
57 return data
58