def content(self, request, cxt):
     status = self.getStatus(request)
     builders = request.args.get("builder", status.getBuilderNames())
     cxt_builders = []
     categories = set()
     for builder_name in builders:
         if not self.builder_filter_fn(builder_name):
             continue
         try:
             builder_status = status.getBuilder(builder_name)
         except KeyError:
             log.msg('status.getBuilder(%r) failed' % builder_name)
             continue
         classname = base.ITopBox(builder_status).getBox(request).class_
         title = builder_name
         show_name = 'off' not in request.args.get('titles', ['off'])
         url = (base.path_to_root(request) + "waterfall?builder=" +
                urllib.quote(builder_name, safe='() '))
         category = builder_status.getCategory()
         if category:
             category = category.split('|')[0]
             categories.add(category)
         cxt_builders.append({
             'outcome': classname,
             'name': title,
             'url': url,
             'show_name': show_name,
             'category': category
         })
     cxt['builders'] = cxt_builders
     cxt['categories'] = sorted(categories)
     templates = request.site.buildbot_service.templates
     template = templates.get_template("horizontal_one_box_per_build.html")
     data = template.render(cxt)
     return data
    def body(self, request):
        status = self.getStatus(request)
        builders = request.args.get("builder", status.getBuilderNames())
        titles = request.args.get("titles", ["off"])

        data = "<table style='width:100%'><tr>"

        for builder_name in builders:
            try:
                builder_status = status.getBuilder(builder_name)
            except KeyError:
                log.msg('status.getBuilder(%r) failed' % builder_name)
                continue
            classname = base.ITopBox(builder_status).getBox(request).class_
            title = builder_name
            if len(re.split(' ', classname)) <= 1:
                classname += ' never'

            url = (self.path_to_root(request) + "waterfall?builder=" +
                   urllib.quote(builder_name, safe='() '))
            link = '<a href="%s" class="%s" title="%s" target=_blank>%s </a>' % (
                url, classname, title, '' if "off" in titles else title)
            data += '<td valign=bottom class=mini-box>%s</td>' % link

        data += "</tr></table>"

        return data
示例#3
0
 def asDict(self, request):
     builders = request.args.get('builder', self.status.getBuilderNames())
     data = {'builders': []}
     for builder_name in builders:
         if builder_name_schema.IsTrybot(builder_name):
             continue
         try:
             builder_status = self.status.getBuilder(builder_name)
         except KeyError:
             log.msg('status.getBuilder(%r) failed' % builder_name)
             continue
         outcome = base.ITopBox(builder_status).getBox(request).class_
         lastbuild = 'LastBuild'
         if outcome.startswith(lastbuild):
             outcome = outcome[len(lastbuild):]
         data['builders'].append({
             'outcome': outcome.strip(),
             'name': builder_name
         })
     return data