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