1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 from buildbot.status.web.base import HtmlResource, IBox
17
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
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
38 try:
39 builder = status.getBuilder(name)
40 except:
41 return "unknown builder"
42
43
44 build = builder.getBuild(int(number))
45 if not build:
46 return "unknown build %s" % number
47
48 rows = ctx['rows'] = []
49
50
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
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
63
64
65 data = data.replace('<a ', '<a target="_blank"')
66 return data
67