buildbot/buildbot — pull request #615 by jaredgrubb (2013-01-23 07:02:25+00:00)
Title: BuildChooser: refactor (slave,breq) logic into strategy object

* moved the following logic from Builder to BuildChooser
- slave choice
- build choice
- build merging
* move the following logic from Builder to BuildRequestDistributor
- managing the brid reclamation
* adjusted some of the logic on how locks are saved in member variables.
This makes some of the code more uniform and reduces some redundancy.
* unit tests moved appropriately from process_builder to process_BRD; a few more unit tests to cover new functionality

The slave-choice logic now checks if slaves can grab build locks. Slaves that
can are preferred to slaves that cant.

Also adding a customization point that lets slaves to be chosen based on
particular builds; for example, a patch is coming that will add a ForceScheduler
parameter to force a build onto a particular buildslave.