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