Пример #1
0
    def body(self, req):
        s = self.getStatus(req)
        data = ""
        data += "<h1>Build Slaves</h1>\n"

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        data += "<ol>\n"
        for name in util.naturalSort(s.getSlaveNames()):
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            isBusy = len(slave_status.getRunningBuilds())
            data += " <li><a href=\"%s\">%s</a>:\n" % (req.childLink(urllib.quote(name,'')), name)
            data += " <ul>\n"
            version = slave.getVersion()
            data += "<li>Running Buildbot version: %s" % version
            builder_links = ['<a href="%s">%s</a>'
                             % (req.childLink("../builders/%s" % bname),bname)
                             for bname in used_by_builder.get(name, [])]
            if builder_links:
                data += ("  <li>Used by Builders: %s</li>\n" %
                         ", ".join(builder_links))
            else:
                data += "  <li>Not used by any Builders</li>\n"
            if slave.isConnected():
                data += "  <li>Slave is currently connected</li>\n"
                admin = slave.getAdmin()
                if admin:
                    # munge it to avoid feeding the spambot harvesters
                    admin = admin.replace("@", " -at- ")
                    data += "  <li>Admin: %s</li>\n" % admin
                last = slave.lastMessageReceived()
                if last:
                    lt = time.strftime("%Y-%b-%d %H:%M:%S",
                                       time.localtime(last))
                    age = abbreviate_age(time.time() - last)
                    data += "  <li>Last heard from: %s " % age
                    data += '<font size="-1">(%s)</font>' % lt
                    data += "</li>\n"
                    if isBusy:
                        data += "<li>Slave is currently building.</li>"
                    else:
                        data += "<li>Slave is idle.</li>"
            else:
                data += "  <li><b>Slave is NOT currently connected</b></li>\n"

            data += " </ul>\n"
            data += " </li>\n"
            data += "\n"

        data += "</ol>\n"

        return data
Пример #2
0
    def body(self, req):
        s = self.getStatus(req)
        data = ""
        data += "<h1>Build Slaves</h1>\n"

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        data += "<ol>\n"
        for name in s.getSlaveNames():
            slave = s.getSlave(name)
            data += " <li>%s:\n" % name
            data += " <ul>\n"
            builder_links = [
                '<a href="%s">%s</a>' %
                (req.childLink("../builders/%s" % bname), bname)
                for bname in used_by_builder.get(name, [])
            ]
            if builder_links:
                data += ("  <li>Used by Builders: %s</li>\n" %
                         ", ".join(builder_links))
            else:
                data += "  <li>Not used by any Builders</li>\n"
            if slave.isConnected():
                data += "  <li>Slave is currently connected</li>\n"
                admin = slave.getAdmin()
                if admin:
                    # munge it to avoid feeding the spambot harvesters
                    admin = admin.replace("@", " -at- ")
                    data += "  <li>Admin: %s</li>\n" % admin
                last = slave.lastMessageReceived()
                if last:
                    lt = time.strftime("%Y-%b-%d %H:%M:%S",
                                       time.localtime(last))
                    age = abbreviate_age(time.time() - last)
                    data += "  <li>Last heard from: %s " % age
                    data += '<font size="-1">(%s)</font>' % lt
                    data += "</li>\n"
            else:
                data += "  <li>Slave is NOT currently connected</li>\n"

            data += " </ul>\n"
            data += " </li>\n"
            data += "\n"

        data += "</ol>\n"

        return data
Пример #3
0
    def body(self, req):
        s = self.getStatus(req)
        data = ""
        data += "<h1>Build Slaves</h1>\n"

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        data += "<ol>\n"
        for name in s.getSlaveNames():
            slave = s.getSlave(name)
            data += " <li>%s:\n" % name
            data += " <ul>\n"
            builder_links = ['<a href="%s">%s</a>'
                             % (req.childLink("../builders/%s" % bname),bname)
                             for bname in used_by_builder.get(name, [])]
            if builder_links:
                data += ("  <li>Used by Builders: %s</li>\n" %
                         ", ".join(builder_links))
            else:
                data += "  <li>Not used by any Builders</li>\n"
            if slave.isConnected():
                data += "  <li>Slave is currently connected</li>\n"
                admin = slave.getAdmin()
                if admin:
                    # munge it to avoid feeding the spambot harvesters
                    admin = admin.replace("@", " -at- ")
                    data += "  <li>Admin: %s</li>\n" % admin
                last = slave.lastMessageReceived()
                if last:
                    lt = time.strftime("%Y-%b-%d %H:%M:%S",
                                       time.localtime(last))
                    age = abbreviate_age(time.time() - last)
                    data += "  <li>Last heard from: %s " % age
                    data += '<font size="-1">(%s)</font>' % lt
                    data += "</li>\n"
            else:
                data += "  <li>Slave is NOT currently connected</li>\n"

            data += " </ul>\n"
            data += " </li>\n"
            data += "\n"

        data += "</ol>\n"

        return data
