~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to cronscripts/buildd-slave-scanner.py

  • Committer: Gary Poster
  • Date: 2009-04-20 12:43:08 UTC
  • mfrom: (8255 devel)
  • mto: (8329.1.1 buildout2)
  • mto: This revision was merged to the branch mainline in revision 8489.
  • Revision ID: gary.poster@canonical.com-20090420124308-k2tahh982si8upvy
merge from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
 
11
11
import _pythonpath
12
12
 
13
 
from zope.component import getUtility
14
 
 
15
13
from canonical.config import config
16
 
from canonical.launchpad.scripts.base import (
17
 
    LaunchpadCronScript, LaunchpadScriptFailure)
18
 
from canonical.launchpad.interfaces import IBuilderSet
19
 
 
20
 
 
21
 
class SlaveScanner(LaunchpadCronScript):
22
 
 
23
 
    def main(self):
24
 
        if self.args:
25
 
            raise LaunchpadScriptFailure(
26
 
                "Unhandled arguments %s" % repr(self.args))
27
 
 
28
 
        builder_set = getUtility(IBuilderSet)
29
 
        buildMaster = builder_set.pollBuilders(self.logger, self.txn)
30
 
 
31
 
        self.logger.info("Dispatching Jobs.")
32
 
 
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.
37
 
            if builder.manual:
38
 
                self.logger.warn('builder is in manual state. Ignored.')
39
 
                continue
40
 
            if not builder.is_available:
41
 
                self.logger.warn('builder is not available. Ignored.')
42
 
                continue
43
 
            candidate = builder.findBuildCandidate()
44
 
            if candidate is None:
45
 
                self.logger.debug(
46
 
                    "No candidates available for builder.")
47
 
                continue
48
 
            builder.dispatchBuildCandidate(candidate)
49
 
            self.txn.commit()
50
 
 
51
 
        self.logger.info("Slave Scan Process Finished.")
 
14
from canonical.launchpad.scripts.buildd import SlaveScanner
 
15
 
52
16
 
53
17
if __name__ == '__main__':
54
18
    script = SlaveScanner('slave-scanner', dbuser=config.builddmaster.dbuser)