<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=us-ascii">
<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:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@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="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Is there an easier way to run a builder on several nodes at once? I have the following config to cleanup the compile checks on all the workers, which works great but it produces a lot of extra builders; one for each worker. Am I going about
 this wrong?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">def configResetAll(c, branch, ccLock):<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    capitalBranch = branch.capitalize()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory = util.BuildFactory()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory.workdir = '.'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory.addStep(ObservedShellCommand(name='rd',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       command=['cmd.exe', '/c', 'rd /s /q %s_DCC\src\intermediates' % capitalBranch],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       workdir='.',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       flunkOnFailure=True,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       haltOnFailure=False,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory.addStep(ObservedShellCommand(name='rd',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       command=['cmd.exe', '/c', 'rd /s /q %s_RCC\src\intermediates' % capitalBranch],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       workdir='.',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       flunkOnFailure=True,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       haltOnFailure=False,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                       ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory.addStep(steps.VS2013(name='clean',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         projectfile=r"%s_DCC\src\hot-all-vc12.sln" % capitalBranch,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         config="Debug",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         mode="clean",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         flunkOnFailure=True,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         haltOnFailure=False,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                        ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    resetAllFactory.addStep(steps.VS2013(name='clean',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         projectfile=r"%s_RCC\src\hot-all-vc12.sln" % capitalBranch,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         config="Release",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         mode="clean",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         flunkOnFailure=True,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                         haltOnFailure=False,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                        ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    builderNames = []<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    slaves = getSlaves(c, roles=['compile_check'])<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    for slave in slaves:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        builderName = capitalBranch + "_CC_ResetAll_" + slave.properties['short_name']<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        c['builders'].append(<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">           BuilderConfig(name=builderName,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          slavenames=[slave.name],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          slavebuilddir='.',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          factory=resetAllFactory,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          tags=[branch + '_cc_resetall'],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                         ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        builderNames.append(builderName)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    triggerSchedulerName = capitalBranch + "_CC_ResetAll_Trigger"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    c['schedulers'].append(schedulers.Triggerable(name=triggerSchedulerName,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                                                  builderNames=builderNames))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    triggerFactory = util.BuildFactory()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    triggerFactory.workdir = '.'<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    triggerFactory.addStep(steps.Trigger(name="reset_%s_cc" % branch, schedulerNames=[triggerSchedulerName], waitForFinish=True, flunkOnFailure=True, haltOnFailure=True))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    builderName = capitalBranch + "_CC_ResetAll"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    c['builders'].append(<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">            BuilderConfig(name=builderName,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          slavenames=[x.name for x in slaves],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          slavebuilddir='.',<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          factory=triggerFactory,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                          tags=[branch + '_cc_resetall'],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">                         ))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    c['schedulers'].append(schedulers.ForceScheduler(<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        name=capitalBranch + "_CC_ResetAll_Scheduler",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        builderNames=[builderName],<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        codebases=[CodebaseParameter(codebase='', hide=True)]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    )) <o:p></o:p></span></p>
</div>
</body>
</html>