Пример #4
0
    def content(self, request, ctx):
        s = self.getStatus(request)

        # ?no_builders=1 disables build column
        show_builder_column = not (request.args.get('no_builders',
                                                    '0')[0]) == '1'
        ctx['show_builder_column'] = show_builder_column

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        slaves = ctx['slaves'] = []
        for name in util.naturalSort(s.getSlaveNames()):
            info = {}
            slaves.append(info)
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            info['running_builds'] = len(slave_status.getRunningBuilds())
            info['link'] = request.childLink(urllib.quote(name, ''))
            info['name'] = name

            if show_builder_column:
                info['builders'] = []
                for b in used_by_builder.get(name, []):
                    info['builders'].append(
                        dict(link=request.childLink("../builders/%s" % b),
                             name=b))

            info['version'] = slave.getVersion()
            info['connected'] = slave.isConnected()
            info['connectCount'] = slave.getConnectCount()
            info['paused'] = slave.isPaused()

            info['admin'] = slave.getAdmin() or u''
            last = slave.lastMessageReceived()
            if last:
                info['last_heard_from_age'] = abbreviate_age(time.time() -
                                                             last)
                info['last_heard_from_time'] = time.strftime(
                    "%Y-%b-%d %H:%M:%S", time.localtime(last))

        template = request.site.buildbot_service.templates.get_template(
            "buildslaves.html")
        data = template.render(**ctx)
        return data
Пример #5
0
    def content(self, request, ctx):
        s = self.getStatus(request)

        #?no_builders=1 disables build column
        show_builder_column = not (request.args.get('no_builders', '0')[0])=='1'
        ctx['show_builder_column'] = show_builder_column

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        slaves = ctx['slaves'] = []
        for name in util.naturalSort(s.getSlaveNames()):
            info = {}
            slaves.append(info)
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            info['running_builds'] = len(slave_status.getRunningBuilds())
            info['link'] = request.childLink(urllib.quote(name,''))
            info['name'] = name

            if show_builder_column:
                info['builders'] = []
                for b in used_by_builder.get(name, []):
                    info['builders'].append(dict(link=request.childLink("../builders/%s" % b), name=b))
                                        
            info['version'] = slave.getVersion()
            info['connected'] = slave.isConnected()
            info['connectCount'] = slave.getConnectCount()
            
            if slave.isConnected():
                info['admin'] = unicode(slave.getAdmin() or '', 'utf-8')
            last = slave.lastMessageReceived()
            if last:
                info['last_heard_from_age'] = abbreviate_age(time.time() - last)
                info['last_heard_from_time'] = time.strftime("%Y-%b-%d %H:%M:%S",
                                                            time.localtime(last))

        template = request.site.buildbot_service.templates.get_template("buildslaves.html")
        data = template.render(**ctx)
        return data
Пример #6
0
    def content(self, request, ctx):
        s = self.getStatus(request)

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        slaves = ctx["slaves"] = []
        for name in util.naturalSort(s.getSlaveNames()):
            info = {}
            slaves.append(info)
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            info["running_builds"] = len(slave_status.getRunningBuilds())
            info["link"] = request.childLink(urllib.quote(name, ""))
            info["name"] = name

            info["builders"] = []
            for b in used_by_builder.get(name, []):
                info["builders"].append(dict(link=request.childLink("../builders/%s" % b), name=b))

            info["version"] = slave.getVersion()
            info["connected"] = slave.isConnected()

            if slave.isConnected():
                info["admin"] = unicode(slave.getAdmin(), "utf-8")
                last = slave.lastMessageReceived()
                if last:
                    info["last_heard_from_age"] = abbreviate_age(time.time() - last)
                    info["last_heard_from_time"] = time.strftime("%Y-%b-%d %H:%M:%S", time.localtime(last))

        template = request.site.buildbot_service.templates.get_template("buildslaves.html")
        data = template.render(**ctx)
        return data
