13
from zope.component import getUtility
15
13
from canonical.config import config
16
from canonical.launchpad.scripts.base import (
17
LaunchpadCronScript, LaunchpadScriptFailure)
18
from canonical.launchpad.interfaces import IBuilderSet
21
class SlaveScanner(LaunchpadCronScript):
25
raise LaunchpadScriptFailure(
26
"Unhandled arguments %s" % repr(self.args))
28
builder_set = getUtility(IBuilderSet)
29
buildMaster = builder_set.pollBuilders(self.logger, self.txn)
31
self.logger.info("Dispatching Jobs.")
33
for builder in builder_set:
34
self.logger.info("Processing: %s" % builder.name)
35
# XXX cprov 2007-11-09: we don't support manual dispatching
36
# yet. Once we support it this clause should be removed.
38
self.logger.warn('builder is in manual state. Ignored.')
40
if not builder.is_available:
41
self.logger.warn('builder is not available. Ignored.')
43
candidate = builder.findBuildCandidate()
46
"No candidates available for builder.")
48
builder.dispatchBuildCandidate(candidate)
51
self.logger.info("Slave Scan Process Finished.")
14
from canonical.launchpad.scripts.buildd import SlaveScanner
53
17
if __name__ == '__main__':
54
18
script = SlaveScanner('slave-scanner', dbuser=config.builddmaster.dbuser)