<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">So as a test I created a nextSlave function to allow a job only if the slave is idle. It sort of works except when getNext is called back to back. In that case
 I get two builds scheduled on one machine when there should only be one. It looks like the builder’s current builds hasn’t had time to be updated. Is there a lock I could use? Or a pending builds list somewhere?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thx.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">def getNextSlaveIfIdle(builder, slaveBuilders, buildRequest):<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    master = builder.master<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">   
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    busySlaveNames = set()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    for builder in master.botmaster.builders.values():<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">        for b in builder.builder_status.getCurrentBuilds():<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">            busySlaveNames.add(b.getSlavename())<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">       
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    for slaveBuilder in slaveBuilders:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">        if slaveBuilder.slave.name in busySlaveNames:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">            continue<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">        print '*** Using %s for next build.' % slaveBuilder.slave.name<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">        return slaveBuilder<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">       
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    print '*** No slaves available.'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Courier New";color:#1F497D">    return None<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> users [mailto:users-bounces@buildbot.net]
<b>On Behalf Of </b>Greg MacDonald<br>
<b>Sent:</b> Thursday, February 11, 2016 11:20 AM<br>
<b>To:</b> Cipi Bad<br>
<b>Cc:</b> users@buildbot.net<br>
<b>Subject:</b> Re: [users@bb.net] builds per node<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Thanks! I’ll give that a shot.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Greg<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Cipi Bad [<a href="mailto:cipibad@gmail.com">mailto:cipibad@gmail.com</a>]
<br>
<b>Sent:</b> Wednesday, February 10, 2016 9:50 PM<br>
<b>To:</b> Greg MacDonald<br>
<b>Cc:</b> <a href="mailto:users@buildbot.net">users@buildbot.net</a><br>
<b>Subject:</b> Re: [users@bb.net] builds per node<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_6652">
<p class="MsoNormal">Hi,<o:p></o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_6528">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_7163">
<p class="MsoNormal">The solution should be in custom nextSlave function.<o:p></o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_6653">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_7179">
<p class="MsoNormal">For similar problem, I tried to use custom nextSlave(that should be the natural solution)  without success.<o:p></o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_7136">
<p class="MsoNormal">Currently I am using a 'ugly' combination of "nextBuild" /max_builds<o:p></o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_7191">
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div id="yiv7237597551yui_3_16_0_1_1455124162447_7192">
<p class="MsoNormal">Good luck,<o:p></o:p></p>
</div>
<p class="MsoNormal">Ciprian<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Thu, Feb 11, 2016 at 2:11 AM, Greg MacDonald <<a href="mailto:gmacdonald@trionworlds.com" target="_blank">gmacdonald@trionworlds.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi Everyone,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Is there a way to limit the number of builds per node for a set of builders? I’m using a slave lock for that purpose on the builder and it’s not quite what I’d like to happen. The
 builds start on a specific slave in the starting state. But they’re waiting not starting and it makes it difficult in the UI to see what is currently running. Also I’d rather the scheduling be performed dynamically at the time slaves become free. Is there
 another way to do this? <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#888888"> <o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:#888888">-Greg<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@buildbot.net">users@buildbot.net</a><br>
<a href="https://lists.buildbot.net/mailman/listinfo/users" target="_blank">https://lists.buildbot.net/mailman/listinfo/users</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>