Пример #7
0
    def content(self, request, ctx):
        s = self.getStatus(request)

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        slaves = ctx['slaves'] = []
        for name in util.naturalSort(s.getSlaveNames()):
            info = {}
            slaves.append(info)
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            info['running_builds'] = len(slave_status.getRunningBuilds())
            info['link'] = request.childLink(urllib.quote(name,''))
            info['name'] = name
            info['builders'] = [{'link': request.childLink("../builders/%s" % bname),
                                 'name': bname}]
            info['version'] = slave.getVersion()

            info['connected'] = slave.isConnected()
            
            if slave.isConnected():
                info['admin'] = slave.getAdmin()
                last = slave.lastMessageReceived()
                if last:
                    info['last_heard_from_age'] = abbreviate_age(time.time() - last)
                    info['last_heard_from_time'] = time.strftime("%Y-%b-%d %H:%M:%S",
                                                                time.localtime(last))

        template = request.site.buildbot_service.templates.get_template("buildslaves.html")
        data = template.render(**ctx)
        return data
Пример #8
0
 def test_abbreviate_age_89_sec(self):
     self.assertEqual(base.abbreviate_age(89), "89 seconds ago")
Пример #9
0
 def test_abbreviate_age_10_min(self):
     self.assertEqual(base.abbreviate_age((base.MINUTE * 10) + 7),
                      "about 10 minutes ago")
Пример #10
0
 def test_abbreviate_age_long_time(self):
     self.assertEqual(base.abbreviate_age((base.MONTH * 4 + base.WEEK)),
                      "a long time ago")
Пример #11
0
 def test_abbreviate_age_12_days(self):
     self.assertEqual(base.abbreviate_age((base.DAY * 12 + base.HOUR * 9)),
                      "about 12 days ago")
Пример #12
0
 def test_abbreviate_age_1_day(self):
     self.assertEqual(base.abbreviate_age((base.DAY + base.MINUTE * 4)),
                      "about 1 day ago")
Пример #13
0
 def test_abbreviate_age_64_min(self):
     self.assertEqual(base.abbreviate_age((base.HOUR + base.MINUTE * 4)),
                      "about 64 minutes ago")
Пример #14
0
 def test_abbreviate_age_3_weeks(self):
     self.assertEqual(base.abbreviate_age((base.WEEK * 3 + base.DAY)),
                      "about 3 weeks ago")
Пример #15
0
 def test_abbreviate_age_12_days(self):
     self.assertEqual(base.abbreviate_age((base.DAY * 12 + base.HOUR * 9)),
                      "about 12 days ago")
Пример #16
0
 def test_abbreviate_age_3_days(self):
     self.assertEqual(base.abbreviate_age((base.DAY * 3 + base.MINUTE * 9)),
                      "about 3 days ago")
Пример #17
0
 def test_abbreviate_age_1_day(self):
     self.assertEqual(base.abbreviate_age((base.DAY + base.MINUTE * 4)),
                      "about 1 day ago")
Пример #18
0
 def test_abbreviate_age_2_hours(self):
     self.assertEqual(base.abbreviate_age((base.HOUR * 2 + 25)),
                      "about 2 hours ago")
Пример #19
0
 def test_abbreviate_age_64_min(self):
     self.assertEqual(base.abbreviate_age((base.HOUR + base.MINUTE * 4)),
                      "about 64 minutes ago")
Пример #20
0
 def test_abbreviate_age_2_min(self):
     self.assertEqual(base.abbreviate_age((base.MINUTE * 2) + 2),
                      "about 2 minutes ago")
Пример #21
0
 def test_abbreviate_age_10_min(self):
     self.assertEqual(base.abbreviate_age((base.MINUTE * 10) + 7),
                      "about 10 minutes ago")
