~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/model/buildpackagejob.py

Merged delegate-to-buildfarmjob

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
 
13
13
from storm.locals import Int, Reference, Storm
14
14
 
 
15
from zope.component import getUtility
15
16
from zope.interface import implements
16
 
from zope.component import getUtility
17
17
 
18
18
from canonical.database.sqlbase import sqlvalues
19
19
 
20
20
from lp.buildmaster.interfaces.buildbase import BuildStatus
21
 
from lp.buildmaster.model.packagebuildfarmjob import PackageBuildFarmJob
 
21
from lp.buildmaster.model.packagebuildfarmjob import (
 
22
    PackageBuildFarmJobDerived)
22
23
from lp.registry.interfaces.sourcepackage import SourcePackageUrgency
23
24
from lp.registry.interfaces.pocket import PackagePublishingPocket
24
25
from lp.soyuz.interfaces.archive import ArchivePurpose
27
28
from lp.soyuz.interfaces.publishing import PackagePublishingStatus
28
29
 
29
30
 
30
 
class BuildPackageJob(PackageBuildFarmJob, Storm):
 
31
class BuildPackageJob(PackageBuildFarmJobDerived, Storm):
31
32
    """See `IBuildPackageJob`."""
32
33
    implements(IBuildPackageJob)
33
34
 
40
41
    build_id = Int(name='build', allow_none=False)
41
42
    build = Reference(build_id, 'BinaryPackageBuild.id')
42
43
 
 
44
    def __init__(self, build, job):
 
45
        """Set the attribute for the IBuildFarmJob delegation when
 
46
        new items are created and added to the store.
 
47
        """
 
48
        self.build, self.job = build, job
 
49
        super(BuildPackageJob, self).__init__()
 
50
 
43
51
    def score(self):
44
52
        """See `IBuildPackageJob`."""
45
53
        score_pocketname = {
166
174
 
167
175
    @staticmethod
168
176
    def addCandidateSelectionCriteria(processor, virtualized):
169
 
        """See `IBuildFarmCandidateJobSelection`."""
 
177
        """See `IBuildFarmJob`."""
170
178
        # Avoiding circular import.
171
179
        from lp.buildmaster.model.builder import Builder
172
180
 
236
244
 
237
245
    @staticmethod
238
246
    def postprocessCandidate(job, logger):
239
 
        """See `IBuildFarmCandidateJobSelection`."""
 
247
        """See `IBuildFarmJob`."""
240
248
        # Mark build records targeted to old source versions as SUPERSEDED
241
249
        # and build records target to SECURITY pocket as FAILEDTOBUILD.
242
250
        # Builds in those situation should not be built because they will