[Buildbot-devel] Prioritize slaves with nextSlave not working

Jared Grubb jared.grubb at gmail.com
Fri May 9 15:45:49 UTC 2014


FWIW, here is one that I use:

SLAVE_PRIORITY = {
    'slave_1': 100,
    'slave_2': 75,
    'slave_3': 50,
}

def useBestSlave(bldr, buildslaves):
    if not buildslaves:
        return None
    try:
        slaves = sorted(buildslaves, key=lambda s: SLAVE_PRIORITY.get(s.slave.slavename, 0))
        twisted_log.msg("useBestSlave: Of %d slaves, picked: %s" % (len(buildslaves), slaves[-1].slave.slavename))
        return slaves[-1]
    except Exception, e:
        twisted_log.msg("useBestSlave: got exception: %r" % (e))
        return random.choice(buildslaves)

...

c['builders'].append({
        'name': '...',
        'factory': BuildFactory(steps),
        'builddir': builddir,
        ....,
        'nextSlave':  useBestSlave,
    })



On May 9, 2014, at 3:04, Julia S.S. <hithwen at gmail.com> wrote:

> Hi Jared,
> I'm using 0.8.8
> 
> In case of exception i'd expect to see  at least the first logged message (which is the first line of the function): logger.msg('nextSlave called') and when i'm passing lambda _,slaves: random.choice(slaves) if slaves else None if should not hang anyway.
> I gave a try to the try/catch->log but i got same result: build pending and nothing in the log.
> 
> Thanks anyway
> 
> 
> 
> 
> Sent with MailTrack
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20140509/f5ff6922/attachment.html>


More information about the devel mailing list