Пример #22
0
 def test_abbreviate_age_long_time(self):
     self.assertEqual(base.abbreviate_age((base.MONTH * 4 + base.WEEK)),
                      "a long time ago")
Пример #23
0
 def test_abbreviate_age_2_hours(self):
     self.assertEqual(base.abbreviate_age((base.HOUR * 2 + 25)),
                      "about 2 hours ago")
Пример #24
0
 def test_abbreviate_age_0_sec(self):
     self.assertEqual(base.abbreviate_age(0), "0 seconds ago")
Пример #25
0
 def test_abbreviate_age_3_days(self):
     self.assertEqual(base.abbreviate_age((base.DAY * 3 + base.MINUTE * 9)),
                      "about 3 days ago")
Пример #26
0
 def test_abbreviate_age_1_sec(self):
     self.assertEqual(base.abbreviate_age(1), "1 second ago")
Пример #27
0
 def test_abbreviate_age_3_weeks(self):
     self.assertEqual(base.abbreviate_age((base.WEEK * 3 + base.DAY)),
                      "about 3 weeks ago")
Пример #28
0
 def test_abbreviate_age_89_sec(self):
     self.assertEqual(base.abbreviate_age(89), "89 seconds ago")
Пример #29
0
 def test_abbreviate_age_0_sec(self):
     self.assertEqual(base.abbreviate_age(0), "0 seconds ago")
Пример #30
0
 def test_abbreviate_age_5_sec(self):
     self.assertEqual(base.abbreviate_age(5), "5 seconds ago")
Пример #31
0
 def test_abbreviate_age_5_sec(self):
     self.assertEqual(base.abbreviate_age(5), "5 seconds ago")
Пример #32
0
 def test_abbreviate_age_2_min(self):
     self.assertEqual(base.abbreviate_age((base.MINUTE * 2) + 2),
                      "about 2 minutes ago")
Пример #33
0
 def test_abbreviate_age_1_sec(self):
     self.assertEqual(base.abbreviate_age(1), "1 second ago")
Пример #34
0
    def body(self, req):
        s = self.getStatus(req)
        data = ""
        data += "<h1>Build Slaves</h1>\n"

        used_by_builder = {}
        for bname in s.getBuilderNames():
            b = s.getBuilder(bname)
            for bs in b.getSlaves():
                slavename = bs.getName()
                if slavename not in used_by_builder:
                    used_by_builder[slavename] = []
                used_by_builder[slavename].append(bname)

        data += "<ol>\n"
        for name in util.naturalSort(s.getSlaveNames()):
            slave = s.getSlave(name)
            slave_status = s.botmaster.slaves[name].slave_status
            isBusy = len(slave_status.getRunningBuilds())
            data += " <li><a href=\"%s\">%s</a>:\n" % (req.childLink(
                urllib.quote(name, '')), name)
            data += " <ul>\n"
            version = slave.getVersion()
            data += "<li>Running Buildbot version: %s" % version
            builder_links = [
                '<a href="%s">%s</a>' %
                (req.childLink("../builders/%s" % bname), bname)
                for bname in used_by_builder.get(name, [])
            ]
            if builder_links:
                data += ("  <li>Used by Builders: %s</li>\n" %
                         ", ".join(builder_links))
            else:
                data += "  <li>Not used by any Builders</li>\n"
            if slave.isConnected():
                data += "  <li>Slave is currently connected</li>\n"
                admin = slave.getAdmin()
                if admin:
                    # munge it to avoid feeding the spambot harvesters
                    admin = admin.replace("@", " -at- ")
                    data += "  <li>Admin: %s</li>\n" % admin
                last = slave.lastMessageReceived()
                if last:
                    lt = time.strftime("%Y-%b-%d %H:%M:%S",
                                       time.localtime(last))
                    age = abbreviate_age(time.time() - last)
                    data += "  <li>Last heard from: %s " % age
                    data += '<font size="-1">(%s)</font>' % lt
                    data += "</li>\n"
                    if isBusy:
                        data += "<li>Slave is currently building.</li>"
                    else:
                        data += "<li>Slave is idle.</li>"
            else:
                data += "  <li><b>Slave is NOT currently connected</b></li>\n"

            data += " </ul>\n"
            data += " </li>\n"
            data += "\n"

        data += "</ol>\n"

        return data