Package buildbot :: Package steps :: Module blocker :: Class Blocker
[frames] | no frames]

Class Blocker

source code

process.properties.PropertiesMixin --+    
                                     |    
           process.buildstep.BuildStep --+
                                         |
                                        Blocker


Build step that blocks until at least one other step finishes.

@ivar upstreamSteps: a non-empty list of (builderName, stepName) tuples
                     identifying the other build steps that must
                     complete in order to unblock this Blocker.
@ivar idlePolicy: string: what to do if one of the upstream builders is
                  idle when this Blocker starts; one of:
                    "error": just blow up (the Blocker will fail with
                      status EXCEPTION)
                    "ignore": carry on as if the referenced build step
                      was not mentioned (or is already complete)
                    "block": block until the referenced builder starts
                      a build, and then block until the referenced build
                      step in that build finishes
@ivar timeout: int: how long to block, in seconds, before giving up and
               failing (default: None, meaning block forever)

Instance Methods
 
__init__(self, **kwargs) source code
 
__str__(self) source code
 
__repr__(self) source code
 
buildsMatch(self, buildStatus1, buildStatus2)
Return true if buildStatus1 and buildStatus2 are from related builds, i.e.
source code
 
start(self) source code

Inherited from process.buildstep.BuildStep: __provides__, acquireLocks, addCompleteLog, addFactoryArguments, addHTMLLog, addLog, addLogObserver, addURL, describe, failed, finished, getLog, getSlaveName, getStepFactory, interrupt, releaseLocks, runCommand, setBuild, setBuildSlave, setDefaultWorkdir, setProgress, setStepStatus, setupProgress, slaveVersion, slaveVersionIsOlderThan, startStep

Inherited from process.properties.PropertiesMixin: __providedBy__, getProperties, getProperty, hasProperty, has_key, render, setProperty

Class Variables
  parms = ['name', 'locks', 'haltOnFailure', 'flunkOnWarnings', ...
  flunkOnFailure = True
  upstreamSteps = None
hash(x)
  idlePolicy = 'block'
  timeout = None
hash(x)
  VALID_IDLE_POLICIES = ('error', 'ignore', 'block')

Inherited from process.buildstep.BuildStep: __implemented__, alwaysRun, build, doStepIf, flunkOnWarnings, haltOnFailure, hideStepIf, locks, name, progress, progressMetrics, set_runtime_properties, step_status, useProgress, warnOnFailure, warnOnWarnings

Method Details

__init__(self, **kwargs)
(Constructor)

source code 
Overrides: process.buildstep.BuildStep.__init__

buildsMatch(self, buildStatus1, buildStatus2)

source code 

Return true if buildStatus1 and buildStatus2 are from related builds, i.e. a Blocker step running in buildStatus2 should be blocked by an upstream step in buildStatus1. Return false if they are unrelated.

Default implementation simply raises NotImplementedError: you *must* subclass Blocker and implement this method, because BuildBot currently provides no way to relate different builders. This might change if ticket #875 ("build flocks") is implemented.

start(self)

source code 
Overrides: process.buildstep.BuildStep.start

Class Variable Details

parms

Value:
['name',
 'locks',
 'haltOnFailure',
 'flunkOnWarnings',
 'flunkOnFailure',
 'warnOnWarnings',
 'warnOnFailure',
 'alwaysRun',
...