Merge lp:~michael.nelson/launchpad/506292-binarypackagebuild-rename into lp:launchpad

Proposed by Michael Nelson
Status: Merged
Approved by: Julian Edwards
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~michael.nelson/launchpad/506292-binarypackagebuild-rename
Merge into: lp:launchpad
Diff against target: 3064 lines (+446/-381)
64 files modified
lib/canonical/launchpad/database/__init__.py (+1/-1)
lib/canonical/launchpad/interfaces/__init__.py (+1/-1)
lib/canonical/launchpad/interfaces/_schema_circular_imports.py (+4/-3)
lib/canonical/launchpad/security.py (+9/-7)
lib/canonical/launchpad/webapp/configure.zcml (+2/-2)
lib/lp/archiveuploader/nascentuploadfile.py (+2/-2)
lib/lp/archiveuploader/tests/test_securityuploads.py (+3/-3)
lib/lp/buildmaster/doc/buildqueue.txt (+11/-11)
lib/lp/buildmaster/model/builder.py (+8/-8)
lib/lp/buildmaster/tests/test_builder.py (+8/-8)
lib/lp/buildmaster/tests/test_buildqueue.py (+5/-5)
lib/lp/buildmaster/tests/test_manager.py (+6/-6)
lib/lp/registry/browser/person.py (+2/-2)
lib/lp/registry/model/distribution.py (+9/-7)
lib/lp/registry/model/distroseries.py (+4/-3)
lib/lp/registry/model/sourcepackage.py (+4/-3)
lib/lp/soyuz/browser/archive.py (+3/-2)
lib/lp/soyuz/browser/build.py (+17/-14)
lib/lp/soyuz/browser/builder.py (+2/-2)
lib/lp/soyuz/browser/configure.zcml (+5/-5)
lib/lp/soyuz/browser/distributionsourcepackagerelease.py (+3/-3)
lib/lp/soyuz/browser/publishing.py (+1/-1)
lib/lp/soyuz/browser/tests/archive-views.txt (+4/-2)
lib/lp/soyuz/browser/tests/builder-views.txt (+3/-2)
lib/lp/soyuz/configure.zcml (+14/-13)
lib/lp/soyuz/doc/build-estimated-dispatch-time.txt (+3/-2)
lib/lp/soyuz/doc/build-failedtoupload-workflow.txt (+3/-2)
lib/lp/soyuz/doc/build-notification.txt (+7/-5)
lib/lp/soyuz/doc/build.txt (+36/-34)
lib/lp/soyuz/doc/buildd-dispatching.txt (+5/-4)
lib/lp/soyuz/doc/buildd-scoring.txt (+3/-2)
lib/lp/soyuz/doc/buildd-slavescanner.txt (+24/-19)
lib/lp/soyuz/doc/distroarchseriesbinarypackage.txt (+3/-3)
lib/lp/soyuz/doc/gina-multiple-arch.txt (+4/-4)
lib/lp/soyuz/doc/gina.txt (+4/-4)
lib/lp/soyuz/doc/queuebuilder.txt (+10/-7)
lib/lp/soyuz/doc/sourcepackagerelease.txt (+2/-2)
lib/lp/soyuz/doc/soyuz-set-of-uploads.txt (+6/-5)
lib/lp/soyuz/interfaces/binarypackagebuild.py (+12/-10)
lib/lp/soyuz/interfaces/buildfarmbuildjob.py (+2/-2)
lib/lp/soyuz/interfaces/buildpackagejob.py (+2/-2)
lib/lp/soyuz/model/archive.py (+18/-15)
lib/lp/soyuz/model/binarypackagebuild.py (+47/-41)
lib/lp/soyuz/model/binarypackagerelease.py (+2/-1)
lib/lp/soyuz/model/buildpackagejob.py (+3/-3)
lib/lp/soyuz/model/distributionsourcepackagerelease.py (+10/-8)
lib/lp/soyuz/model/distroarchseries.py (+4/-3)
lib/lp/soyuz/model/publishedpackage.py (+1/-1)
lib/lp/soyuz/model/publishing.py (+40/-31)
lib/lp/soyuz/model/queue.py (+1/-1)
lib/lp/soyuz/model/sourcepackagerelease.py (+5/-5)
lib/lp/soyuz/scripts/buildd.py (+7/-5)
lib/lp/soyuz/scripts/gina/handlers.py (+3/-3)
lib/lp/soyuz/scripts/packagecopier.py (+1/-1)
lib/lp/soyuz/scripts/tests/test_buildd_cronscripts.py (+4/-4)
lib/lp/soyuz/scripts/tests/test_copypackage.py (+2/-3)
lib/lp/soyuz/scripts/tests/test_populatearchive.py (+6/-5)
lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt (+4/-2)
lib/lp/soyuz/stories/soyuz/xx-binarypackagerelease-index.txt (+3/-2)
lib/lp/soyuz/stories/soyuz/xx-build-record.txt (+4/-2)
lib/lp/soyuz/stories/webservice/xx-builds.txt (+7/-6)
lib/lp/soyuz/tests/test_archive.py (+2/-2)
lib/lp/soyuz/tests/test_build.py (+13/-12)
lib/lp/soyuz/tests/test_buildpackagejob.py (+2/-2)
To merge this branch: bzr merge lp:~michael.nelson/launchpad/506292-binarypackagebuild-rename
Reviewer Review Type Date Requested Status
Julian Edwards (community) code rs Approve
Canonical Launchpad Engineering Pending
Review via email: mp+23226@code.launchpad.net

Commit message

Rename soyuz's Build class (and interface/sets) to BinaryPackageBuild.

Description of the change

This branch renames the soyuz Build class (and it's interfaces, sets) to BinaryPackageBuild.

It ensures that the API resource_type is still #build for the moment just to ensure there are no changes to the API.

I'm not expecting a normal review, but bigjools will take a quick look and rs it if he's happy with it.

To post a comment you must log in.
Revision history for this message
Julian Edwards (julian-edwards) wrote :

rubber stamped!

review: Approve (code rs)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/canonical/launchpad/database/__init__.py'
--- lib/canonical/launchpad/database/__init__.py 2010-03-05 13:52:32 +0000
+++ lib/canonical/launchpad/database/__init__.py 2010-04-13 06:59:32 +0000
@@ -20,7 +20,7 @@
20from lp.soyuz.model.distroarchseriesbinarypackage import *20from lp.soyuz.model.distroarchseriesbinarypackage import *
21from lp.soyuz.model.distroarchseriesbinarypackagerelease import *21from lp.soyuz.model.distroarchseriesbinarypackagerelease import *
22from lp.soyuz.model.processor import *22from lp.soyuz.model.processor import *
23from lp.soyuz.model.build import *23from lp.soyuz.model.binarypackagebuild import *
24from lp.buildmaster.model.builder import *24from lp.buildmaster.model.builder import *
25from lp.soyuz.model.publishing import *25from lp.soyuz.model.publishing import *
26from lp.soyuz.model.files import *26from lp.soyuz.model.files import *
2727
=== modified file 'lib/canonical/launchpad/interfaces/__init__.py'
--- lib/canonical/launchpad/interfaces/__init__.py 2010-03-05 13:52:32 +0000
+++ lib/canonical/launchpad/interfaces/__init__.py 2010-04-13 06:59:32 +0000
@@ -42,7 +42,7 @@
42from lp.bugs.interfaces.bugtarget import *42from lp.bugs.interfaces.bugtarget import *
43from lp.bugs.interfaces.bugtracker import *43from lp.bugs.interfaces.bugtracker import *
44from lp.bugs.interfaces.bugwatch import *44from lp.bugs.interfaces.bugwatch import *
45from lp.soyuz.interfaces.build import *45from lp.soyuz.interfaces.binarypackagebuild import *
46from lp.buildmaster.interfaces.builder import *46from lp.buildmaster.interfaces.builder import *
47from lp.soyuz.interfaces.buildrecords import *47from lp.soyuz.interfaces.buildrecords import *
48from lp.registry.interfaces.codeofconduct import *48from lp.registry.interfaces.codeofconduct import *
4949
=== modified file 'lib/canonical/launchpad/interfaces/_schema_circular_imports.py'
--- lib/canonical/launchpad/interfaces/_schema_circular_imports.py 2010-04-06 20:17:04 +0000
+++ lib/canonical/launchpad/interfaces/_schema_circular_imports.py 2010-04-13 06:59:32 +0000
@@ -32,7 +32,7 @@
32from lp.bugs.interfaces.bugtracker import IBugTracker32from lp.bugs.interfaces.bugtracker import IBugTracker
33from lp.bugs.interfaces.bugwatch import IBugWatch33from lp.bugs.interfaces.bugwatch import IBugWatch
34from lp.buildmaster.interfaces.buildbase import BuildStatus34from lp.buildmaster.interfaces.buildbase import BuildStatus
35from lp.soyuz.interfaces.build import IBuild35from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuild
36from lp.soyuz.interfaces.buildrecords import IHasBuildRecords36from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
37from lp.blueprints.interfaces.specification import ISpecification37from lp.blueprints.interfaces.specification import ISpecification
38from lp.blueprints.interfaces.specificationbranch import (38from lp.blueprints.interfaces.specificationbranch import (
@@ -165,7 +165,7 @@
165 'params']['build_state'].vocabulary = BuildStatus165 'params']['build_state'].vocabulary = BuildStatus
166IHasBuildRecords['getBuildRecords'].queryTaggedValue(166IHasBuildRecords['getBuildRecords'].queryTaggedValue(
167 LAZR_WEBSERVICE_EXPORTED)[167 LAZR_WEBSERVICE_EXPORTED)[
168 'return_type'].value_type.schema = IBuild168 'return_type'].value_type.schema = IBinaryPackageBuild
169169
170ISourcePackage['distroseries'].schema = IDistroSeries170ISourcePackage['distroseries'].schema = IDistroSeries
171ISourcePackage['productseries'].schema = IProductSeries171ISourcePackage['productseries'].schema = IProductSeries
@@ -185,7 +185,8 @@
185185
186# publishing.py186# publishing.py
187ISourcePackagePublishingHistoryPublic['getBuilds'].queryTaggedValue(187ISourcePackagePublishingHistoryPublic['getBuilds'].queryTaggedValue(
188 LAZR_WEBSERVICE_EXPORTED)['return_type'].value_type.schema = IBuild188 LAZR_WEBSERVICE_EXPORTED)['return_type'].value_type.schema = (
189 IBinaryPackageBuild)
189ISourcePackagePublishingHistoryPublic[190ISourcePackagePublishingHistoryPublic[
190 'getPublishedBinaries'].queryTaggedValue(191 'getPublishedBinaries'].queryTaggedValue(
191 LAZR_WEBSERVICE_EXPORTED)[192 LAZR_WEBSERVICE_EXPORTED)[
192193
=== modified file 'lib/canonical/launchpad/security.py'
--- lib/canonical/launchpad/security.py 2010-03-25 08:48:14 +0000
+++ lib/canonical/launchpad/security.py 2010-04-13 06:59:32 +0000
@@ -73,7 +73,7 @@
73from lp.translations.interfaces.potemplate import IPOTemplate73from lp.translations.interfaces.potemplate import IPOTemplate
74from lp.soyuz.interfaces.binarypackagerelease import (74from lp.soyuz.interfaces.binarypackagerelease import (
75 IBinaryPackageReleaseDownloadCount)75 IBinaryPackageReleaseDownloadCount)
76from lp.soyuz.interfaces.build import IBuild76from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuild
77from lp.soyuz.interfaces.buildfarmbuildjob import IBuildFarmBuildJob77from lp.soyuz.interfaces.buildfarmbuildjob import IBuildFarmBuildJob
78from lp.soyuz.interfaces.publishing import (78from lp.soyuz.interfaces.publishing import (
79 IBinaryPackagePublishingHistory, IPublishingEdit,79 IBinaryPackagePublishingHistory, IPublishingEdit,
@@ -1436,12 +1436,12 @@
14361436
14371437
1438class AdminBuildRecord(AdminByBuilddAdmin):1438class AdminBuildRecord(AdminByBuilddAdmin):
1439 usedfor = IBuild1439 usedfor = IBinaryPackageBuild
14401440
14411441
1442class EditBuildRecord(AdminByBuilddAdmin):1442class EditBuildRecord(AdminByBuilddAdmin):
1443 permission = 'launchpad.Edit'1443 permission = 'launchpad.Edit'
1444 usedfor = IBuild1444 usedfor = IBinaryPackageBuild
14451445
1446 def checkAuthenticated(self, user):1446 def checkAuthenticated(self, user):
1447 """Check write access for user and different kinds of archives.1447 """Check write access for user and different kinds of archives.
@@ -1476,8 +1476,9 @@
1476class ViewBuildRecord(EditBuildRecord):1476class ViewBuildRecord(EditBuildRecord):
1477 permission = 'launchpad.View'1477 permission = 'launchpad.View'
14781478
1479 # This code MUST match the logic in IBuildSet.getBuildsForBuilder()1479 # This code MUST match the logic in
1480 # otherwise users are likely to get 403 errors, or worse.1480 # IBinaryPackageBuildSet.getBuildsForBuilder() otherwise users are
1481 # likely to get 403 errors, or worse.
1481 def checkAuthenticated(self, user):1482 def checkAuthenticated(self, user):
1482 """Private restricts to admins and archive members."""1483 """Private restricts to admins and archive members."""
1483 if not self.obj.archive.private:1484 if not self.obj.archive.private:
@@ -1518,7 +1519,7 @@
1518 """Permission to view an `IBuildFarmJob`.1519 """Permission to view an `IBuildFarmJob`.
15191520
1520 This permission is based entirely on permission to view the1521 This permission is based entirely on permission to view the
1521 associated `IBuild` and/or `IBranch`.1522 associated `IBinaryPackageBuild` and/or `IBranch`.
1522 """1523 """
1523 permission = 'launchpad.View'1524 permission = 'launchpad.View'
1524 usedfor = IBuildFarmJob1525 usedfor = IBuildFarmJob
@@ -2176,7 +2177,8 @@
2176 usedfor = IBinaryPackagePublishingHistory2177 usedfor = IBinaryPackagePublishingHistory
21772178
21782179
2179class ViewBinaryPackageReleaseDownloadCount(ViewSourcePackagePublishingHistory):2180class ViewBinaryPackageReleaseDownloadCount(
2181 ViewSourcePackagePublishingHistory):
2180 """Restrict viewing of binary package download counts."""2182 """Restrict viewing of binary package download counts."""
2181 usedfor = IBinaryPackageReleaseDownloadCount2183 usedfor = IBinaryPackageReleaseDownloadCount
21822184
21832185
=== modified file 'lib/canonical/launchpad/webapp/configure.zcml'
--- lib/canonical/launchpad/webapp/configure.zcml 2010-03-23 19:07:44 +0000
+++ lib/canonical/launchpad/webapp/configure.zcml 2010-04-13 06:59:32 +0000
@@ -62,7 +62,7 @@
62 <!-- lazr.batchnavigator hook -->62 <!-- lazr.batchnavigator hook -->
63 <adapter63 <adapter
64 factory='.batching.FiniteSequenceAdapter' />64 factory='.batching.FiniteSequenceAdapter' />
65 65
66 <adapter66 <adapter
67 factory='.batching.FiniteSequenceAdapter'67 factory='.batching.FiniteSequenceAdapter'
68 for='storm.zope.interfaces.ISQLObjectResultSet' />68 for='storm.zope.interfaces.ISQLObjectResultSet' />
@@ -216,7 +216,7 @@
216 />216 />
217217
218 <adapter218 <adapter
219 for="lp.soyuz.interfaces.build.IBuild"219 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
220 provides="zope.traversing.interfaces.IPathAdapter"220 provides="zope.traversing.interfaces.IPathAdapter"
221 factory="canonical.launchpad.webapp.tales.BuildImageDisplayAPI"221 factory="canonical.launchpad.webapp.tales.BuildImageDisplayAPI"
222 name="image"222 name="image"
223223
=== modified file 'lib/lp/archiveuploader/nascentuploadfile.py'
--- lib/lp/archiveuploader/nascentuploadfile.py 2010-03-06 04:57:40 +0000
+++ lib/lp/archiveuploader/nascentuploadfile.py 2010-04-13 06:59:32 +0000
@@ -39,7 +39,7 @@
39 IBinaryPackageNameSet)39 IBinaryPackageNameSet)
40from lp.soyuz.interfaces.binarypackagerelease import (40from lp.soyuz.interfaces.binarypackagerelease import (
41 BinaryPackageFormat)41 BinaryPackageFormat)
42from lp.soyuz.interfaces.build import IBuildSet42from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
43from lp.soyuz.interfaces.component import IComponentSet43from lp.soyuz.interfaces.component import IComponentSet
44from canonical.launchpad.interfaces.librarian import ILibraryFileAliasSet44from canonical.launchpad.interfaces.librarian import ILibraryFileAliasSet
45from lp.soyuz.interfaces.queue import (45from lp.soyuz.interfaces.queue import (
@@ -817,7 +817,7 @@
817 status=BuildStatus.FULLYBUILT)817 status=BuildStatus.FULLYBUILT)
818 self.logger.debug("Build %s created" % build.id)818 self.logger.debug("Build %s created" % build.id)
819 else:819 else:
820 build = getUtility(IBuildSet).getByBuildID(build_id)820 build = getUtility(IBinaryPackageBuildSet).getByBuildID(build_id)
821 self.logger.debug("Build %s found" % build.id)821 self.logger.debug("Build %s found" % build.id)
822 # Ensure gathered binary is related to a FULLYBUILT build822 # Ensure gathered binary is related to a FULLYBUILT build
823 # record. It will be check in slave-scanner procedure to823 # record. It will be check in slave-scanner procedure to
824824
=== modified file 'lib/lp/archiveuploader/tests/test_securityuploads.py'
--- lib/lp/archiveuploader/tests/test_securityuploads.py 2010-01-07 06:29:36 +0000
+++ lib/lp/archiveuploader/tests/test_securityuploads.py 2010-04-13 06:59:32 +0000
@@ -14,7 +14,7 @@
14 TestUploadProcessorBase)14 TestUploadProcessorBase)
15from lp.archiveuploader.uploadprocessor import UploadProcessor15from lp.archiveuploader.uploadprocessor import UploadProcessor
16from lp.registry.interfaces.pocket import PackagePublishingPocket16from lp.registry.interfaces.pocket import PackagePublishingPocket
17from lp.soyuz.model.build import Build17from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
18from lp.soyuz.model.processor import ProcessorFamily18from lp.soyuz.model.processor import ProcessorFamily
19from canonical.launchpad.interfaces import (19from canonical.launchpad.interfaces import (
20 IDistributionSet, PackageUploadStatus)20 IDistributionSet, PackageUploadStatus)
@@ -73,7 +73,7 @@
73 # Set up the uploadprocessor with appropriate options and logger73 # Set up the uploadprocessor with appropriate options and logger
74 self.uploadprocessor = UploadProcessor(74 self.uploadprocessor = UploadProcessor(
75 self.options, self.layer.txn, self.log)75 self.options, self.layer.txn, self.log)
76 self.builds_before_upload = Build.select().count()76 self.builds_before_upload = BinaryPackageBuild.select().count()
77 self.source_queue = None77 self.source_queue = None
78 self._uploadSource()78 self._uploadSource()
79 self.log.lines = []79 self.log.lines = []
@@ -81,7 +81,7 @@
8181
82 def assertBuildsCreated(self, amount):82 def assertBuildsCreated(self, amount):
83 """Assert that a given 'amount' of build records was created."""83 """Assert that a given 'amount' of build records was created."""
84 builds_count = Build.select().count()84 builds_count = BinaryPackageBuild.select().count()
85 self.assertEqual(85 self.assertEqual(
86 self.builds_before_upload + amount, builds_count)86 self.builds_before_upload + amount, builds_count)
8787
8888
=== modified file 'lib/lp/buildmaster/doc/buildqueue.txt'
--- lib/lp/buildmaster/doc/buildqueue.txt 2010-03-07 04:06:22 +0000
+++ lib/lp/buildmaster/doc/buildqueue.txt 2010-04-13 06:59:32 +0000
@@ -31,8 +31,8 @@
31The IBuild record related to this job is provided by the 'build'31The IBuild record related to this job is provided by the 'build'
32attribute:32attribute:
3333
34 >>> from lp.soyuz.interfaces.build import IBuildSet34 >>> from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
35 >>> build = getUtility(IBuildSet).getByQueueEntry(bq)35 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bq)
36 >>> build.id36 >>> build.id
37 837 8
38 >>> build.buildstate.name38 >>> build.buildstate.name
@@ -124,7 +124,7 @@
124 True124 True
125 >>> print job.logtail125 >>> print job.logtail
126 Dummy sampledata entry, not processing126 Dummy sampledata entry, not processing
127 >>> build = getUtility(IBuildSet).getByQueueEntry(job)127 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
128 >>> print build.buildstate.name128 >>> print build.buildstate.name
129 BUILDING129 BUILDING
130 >>> print job.lastscore130 >>> print job.lastscore
@@ -255,8 +255,8 @@
255Note that the results are ordered by descending BuildQueue.lastscore255Note that the results are ordered by descending BuildQueue.lastscore
256and restricted256and restricted
257257
258 >>> for bq in getUtility(IBuildSet).calculateCandidates(archseries):258 >>> for bq in getUtility(IBinaryPackageBuildSet).calculateCandidates(archseries):
259 ... build = getUtility(IBuildSet).getByQueueEntry(bq)259 ... build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bq)
260 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)260 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)
261 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)261 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)
262 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE (1000, 2)262 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE (1000, 2)
@@ -287,8 +287,8 @@
287The fake language pack will be queued behind the other source packages287The fake language pack will be queued behind the other source packages
288as intended.288as intended.
289289
290 >>> for bq in getUtility(IBuildSet).calculateCandidates(archseries):290 >>> for bq in getUtility(IBinaryPackageBuildSet).calculateCandidates(archseries):
291 ... build = getUtility(IBuildSet).getByQueueEntry(bq)291 ... build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bq)
292 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)292 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)
293 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)293 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)
294 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE (1000, 2)294 i386 build of alsa-utils 1.0.9a-4ubuntu1 in ubuntu hoary RELEASE (1000, 2)
@@ -299,8 +299,8 @@
299Restricting the domain to only hoary/hppa:299Restricting the domain to only hoary/hppa:
300300
301 >>> archseries = [hoary['hppa']]301 >>> archseries = [hoary['hppa']]
302 >>> for bq in getUtility(IBuildSet).calculateCandidates(archseries):302 >>> for bq in getUtility(IBinaryPackageBuildSet).calculateCandidates(archseries):
303 ... build = getUtility(IBuildSet).getByQueueEntry(bq)303 ... build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bq)
304 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)304 ... print "%s (%s, %d)" % (build.title, bq.lastscore, bq.id)
305 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)305 hppa build of pmount 0.1-2 in ubuntu hoary RELEASE (1500, 4)
306 hppa build of alsa-utils 1.0.9a-4 in ubuntu hoary RELEASE (500, 3)306 hppa build of alsa-utils 1.0.9a-4 in ubuntu hoary RELEASE (500, 3)
@@ -308,12 +308,12 @@
308This method asserts a valid 'archseries' argument, None or an empty308This method asserts a valid 'archseries' argument, None or an empty
309list will result in a AssertionFailure.309list will result in a AssertionFailure.
310310
311 >>> getUtility(IBuildSet).calculateCandidates(None).count()311 >>> getUtility(IBinaryPackageBuildSet).calculateCandidates(None).count()
312 Traceback (most recent call last):312 Traceback (most recent call last):
313 ...313 ...
314 AssertionError: Given 'archseries' cannot be None/empty.314 AssertionError: Given 'archseries' cannot be None/empty.
315315
316 >>> getUtility(IBuildSet).calculateCandidates([]).count()316 >>> getUtility(IBinaryPackageBuildSet).calculateCandidates([]).count()
317 Traceback (most recent call last):317 Traceback (most recent call last):
318 ...318 ...
319 AssertionError: Given 'archseries' cannot be None/empty.319 AssertionError: Given 'archseries' cannot be None/empty.
320320
=== modified file 'lib/lp/buildmaster/model/builder.py'
--- lib/lp/buildmaster/model/builder.py 2010-04-12 05:52:01 +0000
+++ lib/lp/buildmaster/model/builder.py 2010-04-13 06:59:32 +0000
@@ -55,7 +55,7 @@
55# XXX Michael Nelson 2010-01-13 bug=49133055# XXX Michael Nelson 2010-01-13 bug=491330
56# These dependencies on soyuz will be removed when getBuildRecords()56# These dependencies on soyuz will be removed when getBuildRecords()
57# is moved.57# is moved.
58from lp.soyuz.interfaces.build import IBuildSet58from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
59from lp.soyuz.interfaces.buildrecords import IHasBuildRecords59from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
60from lp.soyuz.model.buildpackagejob import BuildPackageJob60from lp.soyuz.model.buildpackagejob import BuildPackageJob
6161
@@ -428,7 +428,7 @@
428 def getBuildRecords(self, build_state=None, name=None, arch_tag=None,428 def getBuildRecords(self, build_state=None, name=None, arch_tag=None,
429 user=None):429 user=None):
430 """See IHasBuildRecords."""430 """See IHasBuildRecords."""
431 return getUtility(IBuildSet).getBuildsForBuilder(431 return getUtility(IBinaryPackageBuildSet).getBuildsForBuilder(
432 self.id, build_state, name, arch_tag, user)432 self.id, build_state, name, arch_tag, user)
433433
434 def slaveStatus(self):434 def slaveStatus(self):
@@ -695,7 +695,7 @@
695 """See `IBuilderSet`."""695 """See `IBuilderSet`."""
696 # Avoiding circular imports.696 # Avoiding circular imports.
697 from lp.soyuz.model.archive import Archive697 from lp.soyuz.model.archive import Archive
698 from lp.soyuz.model.build import Build698 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
699 from lp.soyuz.model.distroarchseries import (699 from lp.soyuz.model.distroarchseries import (
700 DistroArchSeries)700 DistroArchSeries)
701 from lp.soyuz.model.processor import Processor701 from lp.soyuz.model.processor import Processor
@@ -703,7 +703,7 @@
703 store = Store.of(processor)703 store = Store.of(processor)
704 origin = (704 origin = (
705 Archive,705 Archive,
706 Build,706 BinaryPackageBuild,
707 BuildPackageJob,707 BuildPackageJob,
708 BuildQueue,708 BuildQueue,
709 DistroArchSeries,709 DistroArchSeries,
@@ -712,11 +712,11 @@
712 queue = store.using(*origin).find(712 queue = store.using(*origin).find(
713 BuildQueue,713 BuildQueue,
714 BuildPackageJob.job == BuildQueue.jobID,714 BuildPackageJob.job == BuildQueue.jobID,
715 BuildPackageJob.build == Build.id,715 BuildPackageJob.build == BinaryPackageBuild.id,
716 Build.distroarchseries == DistroArchSeries.id,716 BinaryPackageBuild.distroarchseries == DistroArchSeries.id,
717 Build.archive == Archive.id,717 BinaryPackageBuild.archive == Archive.id,
718 DistroArchSeries.processorfamilyID == Processor.familyID,718 DistroArchSeries.processorfamilyID == Processor.familyID,
719 Build.buildstate == BuildStatus.NEEDSBUILD,719 BinaryPackageBuild.buildstate == BuildStatus.NEEDSBUILD,
720 Archive._enabled == True,720 Archive._enabled == True,
721 Processor.id == processor.id,721 Processor.id == processor.id,
722 Archive.require_virtualized == virtualized,722 Archive.require_virtualized == virtualized,
723723
=== modified file 'lib/lp/buildmaster/tests/test_builder.py'
--- lib/lp/buildmaster/tests/test_builder.py 2010-03-06 04:57:40 +0000
+++ lib/lp/buildmaster/tests/test_builder.py 2010-04-13 06:59:32 +0000
@@ -18,7 +18,7 @@
18from lp.buildmaster.model.buildfarmjobbehavior import IdleBuildBehavior18from lp.buildmaster.model.buildfarmjobbehavior import IdleBuildBehavior
19from lp.buildmaster.model.buildqueue import BuildQueue19from lp.buildmaster.model.buildqueue import BuildQueue
20from lp.soyuz.interfaces.archive import ArchivePurpose20from lp.soyuz.interfaces.archive import ArchivePurpose
21from lp.soyuz.interfaces.build import IBuildSet21from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
22from lp.soyuz.interfaces.publishing import PackagePublishingStatus22from lp.soyuz.interfaces.publishing import PackagePublishingStatus
23from lp.soyuz.model.binarypackagebuildbehavior import (23from lp.soyuz.model.binarypackagebuildbehavior import (
24 BinaryPackageBuildBehavior)24 BinaryPackageBuildBehavior)
@@ -88,7 +88,7 @@
88 # Asking frog to find a candidate should give us the joesppa build.88 # Asking frog to find a candidate should give us the joesppa build.
89 next_job = removeSecurityProxy(89 next_job = removeSecurityProxy(
90 self.frog_builder)._findBuildCandidate()90 self.frog_builder)._findBuildCandidate()
91 build = getUtility(IBuildSet).getByQueueEntry(next_job)91 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
92 self.assertEqual('joesppa', build.archive.name)92 self.assertEqual('joesppa', build.archive.name)
9393
94 # If bob is in a failed state the joesppa build is still94 # If bob is in a failed state the joesppa build is still
@@ -97,7 +97,7 @@
97 self.bob_builder.manual = False97 self.bob_builder.manual = False
98 next_job = removeSecurityProxy(98 next_job = removeSecurityProxy(
99 self.frog_builder)._findBuildCandidate()99 self.frog_builder)._findBuildCandidate()
100 build = getUtility(IBuildSet).getByQueueEntry(next_job)100 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
101 self.assertEqual('joesppa', build.archive.name)101 self.assertEqual('joesppa', build.archive.name)
102102
103103
@@ -178,7 +178,7 @@
178 # A PPA cannot start a build if it would use 80% or more of the178 # A PPA cannot start a build if it would use 80% or more of the
179 # builders.179 # builders.
180 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()180 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()
181 build = getUtility(IBuildSet).getByQueueEntry(next_job)181 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
182 self.failIfEqual('joesppa', build.archive.name)182 self.failIfEqual('joesppa', build.archive.name)
183183
184 def test_findBuildCandidate_first_build_finished(self):184 def test_findBuildCandidate_first_build_finished(self):
@@ -186,7 +186,7 @@
186 # will be the next build candidate.186 # will be the next build candidate.
187 self.joe_builds[0].buildstate = BuildStatus.FAILEDTOBUILD187 self.joe_builds[0].buildstate = BuildStatus.FAILEDTOBUILD
188 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()188 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()
189 build = getUtility(IBuildSet).getByQueueEntry(next_job)189 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
190 self.failUnlessEqual('joesppa', build.archive.name)190 self.failUnlessEqual('joesppa', build.archive.name)
191191
192192
@@ -198,7 +198,7 @@
198 # If a ppa is private it will be able to have parallel builds198 # If a ppa is private it will be able to have parallel builds
199 # for the one architecture.199 # for the one architecture.
200 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()200 next_job = removeSecurityProxy(self.builder4)._findBuildCandidate()
201 build = getUtility(IBuildSet).getByQueueEntry(next_job)201 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
202 self.failUnlessEqual('joesppa', build.archive.name)202 self.failUnlessEqual('joesppa', build.archive.name)
203203
204204
@@ -225,7 +225,7 @@
225225
226 next_job = removeSecurityProxy(226 next_job = removeSecurityProxy(
227 self.frog_builder)._findBuildCandidate()227 self.frog_builder)._findBuildCandidate()
228 build = getUtility(IBuildSet).getByQueueEntry(next_job)228 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
229 self.failUnlessEqual('primary', build.archive.name)229 self.failUnlessEqual('primary', build.archive.name)
230 self.failUnlessEqual('gedit', build.sourcepackagerelease.name)230 self.failUnlessEqual('gedit', build.sourcepackagerelease.name)
231231
@@ -235,7 +235,7 @@
235 build.builder = self.frog_builder235 build.builder = self.frog_builder
236 next_job = removeSecurityProxy(236 next_job = removeSecurityProxy(
237 self.frog_builder)._findBuildCandidate()237 self.frog_builder)._findBuildCandidate()
238 build = getUtility(IBuildSet).getByQueueEntry(next_job)238 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(next_job)
239 self.failUnlessEqual('primary', build.archive.name)239 self.failUnlessEqual('primary', build.archive.name)
240 self.failUnlessEqual('firefox', build.sourcepackagerelease.name)240 self.failUnlessEqual('firefox', build.sourcepackagerelease.name)
241241
242242
=== modified file 'lib/lp/buildmaster/tests/test_buildqueue.py'
--- lib/lp/buildmaster/tests/test_buildqueue.py 2010-03-19 13:58:27 +0000
+++ lib/lp/buildmaster/tests/test_buildqueue.py 2010-04-13 06:59:32 +0000
@@ -26,7 +26,7 @@
26from lp.soyuz.interfaces.archive import ArchivePurpose26from lp.soyuz.interfaces.archive import ArchivePurpose
27from lp.soyuz.model.processor import ProcessorFamilySet27from lp.soyuz.model.processor import ProcessorFamilySet
28from lp.soyuz.interfaces.publishing import PackagePublishingStatus28from lp.soyuz.interfaces.publishing import PackagePublishingStatus
29from lp.soyuz.model.build import Build29from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
30from lp.soyuz.tests.test_publishing import SoyuzTestPublisher30from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
31from lp.testing import TestCaseWithFactory31from lp.testing import TestCaseWithFactory
32from lp.testing.fakemethod import FakeMethod32from lp.testing.fakemethod import FakeMethod
@@ -341,7 +341,7 @@
341341
342 # First mark all builds in the sample data as already built.342 # First mark all builds in the sample data as already built.
343 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)343 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
344 sample_data = store.find(Build)344 sample_data = store.find(BinaryPackageBuild)
345 for build in sample_data:345 for build in sample_data:
346 build.buildstate = BuildStatus.FULLYBUILT346 build.buildstate = BuildStatus.FULLYBUILT
347 store.flush()347 store.flush()
@@ -637,7 +637,7 @@
637637
638 # First mark all builds in the sample data as already built.638 # First mark all builds in the sample data as already built.
639 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)639 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
640 sample_data = store.find(Build)640 sample_data = store.find(BinaryPackageBuild)
641 for build in sample_data:641 for build in sample_data:
642 build.buildstate = BuildStatus.FULLYBUILT642 build.buildstate = BuildStatus.FULLYBUILT
643 store.flush()643 store.flush()
@@ -843,7 +843,7 @@
843843
844 # First mark all builds in the sample data as already built.844 # First mark all builds in the sample data as already built.
845 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)845 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
846 sample_data = store.find(Build)846 sample_data = store.find(BinaryPackageBuild)
847 for build in sample_data:847 for build in sample_data:
848 build.buildstate = BuildStatus.FULLYBUILT848 build.buildstate = BuildStatus.FULLYBUILT
849 store.flush()849 store.flush()
@@ -922,7 +922,7 @@
922922
923 # First mark all builds in the sample data as already built.923 # First mark all builds in the sample data as already built.
924 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)924 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
925 sample_data = store.find(Build)925 sample_data = store.find(BinaryPackageBuild)
926 for build in sample_data:926 for build in sample_data:
927 build.buildstate = BuildStatus.FULLYBUILT927 build.buildstate = BuildStatus.FULLYBUILT
928 store.flush()928 store.flush()
929929
=== modified file 'lib/lp/buildmaster/tests/test_manager.py'
--- lib/lp/buildmaster/tests/test_manager.py 2010-04-12 05:52:01 +0000
+++ lib/lp/buildmaster/tests/test_manager.py 2010-04-13 06:59:32 +0000
@@ -7,7 +7,7 @@
7import transaction7import transaction
8import unittest8import unittest
99
10from twisted.internet import defer, task, reactor10from twisted.internet import defer
11from twisted.internet.error import (11from twisted.internet.error import (
12 ConnectionClosed, ProcessTerminated, TimeoutError)12 ConnectionClosed, ProcessTerminated, TimeoutError)
13from twisted.python.failure import Failure13from twisted.python.failure import Failure
@@ -30,7 +30,7 @@
30 ResetDispatchResult, buildd_success_result_map)30 ResetDispatchResult, buildd_success_result_map)
31from lp.buildmaster.tests.harness import BuilddManagerTestSetup31from lp.buildmaster.tests.harness import BuilddManagerTestSetup
32from lp.registry.interfaces.distribution import IDistributionSet32from lp.registry.interfaces.distribution import IDistributionSet
33from lp.soyuz.interfaces.build import IBuildSet33from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
34from lp.soyuz.tests.soyuzbuilddhelpers import BuildingSlave34from lp.soyuz.tests.soyuzbuilddhelpers import BuildingSlave
35from lp.soyuz.tests.test_publishing import SoyuzTestPublisher35from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
3636
@@ -509,7 +509,7 @@
509 self.assertEqual(job.builder, builder)509 self.assertEqual(job.builder, builder)
510 self.assertTrue(job.date_started is not None)510 self.assertTrue(job.date_started is not None)
511 self.assertEqual(job.job.status, JobStatus.RUNNING)511 self.assertEqual(job.job.status, JobStatus.RUNNING)
512 build = getUtility(IBuildSet).getByQueueEntry(job)512 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
513 self.assertEqual(build.buildstate, BuildStatus.BUILDING)513 self.assertEqual(build.buildstate, BuildStatus.BUILDING)
514 self.assertEqual(job.logtail, logtail)514 self.assertEqual(job.logtail, logtail)
515515
@@ -633,7 +633,7 @@
633 job = getUtility(IBuildQueueSet).get(job.id)633 job = getUtility(IBuildQueueSet).get(job.id)
634 self.assertTrue(job.builder is None)634 self.assertTrue(job.builder is None)
635 self.assertTrue(job.date_started is None)635 self.assertTrue(job.date_started is None)
636 build = getUtility(IBuildSet).getByQueueEntry(job)636 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
637 self.assertEqual(build.buildstate, BuildStatus.NEEDSBUILD)637 self.assertEqual(build.buildstate, BuildStatus.NEEDSBUILD)
638638
639 def testScanRescuesJobFromBrokenBuilder(self):639 def testScanRescuesJobFromBrokenBuilder(self):
@@ -717,7 +717,7 @@
717 builder.builderok = True717 builder.builderok = True
718718
719 job = builder.currentjob719 job = builder.currentjob
720 build = getUtility(IBuildSet).getByQueueEntry(job)720 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
721 self.assertEqual(721 self.assertEqual(
722 'i386 build of mozilla-firefox 0.9 in ubuntu hoary RELEASE',722 'i386 build of mozilla-firefox 0.9 in ubuntu hoary RELEASE',
723 build.title)723 build.title)
@@ -734,7 +734,7 @@
734 def assertJobIsClean(self, job_id):734 def assertJobIsClean(self, job_id):
735 """Re-fetch the `IBuildQueue` record and check if it's clean."""735 """Re-fetch the `IBuildQueue` record and check if it's clean."""
736 job = getUtility(IBuildQueueSet).get(job_id)736 job = getUtility(IBuildQueueSet).get(job_id)
737 build = getUtility(IBuildSet).getByQueueEntry(job)737 build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
738 self.assertEqual('NEEDSBUILD', build.buildstate.name)738 self.assertEqual('NEEDSBUILD', build.buildstate.name)
739 self.assertEqual(None, job.builder)739 self.assertEqual(None, job.builder)
740 self.assertEqual(None, job.date_started)740 self.assertEqual(None, job.date_started)
741741
=== modified file 'lib/lp/registry/browser/person.py'
--- lib/lp/registry/browser/person.py 2010-04-06 20:17:04 +0000
+++ lib/lp/registry/browser/person.py 2010-04-13 06:59:32 +0000
@@ -173,7 +173,7 @@
173 IBranchNamespaceSet, InvalidNamespace)173 IBranchNamespaceSet, InvalidNamespace)
174from lp.bugs.interfaces.bugtask import IBugTaskSet174from lp.bugs.interfaces.bugtask import IBugTaskSet
175from lp.buildmaster.interfaces.buildbase import BuildStatus175from lp.buildmaster.interfaces.buildbase import BuildStatus
176from lp.soyuz.interfaces.build import IBuildSet176from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
177from canonical.launchpad.interfaces.launchpad import (177from canonical.launchpad.interfaces.launchpad import (
178 ILaunchpadCelebrities, INotificationRecipientSet, UnknownRecipientError)178 ILaunchpadCelebrities, INotificationRecipientSet, UnknownRecipientError)
179from canonical.launchpad.interfaces.message import (179from canonical.launchpad.interfaces.message import (
@@ -5189,7 +5189,7 @@
5189 the source package release.5189 the source package release.
5190 """5190 """
5191 # Calculate all the failed builds with one query.5191 # Calculate all the failed builds with one query.
5192 build_set = getUtility(IBuildSet)5192 build_set = getUtility(IBinaryPackageBuildSet)
5193 package_release_ids = [5193 package_release_ids = [
5194 package_release.id for package_release in package_releases]5194 package_release.id for package_release in package_releases]
5195 all_builds = build_set.getBuildsBySourcePackageRelease(5195 all_builds = build_set.getBuildsBySourcePackageRelease(
51965196
=== modified file 'lib/lp/registry/model/distribution.py'
--- lib/lp/registry/model/distribution.py 2010-04-10 09:24:41 +0000
+++ lib/lp/registry/model/distribution.py 2010-04-13 06:59:32 +0000
@@ -39,7 +39,7 @@
39from lp.bugs.model.bugtarget import (39from lp.bugs.model.bugtarget import (
40 BugTargetBase, HasBugHeatMixin, OfficialBugTagTargetMixin)40 BugTargetBase, HasBugHeatMixin, OfficialBugTagTargetMixin)
41from lp.bugs.model.bugtask import BugTask41from lp.bugs.model.bugtask import BugTask
42from lp.soyuz.model.build import Build42from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
43from lp.registry.model.distributionmirror import DistributionMirror43from lp.registry.model.distributionmirror import DistributionMirror
44from lp.registry.model.distributionsourcepackage import (44from lp.registry.model.distributionsourcepackage import (
45 DistributionSourcePackage)45 DistributionSourcePackage)
@@ -81,7 +81,7 @@
81from lp.bugs.interfaces.bugtarget import IHasBugHeat81from lp.bugs.interfaces.bugtarget import IHasBugHeat
82from lp.bugs.interfaces.bugtask import (82from lp.bugs.interfaces.bugtask import (
83 BugTaskStatus, UNRESOLVED_BUGTASK_STATUSES)83 BugTaskStatus, UNRESOLVED_BUGTASK_STATUSES)
84from lp.soyuz.interfaces.build import IBuildSet84from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
85from lp.soyuz.interfaces.buildrecords import IHasBuildRecords85from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
86from lp.registry.interfaces.distribution import (86from lp.registry.interfaces.distribution import (
87 IBaseDistribution, IDerivativeDistribution, IDistribution,87 IBaseDistribution, IDerivativeDistribution, IDistribution,
@@ -799,8 +799,9 @@
799 arch_ids = DistroArchSeriesSet().getIdsForArchitectures(799 arch_ids = DistroArchSeriesSet().getIdsForArchitectures(
800 self.architectures, arch_tag)800 self.architectures, arch_tag)
801801
802 # Use the facility provided by IBuildSet to retrieve the records.802 # Use the facility provided by IBinaryPackageBuildSet to
803 return getUtility(IBuildSet).getBuildsByArchIds(803 # retrieve the records.
804 return getUtility(IBinaryPackageBuildSet).getBuildsByArchIds(
804 arch_ids, build_state, name, pocket)805 arch_ids, build_state, name, pocket)
805806
806 def getSourcePackageCaches(self, archive=None):807 def getSourcePackageCaches(self, archive=None):
@@ -1058,9 +1059,10 @@
1058 DistroSeries.status != SeriesStatus.OBSOLETE,1059 DistroSeries.status != SeriesStatus.OBSOLETE,
1059 BinaryPackageRelease.binarypackagename == BinaryPackageName.id,1060 BinaryPackageRelease.binarypackagename == BinaryPackageName.id,
1060 DistroArchSeries.distroseries == DistroSeries.id,1061 DistroArchSeries.distroseries == DistroSeries.id,
1061 Build.distroarchseries == DistroArchSeries.id,1062 BinaryPackageBuild.distroarchseries == DistroArchSeries.id,
1062 BinaryPackageRelease.build == Build.id,1063 BinaryPackageRelease.build == BinaryPackageBuild.id,
1063 Build.sourcepackagerelease == SourcePackageRelease.id,1064 (BinaryPackageBuild.sourcepackagerelease ==
1065 SourcePackageRelease.id),
1064 SourcePackageRelease.sourcepackagename == SourcePackageName.id,1066 SourcePackageRelease.sourcepackagename == SourcePackageName.id,
1065 DistributionSourcePackageCache.sourcepackagename ==1067 DistributionSourcePackageCache.sourcepackagename ==
1066 SourcePackageName.id,1068 SourcePackageName.id,
10671069
=== modified file 'lib/lp/registry/model/distroseries.py'
--- lib/lp/registry/model/distroseries.py 2010-04-08 18:40:18 +0000
+++ lib/lp/registry/model/distroseries.py 2010-04-13 06:59:32 +0000
@@ -90,7 +90,7 @@
90from canonical.launchpad.helpers import shortlist90from canonical.launchpad.helpers import shortlist
91from lp.soyuz.interfaces.archive import (91from lp.soyuz.interfaces.archive import (
92 ALLOW_RELEASE_BUILDS, ArchivePurpose, IArchiveSet, MAIN_ARCHIVE_PURPOSES)92 ALLOW_RELEASE_BUILDS, ArchivePurpose, IArchiveSet, MAIN_ARCHIVE_PURPOSES)
93from lp.soyuz.interfaces.build import IBuildSet93from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
94from lp.soyuz.interfaces.buildrecords import IHasBuildRecords94from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
95from lp.soyuz.interfaces.binarypackagename import (95from lp.soyuz.interfaces.binarypackagename import (
96 IBinaryPackageName)96 IBinaryPackageName)
@@ -1110,8 +1110,9 @@
1110 arch_ids = DistroArchSeriesSet().getIdsForArchitectures(1110 arch_ids = DistroArchSeriesSet().getIdsForArchitectures(
1111 self.architectures, arch_tag)1111 self.architectures, arch_tag)
11121112
1113 # Use the facility provided by IBuildSet to retrieve the records.1113 # Use the facility provided by IBinaryPackageBuildSet to
1114 return getUtility(IBuildSet).getBuildsByArchIds(1114 # retrieve the records.
1115 return getUtility(IBinaryPackageBuildSet).getBuildsByArchIds(
1115 arch_ids, build_state, name, pocket)1116 arch_ids, build_state, name, pocket)
11161117
1117 def createUploadedSourcePackageRelease(1118 def createUploadedSourcePackageRelease(
11181119
=== modified file 'lib/lp/registry/model/sourcepackage.py'
--- lib/lp/registry/model/sourcepackage.py 2010-03-19 11:13:00 +0000
+++ lib/lp/registry/model/sourcepackage.py 2010-04-13 06:59:32 +0000
@@ -29,7 +29,8 @@
29from lp.bugs.model.bugtarget import BugTargetBase, HasBugHeatMixin29from lp.bugs.model.bugtarget import BugTargetBase, HasBugHeatMixin
30from lp.bugs.model.bugtask import BugTask30from lp.bugs.model.bugtask import BugTask
31from lp.soyuz.interfaces.archive import IArchiveSet, ArchivePurpose31from lp.soyuz.interfaces.archive import IArchiveSet, ArchivePurpose
32from lp.soyuz.model.build import Build, BuildSet32from lp.soyuz.model.binarypackagebuild import (
33 BinaryPackageBuild, BinaryPackageBuildSet)
33from lp.soyuz.model.distributionsourcepackagerelease import (34from lp.soyuz.model.distributionsourcepackagerelease import (
34 DistributionSourcePackageRelease)35 DistributionSourcePackageRelease)
35from lp.soyuz.model.distroseriessourcepackagerelease import (36from lp.soyuz.model.distroseriessourcepackagerelease import (
@@ -530,7 +531,7 @@
530 # We re-use the optional-parameter handling provided by BuildSet531 # We re-use the optional-parameter handling provided by BuildSet
531 # here, but pass None for the name argument as we've already532 # here, but pass None for the name argument as we've already
532 # matched on exact source package name.533 # matched on exact source package name.
533 BuildSet().handleOptionalParamsForBuildQueries(534 BinaryPackageBuildSet().handleOptionalParamsForBuildQueries(
534 condition_clauses, clauseTables, build_state, name=None,535 condition_clauses, clauseTables, build_state, name=None,
535 pocket=pocket, arch_tag=arch_tag)536 pocket=pocket, arch_tag=arch_tag)
536537
@@ -561,7 +562,7 @@
561562
562 # End of duplication (see XXX cprov 2006-09-25 above).563 # End of duplication (see XXX cprov 2006-09-25 above).
563564
564 return Build.select(' AND '.join(condition_clauses),565 return BinaryPackageBuild.select(' AND '.join(condition_clauses),
565 clauseTables=clauseTables, orderBy=orderBy)566 clauseTables=clauseTables, orderBy=orderBy)
566567
567 @property568 @property
568569
=== modified file 'lib/lp/soyuz/browser/archive.py'
--- lib/lp/soyuz/browser/archive.py 2010-03-12 06:23:04 +0000
+++ lib/lp/soyuz/browser/archive.py 2010-04-13 06:59:32 +0000
@@ -64,7 +64,8 @@
64 ArchivePermissionType, IArchivePermissionSet)64 ArchivePermissionType, IArchivePermissionSet)
65from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet65from lp.soyuz.interfaces.archivesubscriber import IArchiveSubscriberSet
66from lp.soyuz.interfaces.binarypackagename import IBinaryPackageNameSet66from lp.soyuz.interfaces.binarypackagename import IBinaryPackageNameSet
67from lp.soyuz.interfaces.build import BuildSetStatus, IBuildSet67from lp.soyuz.interfaces.binarypackagebuild import (
68 BuildSetStatus, IBinaryPackageBuildSet)
68from lp.soyuz.interfaces.buildrecords import IHasBuildRecords69from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
69from lp.soyuz.interfaces.component import IComponentSet70from lp.soyuz.interfaces.component import IComponentSet
70from lp.registry.interfaces.series import SeriesStatus71from lp.registry.interfaces.series import SeriesStatus
@@ -192,7 +193,7 @@
192 except ValueError:193 except ValueError:
193 return None194 return None
194 try:195 try:
195 return getUtility(IBuildSet).getByBuildID(build_id)196 return getUtility(IBinaryPackageBuildSet).getByBuildID(build_id)
196 except NotFoundError:197 except NotFoundError:
197 return None198 return None
198199
199200
=== modified file 'lib/lp/soyuz/browser/build.py'
--- lib/lp/soyuz/browser/build.py 2010-03-24 07:17:20 +0000
+++ lib/lp/soyuz/browser/build.py 2010-04-13 06:59:32 +0000
@@ -34,14 +34,15 @@
34from canonical.lazr.utils import safe_hasattr34from canonical.lazr.utils import safe_hasattr
35from lp.buildmaster.interfaces.buildbase import BuildStatus35from lp.buildmaster.interfaces.buildbase import BuildStatus
36from lp.services.job.interfaces.job import JobStatus36from lp.services.job.interfaces.job import JobStatus
37from lp.soyuz.interfaces.build import IBuild, IBuildRescoreForm, IBuildSet37from lp.soyuz.interfaces.binarypackagebuild import (
38 IBinaryPackageBuild, IBuildRescoreForm, IBinaryPackageBuildSet)
38from lp.soyuz.interfaces.buildrecords import IHasBuildRecords39from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
39from canonical.launchpad.interfaces.launchpad import UnexpectedFormData40from canonical.launchpad.interfaces.launchpad import UnexpectedFormData
40from lp.soyuz.interfaces.queue import PackageUploadStatus41from lp.soyuz.interfaces.queue import PackageUploadStatus
4142
4243
43class BuildUrl:44class BuildUrl:
44 """Dynamic URL declaration for IBuild.45 """Dynamic URL declaration for IBinaryPackageBuild.
4546
46 When dealing with distribution builds we want to present them47 When dealing with distribution builds we want to present them
47 under IDistributionSourcePackageRelease url:48 under IDistributionSourcePackageRelease url:
@@ -74,19 +75,20 @@
7475
7576
76class BuildNavigation(GetitemNavigation, FileNavigationMixin):77class BuildNavigation(GetitemNavigation, FileNavigationMixin):
77 usedfor = IBuild78 usedfor = IBinaryPackageBuild
7879
7980
80class BuildFacets(StandardLaunchpadFacets):81class BuildFacets(StandardLaunchpadFacets):
81 """The links that will appear in the facet menu for an IBuild."""82 """The links that will appear in the facet menu for an
83 IBinaryPackageBuild."""
82 enable_only = ['overview']84 enable_only = ['overview']
8385
84 usedfor = IBuild86 usedfor = IBinaryPackageBuild
8587
8688
87class BuildContextMenu(ContextMenu):89class BuildContextMenu(ContextMenu):
88 """Overview menu for build records """90 """Overview menu for build records """
89 usedfor = IBuild91 usedfor = IBinaryPackageBuild
9092
91 links = ['ppa', 'records', 'retry', 'rescore']93 links = ['ppa', 'records', 'retry', 'rescore']
9294
@@ -123,7 +125,7 @@
123125
124126
125class BuildBreadcrumb(Breadcrumb):127class BuildBreadcrumb(Breadcrumb):
126 """Builds a breadcrumb for an `IBuild`."""128 """Builds a breadcrumb for an `IBinaryPackageBuild`."""
127129
128 @property130 @property
129 def text(self):131 def text(self):
@@ -140,8 +142,8 @@
140142
141143
142class BuildView(LaunchpadView):144class BuildView(LaunchpadView):
143 """Auxiliary view class for IBuild"""145 """Auxiliary view class for IBinaryPackageBuild"""
144 __used_for__ = IBuild146 __used_for__ = IBinaryPackageBuild
145147
146 @property148 @property
147 def label(self):149 def label(self):
@@ -230,9 +232,9 @@
230232
231233
232class BuildRetryView(BuildView):234class BuildRetryView(BuildView):
233 """View class for retrying `IBuild`s"""235 """View class for retrying `IBinaryPackageBuild`s"""
234236
235 __used_for__ = IBuild237 __used_for__ = IBinaryPackageBuild
236238
237 @property239 @property
238 def label(self):240 def label(self):
@@ -293,8 +295,8 @@
293295
294296
295class CompleteBuild:297class CompleteBuild:
296 """Super object to store related IBuild & IBuildQueue."""298 """Super object to store related IBinaryPackageBuild & IBuildQueue."""
297 delegates(IBuild)299 delegates(IBinaryPackageBuild)
298 def __init__(self, build, buildqueue_record):300 def __init__(self, build, buildqueue_record):
299 self.context = build301 self.context = build
300 self._buildqueue_record = buildqueue_record302 self._buildqueue_record = buildqueue_record
@@ -320,7 +322,8 @@
320322
321 prefetched_data = dict()323 prefetched_data = dict()
322 build_ids = [build.id for build in builds]324 build_ids = [build.id for build in builds]
323 results = getUtility(IBuildSet).getQueueEntriesForBuildIDs(build_ids)325 results = getUtility(IBinaryPackageBuildSet).getQueueEntriesForBuildIDs(
326 build_ids)
324 for (buildqueue, _builder, build_job) in results:327 for (buildqueue, _builder, build_job) in results:
325 # Get the build's id, 'buildqueue', 'sourcepackagerelease' and328 # Get the build's id, 'buildqueue', 'sourcepackagerelease' and
326 # 'buildlog' (from the result set) respectively.329 # 'buildlog' (from the result set) respectively.
327330
=== modified file 'lib/lp/soyuz/browser/builder.py'
--- lib/lp/soyuz/browser/builder.py 2010-03-16 05:08:47 +0000
+++ lib/lp/soyuz/browser/builder.py 2010-04-13 06:59:32 +0000
@@ -29,7 +29,7 @@
29from canonical.lazr.utils import smartquote29from canonical.lazr.utils import smartquote
30from canonical.launchpad import _30from canonical.launchpad import _
31from lp.soyuz.browser.build import BuildRecordsView31from lp.soyuz.browser.build import BuildRecordsView
32from lp.soyuz.interfaces.build import IBuildSet32from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
33from lp.buildmaster.interfaces.builder import IBuilderSet, IBuilder33from lp.buildmaster.interfaces.builder import IBuilderSet, IBuilder
34from canonical.launchpad.interfaces.launchpad import NotFoundError34from canonical.launchpad.interfaces.launchpad import NotFoundError
35from canonical.launchpad.webapp import (35from canonical.launchpad.webapp import (
@@ -52,7 +52,7 @@
52 except ValueError:52 except ValueError:
53 return None53 return None
54 try:54 try:
55 build = getUtility(IBuildSet).getByBuildID(build_id)55 build = getUtility(IBinaryPackageBuildSet).getByBuildID(build_id)
56 except NotFoundError:56 except NotFoundError:
57 return None57 return None
58 else:58 else:
5959
=== modified file 'lib/lp/soyuz/browser/configure.zcml'
--- lib/lp/soyuz/browser/configure.zcml 2010-03-22 07:10:45 +0000
+++ lib/lp/soyuz/browser/configure.zcml 2010-04-13 06:59:32 +0000
@@ -335,17 +335,17 @@
335 attribute_to_parent="archive"335 attribute_to_parent="archive"
336 urldata="lp.soyuz.browser.archivepermission.ArchivePermissionURL"/>336 urldata="lp.soyuz.browser.archivepermission.ArchivePermissionURL"/>
337 <browser:defaultView337 <browser:defaultView
338 for="lp.soyuz.interfaces.build.IBuild"338 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
339 name="+index"/>339 name="+index"/>
340 <browser:url340 <browser:url
341 for="lp.soyuz.interfaces.build.IBuild"341 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
342 urldata="lp.soyuz.browser.build.BuildUrl"/>342 urldata="lp.soyuz.browser.build.BuildUrl"/>
343 <browser:navigation343 <browser:navigation
344 module="lp.soyuz.browser.build"344 module="lp.soyuz.browser.build"
345 classes="345 classes="
346 BuildNavigation"/>346 BuildNavigation"/>
347 <browser:pages347 <browser:pages
348 for="lp.soyuz.interfaces.build.IBuild"348 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
349 class="lp.soyuz.browser.build.BuildView"349 class="lp.soyuz.browser.build.BuildView"
350 permission="launchpad.View">350 permission="launchpad.View">
351 <browser:page351 <browser:page
@@ -354,7 +354,7 @@
354 template="../templates/build-index.pt"/>354 template="../templates/build-index.pt"/>
355 </browser:pages>355 </browser:pages>
356 <browser:pages356 <browser:pages
357 for="lp.soyuz.interfaces.build.IBuild"357 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
358 class="lp.soyuz.browser.build.BuildRetryView"358 class="lp.soyuz.browser.build.BuildRetryView"
359 permission="launchpad.Edit">359 permission="launchpad.Edit">
360 <browser:page360 <browser:page
@@ -363,7 +363,7 @@
363 template="../templates/build-retry.pt"/>363 template="../templates/build-retry.pt"/>
364 </browser:pages>364 </browser:pages>
365 <browser:pages365 <browser:pages
366 for="lp.soyuz.interfaces.build.IBuild"366 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
367 class="lp.soyuz.browser.build.BuildRescoringView"367 class="lp.soyuz.browser.build.BuildRescoringView"
368 permission="launchpad.Admin">368 permission="launchpad.Admin">
369 <browser:page369 <browser:page
370370
=== modified file 'lib/lp/soyuz/browser/distributionsourcepackagerelease.py'
--- lib/lp/soyuz/browser/distributionsourcepackagerelease.py 2010-03-08 13:07:07 +0000
+++ lib/lp/soyuz/browser/distributionsourcepackagerelease.py 2010-04-13 06:59:32 +0000
@@ -21,7 +21,7 @@
21from canonical.launchpad.webapp.breadcrumb import Breadcrumb21from canonical.launchpad.webapp.breadcrumb import Breadcrumb
22from canonical.launchpad.webapp.interfaces import NotFoundError22from canonical.launchpad.webapp.interfaces import NotFoundError
23from lp.archivepublisher.debversion import Version23from lp.archivepublisher.debversion import Version
24from lp.soyuz.interfaces.build import IBuildSet24from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
25from lp.soyuz.interfaces.distributionsourcepackagerelease import (25from lp.soyuz.interfaces.distributionsourcepackagerelease import (
26 IDistributionSourcePackageRelease)26 IDistributionSourcePackageRelease)
27from lp.soyuz.interfaces.publishing import PackagePublishingStatus27from lp.soyuz.interfaces.publishing import PackagePublishingStatus
@@ -47,7 +47,7 @@
47 except ValueError:47 except ValueError:
48 return None48 return None
49 try:49 try:
50 return getUtility(IBuildSet).getByBuildID(build_id)50 return getUtility(IBinaryPackageBuildSet).getByBuildID(build_id)
51 except NotFoundError:51 except NotFoundError:
52 return None52 return None
5353
@@ -119,7 +119,7 @@
119 :return: a `list` of dictionaries containing 'distroseries' and its119 :return: a `list` of dictionaries containing 'distroseries' and its
120 grouped 'builds' ordered by descending distroseries versions.120 grouped 'builds' ordered by descending distroseries versions.
121 """121 """
122 # Build a local list of `IBuilds` ordered by ascending122 # Build a local list of `IBinaryPackageBuilds` ordered by ascending
123 # 'architecture_tag'.123 # 'architecture_tag'.
124 cached_builds = sorted(124 cached_builds = sorted(
125 self.context.builds, key=operator.attrgetter('arch_tag'))125 self.context.builds, key=operator.attrgetter('arch_tag'))
126126
=== modified file 'lib/lp/soyuz/browser/publishing.py'
--- lib/lp/soyuz/browser/publishing.py 2009-06-25 04:06:00 +0000
+++ lib/lp/soyuz/browser/publishing.py 2010-04-13 06:59:32 +0000
@@ -18,7 +18,7 @@
1818
19from canonical.cachedproperty import cachedproperty19from canonical.cachedproperty import cachedproperty
20from canonical.launchpad.browser.librarian import ProxiedLibraryFileAlias20from canonical.launchpad.browser.librarian import ProxiedLibraryFileAlias
21from lp.soyuz.interfaces.build import BuildSetStatus21from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
22from lp.soyuz.interfaces.packagediff import IPackageDiff22from lp.soyuz.interfaces.packagediff import IPackageDiff
23from lp.soyuz.interfaces.publishing import (23from lp.soyuz.interfaces.publishing import (
24 PackagePublishingStatus, IBinaryPackagePublishingHistory,24 PackagePublishingStatus, IBinaryPackagePublishingHistory,
2525
=== modified file 'lib/lp/soyuz/browser/tests/archive-views.txt'
--- lib/lp/soyuz/browser/tests/archive-views.txt 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/browser/tests/archive-views.txt 2010-04-13 06:59:32 +0000
@@ -356,13 +356,15 @@
356Let's set some builds appropriately to see the results.356Let's set some builds appropriately to see the results.
357357
358 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus358 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus
359 >>> from lp.soyuz.interfaces.build import IBuildSet359 >>> from lp.soyuz.interfaces.binarypackagebuild import (
360 ... IBinaryPackageBuildSet)
360 >>> warty_hppa = getUtility(IDistributionSet)['ubuntu']['warty']['hppa']361 >>> warty_hppa = getUtility(IDistributionSet)['ubuntu']['warty']['hppa']
361 >>> source = view.filtered_sources[0]362 >>> source = view.filtered_sources[0]
362 >>> ignore = source.sourcepackagerelease.createBuild(363 >>> ignore = source.sourcepackagerelease.createBuild(
363 ... distroarchseries=warty_hppa, archive=view.context,364 ... distroarchseries=warty_hppa, archive=view.context,
364 ... pocket=source.pocket)365 ... pocket=source.pocket)
365 >>> builds = getUtility(IBuildSet).getBuildsForArchive(view.context)366 >>> builds = getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
367 ... view.context)
366 >>> for build in builds:368 >>> for build in builds:
367 ... print build.title369 ... print build.title
368 hppa build of cdrkit 1.0 in ubuntu warty RELEASE370 hppa build of cdrkit 1.0 in ubuntu warty RELEASE
369371
=== modified file 'lib/lp/soyuz/browser/tests/builder-views.txt'
--- lib/lp/soyuz/browser/tests/builder-views.txt 2010-03-10 12:50:18 +0000
+++ lib/lp/soyuz/browser/tests/builder-views.txt 2010-04-13 06:59:32 +0000
@@ -2,7 +2,8 @@
22
3 >>> from zope.component import getMultiAdapter, getUtility3 >>> from zope.component import getMultiAdapter, getUtility
4 >>> from lp.buildmaster.interfaces.builder import IBuilderSet4 >>> from lp.buildmaster.interfaces.builder import IBuilderSet
5 >>> from lp.soyuz.interfaces.build import IBuildSet5 >>> from lp.soyuz.interfaces.binarypackagebuild import (
6 ... IBinaryPackageBuildSet)
6 >>> from canonical.launchpad.webapp.servers import LaunchpadTestRequest7 >>> from canonical.launchpad.webapp.servers import LaunchpadTestRequest
78
8 >>> builder = getUtility(IBuilderSet).get(1)9 >>> builder = getUtility(IBuilderSet).get(1)
@@ -176,7 +177,7 @@
176 >>> print frog.builderok177 >>> print frog.builderok
177 True178 True
178179
179 >>> build_set = getUtility(IBuildSet)180 >>> build_set = getUtility(IBinaryPackageBuildSet)
180 >>> build = build_set.getByQueueEntry(frog.currentjob)181 >>> build = build_set.getByQueueEntry(frog.currentjob)
181 >>> print build.title182 >>> print build.title
182 i386 build of privacy-test 666 in ubuntutest breezy-autotest RELEASE183 i386 build of privacy-test 666 in ubuntutest breezy-autotest RELEASE
183184
=== modified file 'lib/lp/soyuz/configure.zcml'
--- lib/lp/soyuz/configure.zcml 2010-03-24 17:07:08 +0000
+++ lib/lp/soyuz/configure.zcml 2010-04-13 06:59:32 +0000
@@ -406,7 +406,7 @@
406 <require406 <require
407 permission="launchpad.Commercial"407 permission="launchpad.Commercial"
408 set_attributes="authorized_size buildd_secret arm_builds_allowed408 set_attributes="authorized_size buildd_secret arm_builds_allowed
409 external_dependencies private 409 external_dependencies private
410 require_virtualized relative_build_score "/>410 require_virtualized relative_build_score "/>
411 <require411 <require
412 permission="launchpad.Admin"412 permission="launchpad.Admin"
@@ -487,19 +487,19 @@
487 deletePackagesetUploader"/>487 deletePackagesetUploader"/>
488 </securedutility>488 </securedutility>
489489
490 <!-- Build -->490 <!-- BinaryPackageBuild -->
491491
492 <class492 <class
493 class="canonical.launchpad.database.Build">493 class="lp.soyuz.model.binarypackagebuild.BinaryPackageBuild">
494 <require494 <require
495 permission="launchpad.View"495 permission="launchpad.View"
496 interface="lp.soyuz.interfaces.build.IBuildView"/>496 interface="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuildView"/>
497 <require497 <require
498 permission="launchpad.Edit"498 permission="launchpad.Edit"
499 interface="lp.soyuz.interfaces.build.IBuildEdit"/>499 interface="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuildEdit"/>
500 <require500 <require
501 permission="launchpad.Admin"501 permission="launchpad.Admin"
502 interface="lp.soyuz.interfaces.build.IBuildAdmin"/>502 interface="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuildAdmin"/>
503503
504 <!-- XXX cprov 2005-10-27504 <!-- XXX cprov 2005-10-27
505505
@@ -507,21 +507,22 @@
507507
508 <require508 <require
509 permission="launchpad.Edit"509 permission="launchpad.Edit"
510 set_attributes="buildlog datebuilt buildduration builder buildstate dependencies upload_log"/>510 set_attributes="buildlog datebuilt buildduration builder
511 buildstate dependencies upload_log"/>
511 </class>512 </class>
512 <adapter513 <adapter
513 provides="canonical.launchpad.webapp.interfaces.IBreadcrumb"514 provides="canonical.launchpad.webapp.interfaces.IBreadcrumb"
514 for="lp.soyuz.interfaces.build.IBuild"515 for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
515 factory="lp.soyuz.browser.build.BuildBreadcrumb"516 factory="lp.soyuz.browser.build.BuildBreadcrumb"
516 permission="zope.Public"/>517 permission="zope.Public"/>
517518
518 <!-- BuildSet -->519 <!-- BinaryPackageBuildSet -->
519520
520 <securedutility521 <securedutility
521 class="canonical.launchpad.database.BuildSet"522 class="lp.soyuz.model.binarypackagebuild.BinaryPackageBuildSet"
522 provides="lp.soyuz.interfaces.build.IBuildSet">523 provides="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuildSet">
523 <allow524 <allow
524 interface="lp.soyuz.interfaces.build.IBuildSet"/>525 interface="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuildSet"/>
525 </securedutility>526 </securedutility>
526527
527 <!-- DistroArchSeriesBinaryPackage -->528 <!-- DistroArchSeriesBinaryPackage -->
@@ -848,7 +849,7 @@
848 <allow849 <allow
849 interface="lp.soyuz.interfaces.buildpackagejob.IBuildPackageJob"/>850 interface="lp.soyuz.interfaces.buildpackagejob.IBuildPackageJob"/>
850 </class>851 </class>
851 <!-- 852 <!--
852 The registration below is used to discover all build farm job classes853 The registration below is used to discover all build farm job classes
853 that implement the `IBuildFarmJob` interface. Please see bug #503839854 that implement the `IBuildFarmJob` interface. Please see bug #503839
854 for more detail.855 for more detail.
855856
=== modified file 'lib/lp/soyuz/doc/build-estimated-dispatch-time.txt'
--- lib/lp/soyuz/doc/build-estimated-dispatch-time.txt 2010-03-17 05:58:22 +0000
+++ lib/lp/soyuz/doc/build-estimated-dispatch-time.txt 2010-04-13 06:59:32 +0000
@@ -58,8 +58,9 @@
58 >>> import pytz58 >>> import pytz
59 >>> bob_the_builder = builder_set.get(1)59 >>> bob_the_builder = builder_set.get(1)
60 >>> cur_bqueue = bob_the_builder.currentjob60 >>> cur_bqueue = bob_the_builder.currentjob
61 >>> from lp.soyuz.interfaces.build import IBuildSet61 >>> from lp.soyuz.interfaces.binarypackagebuild import (
62 >>> cur_build = getUtility(IBuildSet).getByQueueEntry(cur_bqueue)62 ... IBinaryPackageBuildSet)
63 >>> cur_build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(cur_bqueue)
6364
64Make sure the job at hand is currently being built.65Make sure the job at hand is currently being built.
6566
6667
=== modified file 'lib/lp/soyuz/doc/build-failedtoupload-workflow.txt'
--- lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2010-03-26 19:22:58 +0000
+++ lib/lp/soyuz/doc/build-failedtoupload-workflow.txt 2010-04-13 06:59:32 +0000
@@ -16,9 +16,10 @@
16buildmaster/slave-scanner code, an build notification will be issued.16buildmaster/slave-scanner code, an build notification will be issued.
17See more information in build-notification.txt file.17See more information in build-notification.txt file.
1818
19 >>> from lp.soyuz.interfaces.build import IBuildSet19 >>> from lp.soyuz.interfaces.binarypackagebuild import (
20 ... IBinaryPackageBuildSet)
20 >>> from lp.testing.mail_helpers import pop_notifications21 >>> from lp.testing.mail_helpers import pop_notifications
21 >>> buildset = getUtility(IBuildSet)22 >>> buildset = getUtility(IBinaryPackageBuildSet)
2223
23Let's use a sampledata build record in FAILEDTOUPLOAD:24Let's use a sampledata build record in FAILEDTOUPLOAD:
2425
2526
=== modified file 'lib/lp/soyuz/doc/build-notification.txt'
--- lib/lp/soyuz/doc/build-notification.txt 2010-03-26 17:31:48 +0000
+++ lib/lp/soyuz/doc/build-notification.txt 2010-04-13 06:59:32 +0000
@@ -2,9 +2,10 @@
2Build Notification System2Build Notification System
3=========================3=========================
44
5IBuild instance implements the 'notify' method which sends a status5IBinaryPackageBuild instance implements the 'notify' method which sends
6report about the current record to the ISourcePackageRelease.creator6a status report about the current record to the
7and the package uploader's preferred email address.7ISourcePackageRelease.creator and the package uploader's preferred email
8address.
89
9We rely on get_contact_email_addresses() to DTRT, either use the10We rely on get_contact_email_addresses() to DTRT, either use the
10Team.contactaddress of the Launchpad Buildd Celebrity or the11Team.contactaddress of the Launchpad Buildd Celebrity or the
@@ -15,9 +16,10 @@
15All build states are supported by the current implementation, however16All build states are supported by the current implementation, however
16only failures should be reported this time.17only failures should be reported this time.
1718
18 >>> from lp.soyuz.interfaces.build import IBuildSet19 >>> from lp.soyuz.interfaces.binarypackagebuild import (
20 ... IBinaryPackageBuildSet)
19 >>> from lp.testing.mail_helpers import pop_notifications21 >>> from lp.testing.mail_helpers import pop_notifications
20 >>> buildset = getUtility(IBuildSet)22 >>> buildset = getUtility(IBinaryPackageBuildSet)
2123
22To avoid consequences of modified sampledata, specially if we add24To avoid consequences of modified sampledata, specially if we add
23more builds for test we are going to pick a specific build record25more builds for test we are going to pick a specific build record
2426
=== modified file 'lib/lp/soyuz/doc/build.txt'
--- lib/lp/soyuz/doc/build.txt 2010-03-26 19:22:58 +0000
+++ lib/lp/soyuz/doc/build.txt 2010-04-13 06:59:32 +0000
@@ -137,8 +137,9 @@
137If the build does not have any uploads, None is returned:137If the build does not have any uploads, None is returned:
138138
139 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus139 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus
140 >>> from lp.soyuz.interfaces.build import IBuildSet140 >>> from lp.soyuz.interfaces.binarypackagebuild import (
141 >>> at_build = getUtility(IBuildSet).getByBuildID(15)141 ... IBinaryPackageBuildSet)
142 >>> at_build = getUtility(IBinaryPackageBuildSet).getByBuildID(15)
142 >>> print at_build.package_upload143 >>> print at_build.package_upload
143 None144 None
144145
@@ -147,7 +148,7 @@
147 >>> firefox_build.can_be_retried148 >>> firefox_build.can_be_retried
148 False149 False
149150
150 >>> frozen_build = getUtility(IBuildSet).getByBuildID(9)151 >>> frozen_build = getUtility(IBinaryPackageBuildSet).getByBuildID(9)
151 >>> frozen_build.title152 >>> frozen_build.title
152 u'i386 build of pmount 0.1-1 in ubuntu warty RELEASE'153 u'i386 build of pmount 0.1-1 in ubuntu warty RELEASE'
153 >>> frozen_build.buildstate.title154 >>> frozen_build.buildstate.title
@@ -155,12 +156,12 @@
155 >>> frozen_build.can_be_retried156 >>> frozen_build.can_be_retried
156 False157 False
157158
158See section 'AssertionErrors in IBuild' for further documentation about159See section 'AssertionErrors in IBinaryPackageBuild' for further
159consequences of an denied 'retry' action.160documentation about consequences of an denied 'retry' action.
160161
161Let's retrieve a build record that can be retried.162Let's retrieve a build record that can be retried.
162163
163 >>> active_build = getUtility(IBuildSet).getByBuildID(9)164 >>> active_build = getUtility(IBinaryPackageBuildSet).getByBuildID(9)
164165
165 >>> print active_build.title166 >>> print active_build.title
166 i386 build of pmount 0.1-1 in ubuntu warty RELEASE167 i386 build of pmount 0.1-1 in ubuntu warty RELEASE
@@ -235,7 +236,7 @@
235236
236In order to call storeUploadLog() again for the same build, we have to237In order to call storeUploadLog() again for the same build, we have to
237remove the previously stored 'upload_log'. See the check below in238remove the previously stored 'upload_log'. See the check below in
238'AssertionErrors in IBuild' for more detail.239'AssertionErrors in IBinaryPackageBuild' for more detail.
239240
240 >>> login('foo.bar@canonical.com')241 >>> login('foo.bar@canonical.com')
241 >>> active_build.upload_log = None242 >>> active_build.upload_log = None
@@ -373,7 +374,7 @@
373Invoke createBinaryPackageRelease with all required arguments.374Invoke createBinaryPackageRelease with all required arguments.
374375
375 # Load a build from the samepledata for creating binaries.376 # Load a build from the samepledata for creating binaries.
376 >>> pmount_build = getUtility(IBuildSet).getByBuildID(19)377 >>> pmount_build = getUtility(IBinaryPackageBuildSet).getByBuildID(19)
377378
378 >>> bin = pmount_build.createBinaryPackageRelease(379 >>> bin = pmount_build.createBinaryPackageRelease(
379 ... binarypackagename, version, summary, description,380 ... binarypackagename, version, summary, description,
@@ -453,7 +454,7 @@
453The BuildSet class gives us some useful ways to consider the454The BuildSet class gives us some useful ways to consider the
454collection of builds.455collection of builds.
455456
456 >>> bs = getUtility(IBuildSet)457 >>> bs = getUtility(IBinaryPackageBuildSet)
457458
458We can find builds given a source package release and architecture tag.459We can find builds given a source package release and architecture tag.
459460
@@ -461,7 +462,7 @@
461 >>> i386_builds.count()462 >>> i386_builds.count()
462 4463 4
463464
464IHasBuildRecords uses a base method provided by IBuildSet,465IHasBuildRecords uses a base method provided by IBinaryPackageBuildSet,
465getBuildsByArchIds():466getBuildsByArchIds():
466467
467It receives list of architectures IDs:468It receives list of architectures IDs:
@@ -519,8 +520,8 @@
519 ... bs.getBuildsByArchIds(arch_ids, name='commercialpackage')]520 ... bs.getBuildsByArchIds(arch_ids, name='commercialpackage')]
520 [('PARTNER', u'i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE')]521 [('PARTNER', u'i386 build of commercialpackage 1.0-1 in ubuntu breezy-autotest RELEASE')]
521522
522`IBuildSet` also provides getStatusSummaryForBuilds which summarizes the523`IBinaryPackageBuildSet` also provides getStatusSummaryForBuilds which
523build status of a set of builds:524summarizes the build status of a set of builds:
524525
525First we'll define a helper to print the build summary:526First we'll define a helper to print the build summary:
526527
@@ -543,11 +544,12 @@
543data from the database for a given set of builds:544data from the database for a given set of builds:
544545
545 >>> from storm.expr import In546 >>> from storm.expr import In
546 >>> from lp.soyuz.model.build import Build547 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
547 >>> from canonical.launchpad.webapp.interfaces import (548 >>> from canonical.launchpad.webapp.interfaces import (
548 ... IStoreSelector, MAIN_STORE, DEFAULT_FLAVOR)549 ... IStoreSelector, MAIN_STORE, DEFAULT_FLAVOR)
549 >>> store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)550 >>> store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
550 >>> results = list(store.find(Build, In(Build.id, (2,6,7,8))))551 >>> results = list(store.find(
552 ... BinaryPackageBuild, In(BinaryPackageBuild.id, (2,6,7,8))))
551 >>> rset = removeSecurityProxy(bs)._prefetchBuildData(results)553 >>> rset = removeSecurityProxy(bs)._prefetchBuildData(results)
552 >>> def filename_or_none(item):554 >>> def filename_or_none(item):
553 ... if item is not None:555 ... if item is not None:
@@ -768,7 +770,7 @@
768if user is not passed then the query runs anonymously which means private770if user is not passed then the query runs anonymously which means private
769builds are excluded from anything returned.771builds are excluded from anything returned.
770772
771Log in as admin to avoid security on IBuild for the moment.773Log in as admin to avoid security on IBinaryPackageBuild for the moment.
772774
773 >>> login('foo.bar@canonical.com')775 >>> login('foo.bar@canonical.com')
774776
@@ -889,16 +891,16 @@
889 4891 4
890892
891893
892== AssertionErrors in IBuild ==894== AssertionErrors in IBinaryPackageBuild ==
893895
894Build records inserted by gina don't provide calculated_buildstart896Build records inserted by gina don't provide calculated_buildstart
895value, since they miss fields used in its calculation.897value, since they miss fields used in its calculation.
896898
897 >>> gina_build = getUtility(IBuildSet).getByBuildID(10)899 >>> gina_build = getUtility(IBinaryPackageBuildSet).getByBuildID(10)
898 >>> gina_build.title900 >>> gina_build.title
899 u'i386 build of cnews cr.g7-37 in ubuntu warty RELEASE'901 u'i386 build of cnews cr.g7-37 in ubuntu warty RELEASE'
900902
901even if IBuild.was_built return true:903even if IBinaryPackageBuild.was_built return true:
902904
903 >>> gina_build.was_built905 >>> gina_build.was_built
904 True906 True
@@ -916,10 +918,10 @@
916its result in case of success, i.e., we should not be able to retry a918its result in case of success, i.e., we should not be able to retry a
917build for a released pocket.919build for a released pocket.
918920
919All those conditions are controlled by IBuild.can_be_retried() property921All those conditions are controlled by
920(see above).922IBinaryPackageBuild.can_be_retried() property (see above).
921923
922 >>> failed_build = getUtility(IBuildSet).getByBuildID(6)924 >>> failed_build = getUtility(IBinaryPackageBuildSet).getByBuildID(6)
923925
924 >>> failed_build.title926 >>> failed_build.title
925 u'i386 build of foobar 1.0 in ubuntu warty RELEASE'927 u'i386 build of foobar 1.0 in ubuntu warty RELEASE'
@@ -963,7 +965,7 @@
963storeUploadLog() refuses to override any previously stored965storeUploadLog() refuses to override any previously stored
964'upload_log'.966'upload_log'.
965967
966 >>> failedtoupload_build = getUtility(IBuildSet).getByBuildID(22)968 >>> failedtoupload_build = getUtility(IBinaryPackageBuildSet).getByBuildID(22)
967 >>> print failedtoupload_build.title969 >>> print failedtoupload_build.title
968 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE970 i386 build of cdrkit 1.0 in ubuntu breezy-autotest RELEASE
969971
@@ -993,17 +995,17 @@
993995
994== Updating build-dependencies line ==996== Updating build-dependencies line ==
995997
996The IBuild.dependencies field is only filled when a build job is998The IBinaryPackageBuild.dependencies field is only filled when a build
997collected as MANUALDEPWAIT, its content is informed by the999job is collected as MANUALDEPWAIT, its content is informed by the
998buildd-slave in the apt-dependencies format.1000buildd-slave in the apt-dependencies format.
9991001
1000 >>> depwait_build = getUtility(IBuildSet).getByBuildID(12)1002 >>> depwait_build = getUtility(IBinaryPackageBuildSet).getByBuildID(12)
1001 >>> print depwait_build.dependencies1003 >>> print depwait_build.dependencies
1002 cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2)1004 cpp (>= 4:4.0.1-3), gcc-4.0 (>= 4.0.1-2)
10031005
1004IBuild.updateDependencies is designed to process this field and1006IBinaryPackageBuild.updateDependencies is designed to process this field
1005eliminate dependencies that can be satisfied. It is used as part of the1007and eliminate dependencies that can be satisfied. It is used as part of
1006auto-depwait processing where all builds marked as MANUALDEPWAIT are1008the auto-depwait processing where all builds marked as MANUALDEPWAIT are
1007re-processed and the ones with empty dependencies are re-queued.1009re-processed and the ones with empty dependencies are re-queued.
10081010
1009If nothing has changed, which is the case of the current1011If nothing has changed, which is the case of the current
@@ -1107,7 +1109,7 @@
1107It depends on the callsite to decide whether or not to 'retry' a1109It depends on the callsite to decide whether or not to 'retry' a
1108build after calling updateDependencies, to encapsulate such decision1110build after calling updateDependencies, to encapsulate such decision
1109for performing the mentioned auto-depwait procedure we have a utility1111for performing the mentioned auto-depwait procedure we have a utility
1110in IBuildSet called retryDepWaiting().1112in IBinaryPackageBuildSet called retryDepWaiting().
11111113
1112 >>> print depwait_build.buildstate.name1114 >>> print depwait_build.buildstate.name
1113 MANUALDEPWAIT1115 MANUALDEPWAIT
@@ -1125,7 +1127,7 @@
1125Then we can run the utility method for the target distroarchseries and1127Then we can run the utility method for the target distroarchseries and
1126expect depwait_build to be 'retried' and scored.1128expect depwait_build to be 'retried' and scored.
11271129
1128 >>> getUtility(IBuildSet).retryDepWaiting(hoaryi386)1130 >>> getUtility(IBinaryPackageBuildSet).retryDepWaiting(hoaryi386)
11291131
1130 >>> print depwait_build.buildstate.name1132 >>> print depwait_build.buildstate.name
1131 NEEDSBUILD1133 NEEDSBUILD
@@ -1173,8 +1175,8 @@
11731175
1174== Build record security ==1176== Build record security ==
11751177
1176IBuild's content class is wrapped in a Zope security wrapper that prevents1178IBinaryPackageBuild's content class is wrapped in a Zope security
1177access to private builds for unauthorised users.1179wrapper that prevents access to private builds for unauthorised users.
11781180
1179Accessing the cprov builds when logged in as admin will see the records:1181Accessing the cprov builds when logged in as admin will see the records:
11801182
@@ -1373,7 +1375,7 @@
1373 datetime.timedelta(0, 3600)1375 datetime.timedelta(0, 3600)
13741376
13751377
1376== IBuildSet.getBuildsBySourcePackageRelease() ==1378== IBinaryPackageBuildSet.getBuildsBySourcePackageRelease() ==
13771379
1378getBuildsBySourcePackageRelease() will return all the Build records for1380getBuildsBySourcePackageRelease() will return all the Build records for
1379all the SourcePackageRelease IDs passed.1381all the SourcePackageRelease IDs passed.
@@ -1481,7 +1483,7 @@
1481 A call to getBuildsForBuilder returns only those builds that were1483 A call to getBuildsForBuilder returns only those builds that were
1482 built by the specified builder, ordered by datebuilt DESC:1484 built by the specified builder, ordered by datebuilt DESC:
14831485
1484 >>> frog_builds = getUtility(IBuildSet).getBuildsForBuilder(1486 >>> frog_builds = getUtility(IBinaryPackageBuildSet).getBuildsForBuilder(
1485 ... frog_builder.id)1487 ... frog_builder.id)
1486 >>> print_build_details(frog_builds)1488 >>> print_build_details(frog_builds)
1487 ubuntu-team: i386 build of laterbuildsrc 666 in ubuntutest1489 ubuntu-team: i386 build of laterbuildsrc 666 in ubuntutest
14881490
=== modified file 'lib/lp/soyuz/doc/buildd-dispatching.txt'
--- lib/lp/soyuz/doc/buildd-dispatching.txt 2010-04-08 15:29:39 +0000
+++ lib/lp/soyuz/doc/buildd-dispatching.txt 2010-04-13 06:59:32 +0000
@@ -131,8 +131,9 @@
131131
132 >>> job.id132 >>> job.id
133 2133 2
134 >>> from lp.soyuz.interfaces.build import IBuildSet134 >>> from lp.soyuz.interfaces.binarypackagebuild import (
135 >>> build = getUtility(IBuildSet).getByQueueEntry(job)135 ... IBinaryPackageBuildSet)
136 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
136 >>> build.buildstate.name137 >>> build.buildstate.name
137 'NEEDSBUILD'138 'NEEDSBUILD'
138 >>> job.builder is None139 >>> job.builder is None
@@ -172,7 +173,7 @@
172 >>> job.builder.id == bob_builder.id173 >>> job.builder.id == bob_builder.id
173 True174 True
174175
175 >>> build = getUtility(IBuildSet).getByQueueEntry(job)176 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(job)
176 >>> build.buildstate.name177 >>> build.buildstate.name
177 'BUILDING'178 'BUILDING'
178179
@@ -209,7 +210,7 @@
209210
210The build job's archive requires virtualized builds.211The build job's archive requires virtualized builds.
211212
212 >>> build = getUtility(IBuildSet).getByQueueEntry(ppa_job)213 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(ppa_job)
213 >>> build.archive.require_virtualized214 >>> build.archive.require_virtualized
214 True215 True
215216
216217
=== modified file 'lib/lp/soyuz/doc/buildd-scoring.txt'
--- lib/lp/soyuz/doc/buildd-scoring.txt 2010-02-17 13:01:41 +0000
+++ lib/lp/soyuz/doc/buildd-scoring.txt 2010-04-13 06:59:32 +0000
@@ -260,8 +260,9 @@
260 ... name='test-rebuild')260 ... name='test-rebuild')
261261
262 >>> bqc = setUpBuildQueueEntry(archive=copy)262 >>> bqc = setUpBuildQueueEntry(archive=copy)
263 >>> from lp.soyuz.interfaces.build import IBuildSet263 >>> from lp.soyuz.interfaces.binarypackagebuild import (
264 >>> build = getUtility(IBuildSet).getByQueueEntry(bqc)264 ... IBinaryPackageBuildSet)
265 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqc)
265 >>> bqc.score()266 >>> bqc.score()
266 >>> bqc.lastscore267 >>> bqc.lastscore
267 -10268 -10
268269
=== modified file 'lib/lp/soyuz/doc/buildd-slavescanner.txt'
--- lib/lp/soyuz/doc/buildd-slavescanner.txt 2010-04-12 05:52:01 +0000
+++ lib/lp/soyuz/doc/buildd-slavescanner.txt 2010-04-13 06:59:32 +0000
@@ -75,14 +75,15 @@
75following states: FAILEDTOBUILD and CHROOTWAIT75following states: FAILEDTOBUILD and CHROOTWAIT
7676
77 >>> from lp.buildmaster.interfaces.builder import IBuilderSet77 >>> from lp.buildmaster.interfaces.builder import IBuilderSet
78 >>> from lp.soyuz.interfaces.build import IBuildSet78 >>> from lp.soyuz.interfaces.binarypackagebuild import (
79 ... IBinaryPackageBuildSet)
79 >>> import datetime, pytz80 >>> import datetime, pytz
8081
81 >>> UTC = pytz.timezone('UTC')82 >>> UTC = pytz.timezone('UTC')
8283
83We want to get a Build and make BuildQueue items for it:84We want to get a Build and make BuildQueue items for it:
8485
85 >>> a_build = getUtility(IBuildSet).getByBuildID(8)86 >>> a_build = getUtility(IBinaryPackageBuildSet).getByBuildID(8)
8687
87To make testing easier we provide a convenience function to put a BuildQueue88To make testing easier we provide a convenience function to put a BuildQueue
88object into a preset fixed state:89object into a preset fixed state:
@@ -134,7 +135,7 @@
134135
135Do the test execution:136Do the test execution:
136137
137 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem3)138 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem3)
138 >>> a_builder.updateBuild(bqItem3)139 >>> a_builder.updateBuild(bqItem3)
139 >>> build.builder is not None140 >>> build.builder is not None
140 True141 True
@@ -164,7 +165,7 @@
164165
165Do the test execution:166Do the test execution:
166167
167 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem4)168 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem4)
168 >>> a_builder.updateBuild(bqItem4)169 >>> a_builder.updateBuild(bqItem4)
169 CRITICAL:slave-scanner:***** bob is MANUALDEPWAIT *****170 CRITICAL:slave-scanner:***** bob is MANUALDEPWAIT *****
170 >>> build.builder is not None171 >>> build.builder is not None
@@ -193,7 +194,7 @@
193194
194 >>> bqItem5.builder.setSlaveForTesting(195 >>> bqItem5.builder.setSlaveForTesting(
195 ... WaitingSlave('BuildStatus.CHROOTFAIL'))196 ... WaitingSlave('BuildStatus.CHROOTFAIL'))
196 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem5)197 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem5)
197 >>> a_builder.updateBuild(bqItem5)198 >>> a_builder.updateBuild(bqItem5)
198 CRITICAL:slave-scanner:***** bob is CHROOTWAIT *****199 CRITICAL:slave-scanner:***** bob is CHROOTWAIT *****
199 >>> build.builder is not None200 >>> build.builder is not None
@@ -232,7 +233,7 @@
232 True233 True
233 >>> check_mail_sent(last_stub_mail_count)234 >>> check_mail_sent(last_stub_mail_count)
234 False235 False
235 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem6)236 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem6)
236 >>> print build.buildstate.title237 >>> print build.buildstate.title
237 Pending build238 Pending build
238 >>> job = bqItem6.specific_job.job239 >>> job = bqItem6.specific_job.job
@@ -341,7 +342,7 @@
341(precisely on binary upload time), the build will be considered342(precisely on binary upload time), the build will be considered
342FAILEDTOUPLOAD:343FAILEDTOUPLOAD:
343344
344 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem10)345 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem10)
345 >>> a_builder.updateBuild(bqItem10)346 >>> a_builder.updateBuild(bqItem10)
346 WARNING:slave-scanner:Build ... upload failed.347 WARNING:slave-scanner:Build ... upload failed.
347 >>> build.builder is not None348 >>> build.builder is not None
@@ -407,9 +408,9 @@
407this case cleanly. We need to set the pocket to updates for this test as its408this case cleanly. We need to set the pocket to updates for this test as its
408uploading to warty.409uploading to warty.
409410
410 >>> bqItem10 = getUtility(IBuildSet).getByBuildID(411 >>> bqItem10 = getUtility(IBinaryPackageBuildSet).getByBuildID(
411 ... 6).queueBuild()412 ... 6).queueBuild()
412 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem10)413 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem10)
413414
414XXX: The pocket attribute is not intended to be changed in regular code, but415XXX: The pocket attribute is not intended to be changed in regular code, but
415for this test we want to change it on the fly. An alternative would be to add416for this test we want to change it on the fly. An alternative would be to add
@@ -482,7 +483,7 @@
482 0483 0
483 >>> check_mail_sent(last_stub_mail_count)484 >>> check_mail_sent(last_stub_mail_count)
484 False485 False
485 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem11)486 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem11)
486 >>> print build.buildstate.title487 >>> print build.buildstate.title
487 Pending build488 Pending build
488 >>> job = bqItem11.specific_job.job489 >>> job = bqItem11.specific_job.job
@@ -498,7 +499,7 @@
498investigate why this build end up built. (should never happen in real499investigate why this build end up built. (should never happen in real
499cases, and even so should be refused when we try to upload it.)500cases, and even so should be refused when we try to upload it.)
500501
501 >>> bqItem12 = getUtility(IBuildSet).getByBuildID(502 >>> bqItem12 = getUtility(IBinaryPackageBuildSet).getByBuildID(
502 ... 2).queueBuild()503 ... 2).queueBuild()
503 >>> setupBuildQueue(bqItem12, a_builder)504 >>> setupBuildQueue(bqItem12, a_builder)
504 >>> last_stub_mail_count = len(stub.test_emails)505 >>> last_stub_mail_count = len(stub.test_emails)
@@ -519,7 +520,7 @@
519The buildlog is collected and compressed locally using gzip algorithm,520The buildlog is collected and compressed locally using gzip algorithm,
520let's see how this method works:521let's see how this method works:
521522
522 >>> bqItem10 = getUtility(IBuildSet).getByBuildID(523 >>> bqItem10 = getUtility(IBinaryPackageBuildSet).getByBuildID(
523 ... 6).queueBuild()524 ... 6).queueBuild()
524 >>> setupBuildQueue(bqItem10, a_builder)525 >>> setupBuildQueue(bqItem10, a_builder)
525 >>> bqItem10.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))526 >>> bqItem10.builder.setSlaveForTesting(WaitingSlave('BuildStatus.OK'))
@@ -696,7 +697,8 @@
696tests.697tests.
697698
698 >>> current_job = a_builder.currentjob699 >>> current_job = a_builder.currentjob
699 >>> resurrect_build = getUtility(IBuildSet).getByQueueEntry(current_job)700 >>> resurrect_build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
701 ... current_job)
700 >>> resurrect_build.buildstate = BuildStatus.NEEDSBUILD702 >>> resurrect_build.buildstate = BuildStatus.NEEDSBUILD
701 >>> syncUpdate(resurrect_build)703 >>> syncUpdate(resurrect_build)
702 >>> current_job.builder = None704 >>> current_job.builder = None
@@ -708,7 +710,8 @@
708corresponding build record as SUPERSEDED.710corresponding build record as SUPERSEDED.
709711
710 >>> old_candidate = removeSecurityProxy(a_builder)._findBuildCandidate()712 >>> old_candidate = removeSecurityProxy(a_builder)._findBuildCandidate()
711 >>> build = getUtility(IBuildSet).getByQueueEntry(old_candidate)713 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
714 ... old_candidate)
712 >>> print build.buildstate.name715 >>> print build.buildstate.name
713 NEEDSBUILD716 NEEDSBUILD
714717
@@ -772,7 +775,7 @@
772aside to convert these to unit-tests.775aside to convert these to unit-tests.
773776
774 >>> naked_build = removeSecurityProxy(777 >>> naked_build = removeSecurityProxy(
775 ... getUtility(IBuildSet).getByQueueEntry(new_candidate))778 ... getUtility(IBinaryPackageBuildSet).getByQueueEntry(new_candidate))
776 >>> original_archive = naked_build.archive779 >>> original_archive = naked_build.archive
777 >>> secure_pub = naked_build.current_source_publication780 >>> secure_pub = naked_build.current_source_publication
778 >>> commit()781 >>> commit()
@@ -819,7 +822,8 @@
819 >>> commit()822 >>> commit()
820 >>> LaunchpadZopelessLayer.switchDbUser(config.builddmaster.dbuser)823 >>> LaunchpadZopelessLayer.switchDbUser(config.builddmaster.dbuser)
821824
822 >>> build = getUtility(IBuildSet).getByQueueEntry(current_job)825 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
826 ... current_job)
823 >>> print build.buildstate.name827 >>> print build.buildstate.name
824 NEEDSBUILD828 NEEDSBUILD
825829
@@ -1053,7 +1057,8 @@
1053 >>> commit()1057 >>> commit()
1054 >>> LaunchpadZopelessLayer.switchDbUser('launchpad')1058 >>> LaunchpadZopelessLayer.switchDbUser('launchpad')
1055 >>> login('foo.bar@canonical.com')1059 >>> login('foo.bar@canonical.com')
1056 >>> build = getUtility(IBuildSet).getByQueueEntry(candidate)1060 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
1061 ... candidate)
1057 >>> for build_file in build.sourcepackagerelease.files:1062 >>> for build_file in build.sourcepackagerelease.files:
1058 ... removeSecurityProxy(build_file).libraryfile.restricted = True1063 ... removeSecurityProxy(build_file).libraryfile.restricted = True
1059 >>> private_ppa = factory.makeArchive(1064 >>> private_ppa = factory.makeArchive(
@@ -1087,7 +1092,7 @@
1087archive and not the one from the PPA, which on the absence of ancestry1092archive and not the one from the PPA, which on the absence of ancestry
1088defaults to 'universe'.1093defaults to 'universe'.
10891094
1090 >>> build = getUtility(IBuildSet).getByQueueEntry(candidate)1095 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(candidate)
1091 >>> print build.current_component.name1096 >>> print build.current_component.name
1092 main1097 main
10931098
@@ -1312,7 +1317,7 @@
1312 >>> a_builder.currentjob.destroySelf()1317 >>> a_builder.currentjob.destroySelf()
13131318
1314 >>> bqItem3 = a_build.queueBuild()1319 >>> bqItem3 = a_build.queueBuild()
1315 >>> build = getUtility(IBuildSet).getByQueueEntry(bqItem3)1320 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(bqItem3)
1316 >>> removeSecurityProxy(build).pocket = (1321 >>> removeSecurityProxy(build).pocket = (
1317 ... PackagePublishingPocket.UPDATES)1322 ... PackagePublishingPocket.UPDATES)
1318 >>> last_stub_mail_count = len(stub.test_emails)1323 >>> last_stub_mail_count = len(stub.test_emails)
13191324
=== modified file 'lib/lp/soyuz/doc/distroarchseriesbinarypackage.txt'
--- lib/lp/soyuz/doc/distroarchseriesbinarypackage.txt 2009-11-15 19:52:54 +0000
+++ lib/lp/soyuz/doc/distroarchseriesbinarypackage.txt 2010-04-13 06:59:32 +0000
@@ -28,7 +28,7 @@
2828
29 >>> from lp.soyuz.model.publishing import (29 >>> from lp.soyuz.model.publishing import (
30 ... BinaryPackagePublishingHistory)30 ... BinaryPackagePublishingHistory)
31 >>> from lp.soyuz.model.build import Build31 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
32 >>> from lp.soyuz.model.component import Component32 >>> from lp.soyuz.model.component import Component
33 >>> from lp.soyuz.model.section import Section33 >>> from lp.soyuz.model.section import Section
34 >>> from canonical.database.constants import UTC_NOW34 >>> from canonical.database.constants import UTC_NOW
@@ -45,7 +45,7 @@
4545
46XXX: noodles 2008-11-05 bug=294585: The dependency on a database id46XXX: noodles 2008-11-05 bug=294585: The dependency on a database id
47needs to be removed.47needs to be removed.
48 >>> bpr = Build.get(8).createBinaryPackageRelease(48 >>> bpr = BinaryPackageBuild.get(8).createBinaryPackageRelease(
49 ... binarypackagename=firefox_name.id,49 ... binarypackagename=firefox_name.id,
50 ... version="120.6-0",50 ... version="120.6-0",
51 ... summary="Firefox loves lollies",51 ... summary="Firefox loves lollies",
@@ -86,7 +86,7 @@
8686
87XXX: noodles 2008-11-06 bug=294585: The dependency on a database id87XXX: noodles 2008-11-06 bug=294585: The dependency on a database id
88needs to be removed.88needs to be removed.
89 >>> bpr = Build.get(9).createBinaryPackageRelease(89 >>> bpr = BinaryPackageBuild.get(9).createBinaryPackageRelease(
90 ... binarypackagename=pmount_name.id,90 ... binarypackagename=pmount_name.id,
91 ... version="cr98.34",91 ... version="cr98.34",
92 ... summary="Pmount bakes cakes",92 ... summary="Pmount bakes cakes",
9393
=== modified file 'lib/lp/soyuz/doc/gina-multiple-arch.txt'
--- lib/lp/soyuz/doc/gina-multiple-arch.txt 2009-11-15 19:52:54 +0000
+++ lib/lp/soyuz/doc/gina-multiple-arch.txt 2010-04-13 06:59:32 +0000
@@ -9,7 +9,7 @@
9 ... BinaryPackagePublishingHistory,9 ... BinaryPackagePublishingHistory,
10 ... EmailAddress,10 ... EmailAddress,
11 ... BinaryPackageRelease,11 ... BinaryPackageRelease,
12 ... Build)12 ... BinaryPackageBuild)
13 >>> from lp.registry.model.person import Person, WikiName13 >>> from lp.registry.model.person import Person, WikiName
14 >>> from lp.registry.model.teammembership import TeamParticipation14 >>> from lp.registry.model.teammembership import TeamParticipation
15 >>> SSPPH = SourcePackagePublishingHistory15 >>> SSPPH = SourcePackagePublishingHistory
@@ -22,7 +22,7 @@
22 >>> orig_email_count = EmailAddress.select().count()22 >>> orig_email_count = EmailAddress.select().count()
23 >>> orig_wiki_count = WikiName.select().count()23 >>> orig_wiki_count = WikiName.select().count()
24 >>> orig_bpr_count = BinaryPackageRelease.select().count()24 >>> orig_bpr_count = BinaryPackageRelease.select().count()
25 >>> orig_build_count = Build.select().count()25 >>> orig_build_count = BinaryPackageBuild.select().count()
26 >>> orig_sbpph_count = SBPPH.select().count()26 >>> orig_sbpph_count = SBPPH.select().count()
2727
28Create a distribution series and an arch series for dapper:28Create a distribution series and an arch series for dapper:
@@ -142,7 +142,7 @@
142142
143 >>> print Person.select().count() - orig_person_count143 >>> print Person.select().count() - orig_person_count
144 2144 2
145 >>> print TeamParticipation.select().count() - orig_tp_count 145 >>> print TeamParticipation.select().count() - orig_tp_count
146 2146 2
147 >>> print EmailAddress.select().count() - orig_email_count147 >>> print EmailAddress.select().count() - orig_email_count
148 2148 2
@@ -153,7 +153,7 @@
153153
154 >>> BinaryPackageRelease.select().count() - orig_bpr_count154 >>> BinaryPackageRelease.select().count() - orig_bpr_count
155 4155 4
156 >>> Build.select().count() - orig_build_count156 >>> BinaryPackageBuild.select().count() - orig_build_count
157 2157 2
158 >>> SBPPH.select().count() - orig_sbpph_count158 >>> SBPPH.select().count() - orig_sbpph_count
159 4159 4
160160
=== modified file 'lib/lp/soyuz/doc/gina.txt'
--- lib/lp/soyuz/doc/gina.txt 2010-04-05 18:18:20 +0000
+++ lib/lp/soyuz/doc/gina.txt 2010-04-13 06:59:32 +0000
@@ -13,7 +13,7 @@
13 ... BinaryPackagePublishingHistory,13 ... BinaryPackagePublishingHistory,
14 ... EmailAddress,14 ... EmailAddress,
15 ... BinaryPackageRelease,15 ... BinaryPackageRelease,
16 ... Build)16 ... BinaryPackageBuild)
17 >>> from lp.registry.model.person import Person, WikiName17 >>> from lp.registry.model.person import Person, WikiName
18 >>> from lp.registry.model.teammembership import TeamParticipation18 >>> from lp.registry.model.teammembership import TeamParticipation
19 >>> from lp.registry.interfaces.pocket import (19 >>> from lp.registry.interfaces.pocket import (
@@ -28,7 +28,7 @@
28 >>> orig_email_count = EmailAddress.select().count()28 >>> orig_email_count = EmailAddress.select().count()
29 >>> orig_wiki_count = WikiName.select().count()29 >>> orig_wiki_count = WikiName.select().count()
30 >>> orig_bpr_count = BinaryPackageRelease.select().count()30 >>> orig_bpr_count = BinaryPackageRelease.select().count()
31 >>> orig_build_count = Build.select().count()31 >>> orig_build_count = BinaryPackageBuild.select().count()
32 >>> orig_sbpph_count = SBPPH.select().count()32 >>> orig_sbpph_count = SBPPH.select().count()
33 >>> orig_sspph_main_count = SSPPH.selectBy(33 >>> orig_sspph_main_count = SSPPH.selectBy(
34 ... componentID=1, pocket=PackagePublishingPocket.RELEASE).count()34 ... componentID=1, pocket=PackagePublishingPocket.RELEASE).count()
@@ -338,7 +338,7 @@
338338
339 >>> BinaryPackageRelease.select().count() - orig_bpr_count339 >>> BinaryPackageRelease.select().count() - orig_bpr_count
340 40340 40
341 >>> Build.select().count() - orig_build_count341 >>> BinaryPackageBuild.select().count() - orig_build_count
342 13342 13
343 >>> SBPPH.select().count() - orig_sbpph_count343 >>> SBPPH.select().count() - orig_sbpph_count
344 46344 46
@@ -526,7 +526,7 @@
526 13526 13
527 >>> BinaryPackageRelease.select().count() - orig_bpr_count527 >>> BinaryPackageRelease.select().count() - orig_bpr_count
528 40528 40
529 >>> Build.select().count() - orig_build_count529 >>> BinaryPackageBuild.select().count() - orig_build_count
530 13530 13
531531
532But the overrides do generate extra publishing entries:532But the overrides do generate extra publishing entries:
533533
=== modified file 'lib/lp/soyuz/doc/queuebuilder.txt'
--- lib/lp/soyuz/doc/queuebuilder.txt 2010-03-24 07:17:20 +0000
+++ lib/lp/soyuz/doc/queuebuilder.txt 2010-04-13 06:59:32 +0000
@@ -22,7 +22,7 @@
22 >>> from lp.registry.model.distroseries import DistroSeries22 >>> from lp.registry.model.distroseries import DistroSeries
23 >>> from lp.registry.interfaces.pocket import PackagePublishingPocket23 >>> from lp.registry.interfaces.pocket import PackagePublishingPocket
24 >>> from lp.soyuz.interfaces.publishing import PackagePublishingStatus24 >>> from lp.soyuz.interfaces.publishing import PackagePublishingStatus
25 >>> from lp.soyuz.model.build import Build25 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
26 >>> from lp.soyuz.model.distroarchseries import (26 >>> from lp.soyuz.model.distroarchseries import (
27 ... DistroArchSeries, PocketChroot)27 ... DistroArchSeries, PocketChroot)
2828
@@ -119,7 +119,7 @@
119119
120Store current status of the database:120Store current status of the database:
121121
122 >>> old_build_ids = [build.id for build in Build.select()]122 >>> old_build_ids = [build.id for build in BinaryPackageBuild.select()]
123 >>> old_job_ids = [build_queue.id for build_queue in BuildQueue.select()]123 >>> old_job_ids = [build_queue.id for build_queue in BuildQueue.select()]
124124
125125
@@ -233,7 +233,8 @@
233 ... hoary, PackagePublishingPocket.RELEASE, warty.main_archive)233 ... hoary, PackagePublishingPocket.RELEASE, warty.main_archive)
234234
235 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus235 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus
236 >>> from lp.soyuz.interfaces.build import IBuildSet236 >>> from lp.soyuz.interfaces.binarypackagebuild import (
237 ... IBinaryPackageBuildSet)
237 >>> failed_build = pub_failed.sourcepackagerelease.createBuild(238 >>> failed_build = pub_failed.sourcepackagerelease.createBuild(
238 ... warty['i386'], PackagePublishingPocket.RELEASE,239 ... warty['i386'], PackagePublishingPocket.RELEASE,
239 ... warty.main_archive, status=BuildStatus.FAILEDTOBUILD)240 ... warty.main_archive, status=BuildStatus.FAILEDTOBUILD)
@@ -306,7 +307,7 @@
306307
307Check that we only created new Build entries for the new hoary releases:308Check that we only created new Build entries for the new hoary releases:
308309
309 >>> new_builds = [build for build in Build.select()310 >>> new_builds = [build for build in BinaryPackageBuild.select()
310 ... if build.id not in old_build_ids]311 ... if build.id not in old_build_ids]
311 >>> for build in sorted(new_builds, key=operator.attrgetter('id')):312 >>> for build in sorted(new_builds, key=operator.attrgetter('id')):
312 ... print build.title313 ... print build.title
@@ -324,7 +325,7 @@
324325
325And have a look at our architecture-independent-source's build:326And have a look at our architecture-independent-source's build:
326327
327 >>> arch_indep_build = Build.selectOneBy(328 >>> arch_indep_build = BinaryPackageBuild.selectOneBy(
328 ... sourcepackagerelease=pub_all.sourcepackagerelease)329 ... sourcepackagerelease=pub_all.sourcepackagerelease)
329330
330 >>> print arch_indep_build.title331 >>> print arch_indep_build.title
@@ -347,7 +348,8 @@
347happen in parallel with build creation.348happen in parallel with build creation.
348349
349 >>> build_queue = active_jobs[0]350 >>> build_queue = active_jobs[0]
350 >>> build = getUtility(IBuildSet).getByQueueEntry(build_queue)351 >>> build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
352 ... build_queue)
351 >>> print build.title353 >>> print build.title
352 i386 build of test-buildd 667 in ubuntu hoary RELEASE354 i386 build of test-buildd 667 in ubuntu hoary RELEASE
353 >>> build_queue.lastscore355 >>> build_queue.lastscore
@@ -364,7 +366,8 @@
364Missing BuildQueue records, resulting from given-back builds, are366Missing BuildQueue records, resulting from given-back builds, are
365created in the last stage of the queue-builder script.367created in the last stage of the queue-builder script.
366368
367 >>> given_back_build = getUtility(IBuildSet).getByQueueEntry(build_queue)369 >>> given_back_build = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
370 ... build_queue)
368 >>> build_queue.destroySelf()371 >>> build_queue.destroySelf()
369 >>> flush_database_updates()372 >>> flush_database_updates()
370373
371374
=== modified file 'lib/lp/soyuz/doc/sourcepackagerelease.txt'
--- lib/lp/soyuz/doc/sourcepackagerelease.txt 2010-03-20 23:16:42 +0000
+++ lib/lp/soyuz/doc/sourcepackagerelease.txt 2010-04-13 06:59:32 +0000
@@ -61,9 +61,9 @@
61property only returns the non-PPA builds.61property only returns the non-PPA builds.
6262
63 >>> from canonical.launchpad.interfaces import IPersonSet63 >>> from canonical.launchpad.interfaces import IPersonSet
64 >>> from lp.soyuz.model.build import Build64 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
65 >>> cprov_ppa = getUtility(IPersonSet).getByName('cprov').archive65 >>> cprov_ppa = getUtility(IPersonSet).getByName('cprov').archive
66 >>> ff_ppa_build = Build.selectBy(66 >>> ff_ppa_build = BinaryPackageBuild.selectBy(
67 ... archive=cprov_ppa, sourcepackagerelease=spr)67 ... archive=cprov_ppa, sourcepackagerelease=spr)
68 >>> ff_ppa_build.count()68 >>> ff_ppa_build.count()
69 169 1
7070
=== modified file 'lib/lp/soyuz/doc/soyuz-set-of-uploads.txt'
--- lib/lp/soyuz/doc/soyuz-set-of-uploads.txt 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/doc/soyuz-set-of-uploads.txt 2010-04-13 06:59:32 +0000
@@ -39,7 +39,7 @@
39 4. A changes file that enumerates all the files in the upload, with39 4. A changes file that enumerates all the files in the upload, with
40 correct md5 sum and file sizes.40 correct md5 sum and file sizes.
41 5. Actual files uploaded that match the ones described in the changes file.41 5. Actual files uploaded that match the ones described in the changes file.
42 42
43 If (1) is not available, the upload silently fails.43 If (1) is not available, the upload silently fails.
44 If (2) is not available, the upload silently fails.44 If (2) is not available, the upload silently fails.
45 If (3) or (4) is not available, the upload is rejected immediately with45 If (3) or (4) is not available, the upload is rejected immediately with
@@ -623,12 +623,12 @@
623 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus623 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus
624 >>> from lp.registry.model.sourcepackagename import SourcePackageName624 >>> from lp.registry.model.sourcepackagename import SourcePackageName
625 >>> from lp.registry.interfaces.pocket import PackagePublishingPocket625 >>> from lp.registry.interfaces.pocket import PackagePublishingPocket
626 >>> from lp.soyuz.model.build import Build626 >>> from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
627 >>> from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease627 >>> from lp.soyuz.model.sourcepackagerelease import SourcePackageRelease
628 >>> spn = SourcePackageName.selectOneBy(name="baz")628 >>> spn = SourcePackageName.selectOneBy(name="baz")
629 >>> spr = SourcePackageRelease.selectOneBy(sourcepackagenameID=spn.id)629 >>> spr = SourcePackageRelease.selectOneBy(sourcepackagenameID=spn.id)
630 >>> spr_id = spr.id630 >>> spr_id = spr.id
631 >>> builds = Build.selectBy(sourcepackagereleaseID=spr_id)631 >>> builds = BinaryPackageBuild.selectBy(sourcepackagereleaseID=spr_id)
632 >>> len(list(builds))632 >>> len(list(builds))
633 0633 0
634634
@@ -642,7 +642,7 @@
642642
643Check build created643Check build created
644644
645 >>> len(list(Build.selectBy(sourcepackagereleaseID=spr_id)))645 >>> len(list(BinaryPackageBuild.selectBy(sourcepackagereleaseID=spr_id)))
646 1646 1
647647
648Upload the i386 binary:648Upload the i386 binary:
@@ -656,7 +656,8 @@
656 >>> from canonical.database.sqlbase import clear_current_connection_cache656 >>> from canonical.database.sqlbase import clear_current_connection_cache
657 >>> clear_current_connection_cache()657 >>> clear_current_connection_cache()
658658
659 >>> builds = list(Build.selectBy(sourcepackagereleaseID=spr_id))659 >>> builds = list(BinaryPackageBuild.selectBy(
660 ... sourcepackagereleaseID=spr_id))
660 >>> len(builds)661 >>> len(builds)
661 1662 1
662 >>> builds[0].buildstate == BuildStatus.FULLYBUILT663 >>> builds[0].buildstate == BuildStatus.FULLYBUILT
663664
=== renamed file 'lib/lp/soyuz/interfaces/build.py' => 'lib/lp/soyuz/interfaces/binarypackagebuild.py'
--- lib/lp/soyuz/interfaces/build.py 2010-04-03 03:29:23 +0000
+++ lib/lp/soyuz/interfaces/binarypackagebuild.py 2010-04-13 06:59:32 +0000
@@ -3,16 +3,16 @@
33
4# pylint: disable-msg=E0211,E02134# pylint: disable-msg=E0211,E0213
55
6"""Build interfaces."""6"""BinaryPackageBuild interfaces."""
77
8__metaclass__ = type8__metaclass__ = type
99
10__all__ = [10__all__ = [
11 'BuildSetStatus',11 'BuildSetStatus',
12 'CannotBeRescored',12 'CannotBeRescored',
13 'IBuild',13 'IBinaryPackageBuild',
14 'IBuildRescoreForm',14 'IBuildRescoreForm',
15 'IBuildSet',15 'IBinaryPackageBuildSet',
16 ]16 ]
1717
18from zope.interface import Interface, Attribute18from zope.interface import Interface, Attribute
@@ -38,7 +38,7 @@
38 _message_prefix = "Cannot rescore build"38 _message_prefix = "Cannot rescore build"
3939
4040
41class IBuildView(IBuildBase):41class IBinaryPackageBuildView(IBuildBase):
42 """A Build interface for items requiring launchpad.View."""42 """A Build interface for items requiring launchpad.View."""
43 id = Int(title=_('ID'), required=True, readonly=True)43 id = Int(title=_('ID'), required=True, readonly=True)
4444
@@ -151,7 +151,7 @@
151 """151 """
152152
153153
154class IBuildEdit(Interface):154class IBinaryPackageBuildEdit(Interface):
155 """A Build interface for items requiring launchpad.Edit."""155 """A Build interface for items requiring launchpad.Edit."""
156156
157 @export_write_operation()157 @export_write_operation()
@@ -163,7 +163,7 @@
163 """163 """
164164
165165
166class IBuildAdmin(Interface):166class IBinaryPackageBuildAdmin(Interface):
167 """A Build interface for items requiring launchpad.Admin."""167 """A Build interface for items requiring launchpad.Admin."""
168168
169 @operation_parameters(score=Int(title=_("Score"), required=True))169 @operation_parameters(score=Int(title=_("Score"), required=True))
@@ -172,9 +172,11 @@
172 """Change the build's score."""172 """Change the build's score."""
173173
174174
175class IBuild(IBuildView, IBuildEdit, IBuildAdmin):175class IBinaryPackageBuild(
176 IBinaryPackageBuildView, IBinaryPackageBuildEdit,
177 IBinaryPackageBuildAdmin):
176 """A Build interface"""178 """A Build interface"""
177 export_as_webservice_entry()179 export_as_webservice_entry(singular_name='build', plural_name='builds')
178180
179181
180class BuildSetStatus(EnumeratedType):182class BuildSetStatus(EnumeratedType):
@@ -208,8 +210,8 @@
208 description="There are some builds currently building.")210 description="There are some builds currently building.")
209211
210212
211class IBuildSet(Interface):213class IBinaryPackageBuildSet(Interface):
212 """Interface for BuildSet"""214 """Interface for BinaryPackageBuildSet"""
213215
214 def getBuildBySRAndArchtag(sourcepackagereleaseID, archtag):216 def getBuildBySRAndArchtag(sourcepackagereleaseID, archtag):
215 """Return a build for a SourcePackageRelease and an ArchTag"""217 """Return a build for a SourcePackageRelease and an ArchTag"""
216218
=== modified file 'lib/lp/soyuz/interfaces/buildfarmbuildjob.py'
--- lib/lp/soyuz/interfaces/buildfarmbuildjob.py 2010-03-16 05:08:47 +0000
+++ lib/lp/soyuz/interfaces/buildfarmbuildjob.py 2010-04-13 06:59:32 +0000
@@ -11,11 +11,11 @@
11from canonical.launchpad import _11from canonical.launchpad import _
12from lazr.restful.fields import Reference12from lazr.restful.fields import Reference
13from lp.buildmaster.interfaces.buildfarmjob import IBuildFarmJob13from lp.buildmaster.interfaces.buildfarmjob import IBuildFarmJob
14from lp.soyuz.interfaces.build import IBuild14from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuild
1515
1616
17class IBuildFarmBuildJob(IBuildFarmJob):17class IBuildFarmBuildJob(IBuildFarmJob):
18 """An `IBuildFarmJob` with an `IBuild` reference."""18 """An `IBuildFarmJob` with an `IBuild` reference."""
19 build = Reference(19 build = Reference(
20 IBuild, title=_("Build"), required=True, readonly=True,20 IBinaryPackageBuild, title=_("Build"), required=True, readonly=True,
21 description=_("Build record associated with this job."))21 description=_("Build record associated with this job."))
2222
=== modified file 'lib/lp/soyuz/interfaces/buildpackagejob.py'
--- lib/lp/soyuz/interfaces/buildpackagejob.py 2010-03-16 05:08:47 +0000
+++ lib/lp/soyuz/interfaces/buildpackagejob.py 2010-04-13 06:59:32 +0000
@@ -16,7 +16,7 @@
16from canonical.launchpad import _16from canonical.launchpad import _
17from lazr.restful.fields import Reference17from lazr.restful.fields import Reference
18from lp.services.job.interfaces.job import IJob18from lp.services.job.interfaces.job import IJob
19from lp.soyuz.interfaces.build import IBuild19from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuild
20from lp.soyuz.interfaces.buildfarmbuildjob import IBuildFarmBuildJob20from lp.soyuz.interfaces.buildfarmbuildjob import IBuildFarmBuildJob
2121
2222
@@ -30,6 +30,6 @@
30 description=_("Data common to all job types."))30 description=_("Data common to all job types."))
3131
32 build = Reference(32 build = Reference(
33 IBuild, title=_("Build"),33 IBinaryPackageBuild, title=_("Build"),
34 required=True, readonly=True,34 required=True, readonly=True,
35 description=_("Build record associated with this job."))35 description=_("Build record associated with this job."))
3636
=== modified file 'lib/lp/soyuz/model/archive.py'
--- lib/lp/soyuz/model/archive.py 2010-04-08 02:35:06 +0000
+++ lib/lp/soyuz/model/archive.py 2010-04-13 06:59:32 +0000
@@ -42,7 +42,7 @@
42from lp.soyuz.model.archivesubscriber import ArchiveSubscriber42from lp.soyuz.model.archivesubscriber import ArchiveSubscriber
43from lp.soyuz.model.binarypackagerelease import (43from lp.soyuz.model.binarypackagerelease import (
44 BinaryPackageReleaseDownloadCount)44 BinaryPackageReleaseDownloadCount)
45from lp.soyuz.model.build import Build45from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
46from lp.soyuz.model.distributionsourcepackagecache import (46from lp.soyuz.model.distributionsourcepackagecache import (
47 DistributionSourcePackageCache)47 DistributionSourcePackageCache)
48from lp.soyuz.model.distroseriespackagecache import DistroSeriesPackageCache48from lp.soyuz.model.distroseriespackagecache import DistroSeriesPackageCache
@@ -71,7 +71,7 @@
71from lp.soyuz.interfaces.archivesubscriber import (71from lp.soyuz.interfaces.archivesubscriber import (
72 ArchiveSubscriberStatus, IArchiveSubscriberSet, ArchiveSubscriptionError)72 ArchiveSubscriberStatus, IArchiveSubscriberSet, ArchiveSubscriptionError)
73from lp.soyuz.interfaces.binarypackagerelease import BinaryPackageFileType73from lp.soyuz.interfaces.binarypackagerelease import BinaryPackageFileType
74from lp.soyuz.interfaces.build import IBuildSet74from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
75from lp.soyuz.interfaces.buildrecords import IHasBuildRecords75from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
76from lp.soyuz.interfaces.component import IComponent, IComponentSet76from lp.soyuz.interfaces.component import IComponent, IComponentSet
77from lp.registry.interfaces.distroseries import IDistroSeriesSet77from lp.registry.interfaces.distroseries import IDistroSeriesSet
@@ -211,7 +211,7 @@
211 for (family, archive_arch) in restricted_families:211 for (family, archive_arch) in restricted_families:
212 if family == arm:212 if family == arm:
213 return (archive_arch is not None)213 return (archive_arch is not None)
214 # ARM doesn't exist or isn't restricted. Either way, there is no 214 # ARM doesn't exist or isn't restricted. Either way, there is no
215 # need for an explicit association.215 # need for an explicit association.
216 return False216 return False
217217
@@ -358,7 +358,7 @@
358 """See IHasBuildRecords"""358 """See IHasBuildRecords"""
359 # Ignore "user", since anyone already accessing this archive359 # Ignore "user", since anyone already accessing this archive
360 # will implicitly have permission to see it.360 # will implicitly have permission to see it.
361 return getUtility(IBuildSet).getBuildsForArchive(361 return getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
362 self, build_state, name, pocket, arch_tag)362 self, build_state, name, pocket, arch_tag)
363363
364 def getPublishedSources(self, name=None, version=None, status=None,364 def getPublishedSources(self, name=None, version=None, status=None,
@@ -873,17 +873,19 @@
873 store = Store.of(self)873 store = Store.of(self)
874 extra_exprs = []874 extra_exprs = []
875 if not include_needsbuild:875 if not include_needsbuild:
876 extra_exprs.append(Build.buildstate != BuildStatus.NEEDSBUILD)876 extra_exprs.append(
877 BinaryPackageBuild.buildstate != BuildStatus.NEEDSBUILD)
877878
878 find_spec = (879 find_spec = (
879 Build.buildstate,880 BinaryPackageBuild.buildstate,
880 Count(Build.id)881 Count(BinaryPackageBuild.id)
881 )882 )
882 result = store.using(Build).find(883 result = store.using(BinaryPackageBuild).find(
883 find_spec,884 find_spec,
884 Build.archive == self,885 BinaryPackageBuild.archive == self,
885 *extra_exprs886 *extra_exprs
886 ).group_by(Build.buildstate).order_by(Build.buildstate)887 ).group_by(BinaryPackageBuild.buildstate).order_by(
888 BinaryPackageBuild.buildstate)
887889
888 # Create a map for each count summary to a number of buildstates:890 # Create a map for each count summary to a number of buildstates:
889 count_map = {891 count_map = {
@@ -1137,8 +1139,8 @@
1137 BinaryPackageRelease,1139 BinaryPackageRelease,
1138 BinaryPackageRelease.binarypackagename == name,1140 BinaryPackageRelease.binarypackagename == name,
1139 BinaryPackageRelease.version == version,1141 BinaryPackageRelease.version == version,
1140 Build.id == BinaryPackageRelease.buildID,1142 BinaryPackageBuild.id == BinaryPackageRelease.buildID,
1141 DistroArchSeries.id == Build.distroarchseriesID,1143 DistroArchSeries.id == BinaryPackageBuild.distroarchseriesID,
1142 DistroArchSeries.architecturetag == archtag,1144 DistroArchSeries.architecturetag == archtag,
1143 BinaryPackagePublishingHistory.archive == self,1145 BinaryPackagePublishingHistory.archive == self,
1144 BinaryPackagePublishingHistory.binarypackagereleaseID ==1146 BinaryPackagePublishingHistory.binarypackagereleaseID ==
@@ -1335,12 +1337,13 @@
13351337
1336 extra_exprs = []1338 extra_exprs = []
1337 if build_status is not None:1339 if build_status is not None:
1338 extra_exprs.append(Build.buildstate == build_status)1340 extra_exprs.append(BinaryPackageBuild.buildstate == build_status)
13391341
1340 result_set = store.find(1342 result_set = store.find(
1341 SourcePackageRelease,1343 SourcePackageRelease,
1342 Build.sourcepackagereleaseID == SourcePackageRelease.id,1344 (BinaryPackageBuild.sourcepackagereleaseID ==
1343 Build.archive == self,1345 SourcePackageRelease.id),
1346 BinaryPackageBuild.archive == self,
1344 *extra_exprs)1347 *extra_exprs)
13451348
1346 result_set.config(distinct=True).order_by(SourcePackageRelease.id)1349 result_set.config(distinct=True).order_by(SourcePackageRelease.id)
13471350
=== renamed file 'lib/lp/soyuz/model/build.py' => 'lib/lp/soyuz/model/binarypackagebuild.py'
--- lib/lp/soyuz/model/build.py 2010-03-07 04:06:22 +0000
+++ lib/lp/soyuz/model/binarypackagebuild.py 2010-04-13 06:59:32 +0000
@@ -4,7 +4,7 @@
4# pylint: disable-msg=E0611,W02124# pylint: disable-msg=E0611,W0212
55
6__metaclass__ = type6__metaclass__ = type
7__all__ = ['Build', 'BuildSet']7__all__ = ['BinaryPackageBuild', 'BinaryPackageBuildSet']
88
9import apt_pkg9import apt_pkg
10import datetime10import datetime
@@ -49,8 +49,9 @@
49from lp.services.job.model.job import Job49from lp.services.job.model.job import Job
50from lp.soyuz.adapters.archivedependencies import get_components_for_building50from lp.soyuz.adapters.archivedependencies import get_components_for_building
51from lp.soyuz.interfaces.archive import ArchivePurpose51from lp.soyuz.interfaces.archive import ArchivePurpose
52from lp.soyuz.interfaces.build import (52from lp.soyuz.interfaces.binarypackagebuild import (
53 BuildSetStatus, CannotBeRescored, IBuild, IBuildSet)53 BuildSetStatus, CannotBeRescored, IBinaryPackageBuild,
54 IBinaryPackageBuildSet)
54from lp.buildmaster.interfaces.buildbase import IBuildBase55from lp.buildmaster.interfaces.buildbase import IBuildBase
55from lp.soyuz.interfaces.publishing import active_publishing_status56from lp.soyuz.interfaces.publishing import active_publishing_status
56from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease57from lp.soyuz.model.binarypackagerelease import BinaryPackageRelease
@@ -62,8 +63,8 @@
62 PackageUpload, PackageUploadBuild)63 PackageUpload, PackageUploadBuild)
6364
6465
65class Build(BuildBase, SQLBase):66class BinaryPackageBuild(BuildBase, SQLBase):
66 implements(IBuildBase, IBuild)67 implements(IBuildBase, IBinaryPackageBuild)
67 _table = 'Build'68 _table = 'Build'
68 _defaultOrder = 'id'69 _defaultOrder = 'id'
6970
@@ -470,7 +471,7 @@
470 # Look for all sourcepackagerelease instances that match the name471 # Look for all sourcepackagerelease instances that match the name
471 # and get the (successfully built) build records for this472 # and get the (successfully built) build records for this
472 # package.473 # package.
473 completed_builds = Build.select("""474 completed_builds = BinaryPackageBuild.select("""
474 Build.sourcepackagerelease = SourcePackageRelease.id AND475 Build.sourcepackagerelease = SourcePackageRelease.id AND
475 Build.id != %s AND476 Build.id != %s AND
476 Build.buildduration IS NOT NULL AND477 Build.buildduration IS NOT NULL AND
@@ -693,11 +694,11 @@
693 raise NotFoundError(filename)694 raise NotFoundError(filename)
694695
695696
696class BuildSet:697class BinaryPackageBuildSet:
697 implements(IBuildSet)698 implements(IBinaryPackageBuildSet)
698699
699 def getBuildBySRAndArchtag(self, sourcepackagereleaseID, archtag):700 def getBuildBySRAndArchtag(self, sourcepackagereleaseID, archtag):
700 """See `IBuildSet`"""701 """See `IBinaryPackageBuildSet`"""
701 clauseTables = ['DistroArchSeries']702 clauseTables = ['DistroArchSeries']
702 query = ('Build.sourcepackagerelease = %s '703 query = ('Build.sourcepackagerelease = %s '
703 'AND Build.distroarchseries = DistroArchSeries.id '704 'AND Build.distroarchseries = DistroArchSeries.id '
@@ -705,25 +706,25 @@
705 % sqlvalues(sourcepackagereleaseID, archtag)706 % sqlvalues(sourcepackagereleaseID, archtag)
706 )707 )
707708
708 return Build.select(query, clauseTables=clauseTables)709 return BinaryPackageBuild.select(query, clauseTables=clauseTables)
709710
710 def getByBuildID(self, id):711 def getByBuildID(self, id):
711 """See `IBuildSet`."""712 """See `IBinaryPackageBuildSet`."""
712 try:713 try:
713 return Build.get(id)714 return BinaryPackageBuild.get(id)
714 except SQLObjectNotFound, e:715 except SQLObjectNotFound, e:
715 raise NotFoundError(str(e))716 raise NotFoundError(str(e))
716717
717 def getPendingBuildsForArchSet(self, archseries):718 def getPendingBuildsForArchSet(self, archseries):
718 """See `IBuildSet`."""719 """See `IBinaryPackageBuildSet`."""
719 if not archseries:720 if not archseries:
720 return None721 return None
721722
722 archseries_ids = [d.id for d in archseries]723 archseries_ids = [d.id for d in archseries]
723724
724 return Build.select(725 return BinaryPackageBuild.select(
725 AND(Build.q.buildstate==BuildStatus.NEEDSBUILD,726 AND(BinaryPackageBuild.q.buildstate==BuildStatus.NEEDSBUILD,
726 IN(Build.q.distroarchseriesID, archseries_ids))727 IN(BinaryPackageBuild.q.distroarchseriesID, archseries_ids))
727 )728 )
728729
729 def handleOptionalParamsForBuildQueries(730 def handleOptionalParamsForBuildQueries(
@@ -775,7 +776,7 @@
775776
776 def getBuildsForBuilder(self, builder_id, status=None, name=None,777 def getBuildsForBuilder(self, builder_id, status=None, name=None,
777 arch_tag=None, user=None):778 arch_tag=None, user=None):
778 """See `IBuildSet`."""779 """See `IBinaryPackageBuildSet`."""
779 queries = []780 queries = []
780 clauseTables = []781 clauseTables = []
781782
@@ -801,12 +802,13 @@
801802
802 queries.append("builder=%s" % builder_id)803 queries.append("builder=%s" % builder_id)
803804
804 return Build.select(" AND ".join(queries), clauseTables=clauseTables,805 return BinaryPackageBuild.select(
805 orderBy=["-Build.datebuilt", "id"])806 " AND ".join(queries), clauseTables=clauseTables,
807 orderBy=["-Build.datebuilt", "id"])
806808
807 def getBuildsForArchive(self, archive, status=None, name=None,809 def getBuildsForArchive(self, archive, status=None, name=None,
808 pocket=None, arch_tag=None):810 pocket=None, arch_tag=None):
809 """See `IBuildSet`."""811 """See `IBinaryPackageBuildSet`."""
810 queries = []812 queries = []
811 clauseTables = []813 clauseTables = []
812814
@@ -828,17 +830,18 @@
828 clause = " AND ".join(queries)830 clause = " AND ".join(queries)
829831
830 return self._decorate_with_prejoins(832 return self._decorate_with_prejoins(
831 Build.select(clause, clauseTables=clauseTables, orderBy=orderBy))833 BinaryPackageBuild.select(
834 clause, clauseTables=clauseTables, orderBy=orderBy))
832835
833 def getBuildsByArchIds(self, arch_ids, status=None, name=None,836 def getBuildsByArchIds(self, arch_ids, status=None, name=None,
834 pocket=None):837 pocket=None):
835 """See `IBuildSet`."""838 """See `IBinaryPackageBuildSet`."""
836 # If not distroarchseries was found return empty list839 # If not distroarchseries was found return empty list
837 if not arch_ids:840 if not arch_ids:
838 # XXX cprov 2006-09-08: returning and empty SelectResult to make841 # XXX cprov 2006-09-08: returning and empty SelectResult to make
839 # the callsites happy as bjorn suggested. However it would be842 # the callsites happy as bjorn suggested. However it would be
840 # much clearer if we have something like SQLBase.empty() for this843 # much clearer if we have something like SQLBase.empty() for this
841 return Build.select("2=1")844 return BinaryPackageBuild.select("2=1")
842845
843 clauseTables = []846 clauseTables = []
844847
@@ -894,7 +897,7 @@
894 sqlvalues(ArchivePurpose.PRIMARY, ArchivePurpose.PARTNER)))897 sqlvalues(ArchivePurpose.PRIMARY, ArchivePurpose.PARTNER)))
895898
896 return self._decorate_with_prejoins(899 return self._decorate_with_prejoins(
897 Build.select(' AND '.join(condition_clauses),900 BinaryPackageBuild.select(' AND '.join(condition_clauses),
898 clauseTables=clauseTables, orderBy=orderBy))901 clauseTables=clauseTables, orderBy=orderBy))
899902
900 def _decorate_with_prejoins(self, result_set):903 def _decorate_with_prejoins(self, result_set):
@@ -906,12 +909,12 @@
906 return decorated_results909 return decorated_results
907910
908 def retryDepWaiting(self, distroarchseries):911 def retryDepWaiting(self, distroarchseries):
909 """See `IBuildSet`. """912 """See `IBinaryPackageBuildSet`. """
910 # XXX cprov 20071122: use the root logger once bug 164203 is fixed.913 # XXX cprov 20071122: use the root logger once bug 164203 is fixed.
911 logger = logging.getLogger('retry-depwait')914 logger = logging.getLogger('retry-depwait')
912915
913 # Get the MANUALDEPWAIT records for all archives.916 # Get the MANUALDEPWAIT records for all archives.
914 candidates = Build.selectBy(917 candidates = BinaryPackageBuild.selectBy(
915 buildstate=BuildStatus.MANUALDEPWAIT,918 buildstate=BuildStatus.MANUALDEPWAIT,
916 distroarchseries=distroarchseries)919 distroarchseries=distroarchseries)
917920
@@ -937,7 +940,7 @@
937940
938 def getBuildsBySourcePackageRelease(self, sourcepackagerelease_ids,941 def getBuildsBySourcePackageRelease(self, sourcepackagerelease_ids,
939 buildstate=None):942 buildstate=None):
940 """See `IBuildSet`."""943 """See `IBinaryPackageBuildSet`."""
941 if (sourcepackagerelease_ids is None or944 if (sourcepackagerelease_ids is None or
942 len(sourcepackagerelease_ids) == 0):945 len(sourcepackagerelease_ids) == 0):
943 return []946 return []
@@ -951,12 +954,12 @@
951 if buildstate is not None:954 if buildstate is not None:
952 query += "AND buildstate = %s" % sqlvalues(buildstate)955 query += "AND buildstate = %s" % sqlvalues(buildstate)
953956
954 return Build.select(957 return BinaryPackageBuild.select(
955 query, orderBy=["-datecreated", "id"],958 query, orderBy=["-datecreated", "id"],
956 clauseTables=["Archive"])959 clauseTables=["Archive"])
957960
958 def getStatusSummaryForBuilds(self, builds):961 def getStatusSummaryForBuilds(self, builds):
959 """See `IBuildSet`."""962 """See `IBinaryPackageBuildSet`."""
960 # Create a small helper function to collect the builds for a given963 # Create a small helper function to collect the builds for a given
961 # list of build states:964 # list of build states:
962 def collect_builds(*states):965 def collect_builds(*states):
@@ -1024,26 +1027,27 @@
1024 build_ids = [build.id for build in results]1027 build_ids = [build.id for build in results]
1025 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)1028 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
1026 origin = (1029 origin = (
1027 Build,1030 BinaryPackageBuild,
1028 LeftJoin(1031 LeftJoin(
1029 SourcePackageRelease,1032 SourcePackageRelease,
1030 SourcePackageRelease.id == Build.sourcepackagereleaseID),1033 (SourcePackageRelease.id ==
1034 BinaryPackageBuild.sourcepackagereleaseID)),
1031 LeftJoin(1035 LeftJoin(
1032 SourcePackageName,1036 SourcePackageName,
1033 SourcePackageName.id1037 SourcePackageName.id
1034 == SourcePackageRelease.sourcepackagenameID),1038 == SourcePackageRelease.sourcepackagenameID),
1035 LeftJoin(LibraryFileAlias,1039 LeftJoin(LibraryFileAlias,
1036 LibraryFileAlias.id == Build.buildlogID),1040 LibraryFileAlias.id == BinaryPackageBuild.buildlogID),
1037 LeftJoin(LibraryFileContent,1041 LeftJoin(LibraryFileContent,
1038 LibraryFileContent.id == LibraryFileAlias.contentID),1042 LibraryFileContent.id == LibraryFileAlias.contentID),
1039 LeftJoin(1043 LeftJoin(
1040 Builder,1044 Builder,
1041 Builder.id == Build.builderID),1045 Builder.id == BinaryPackageBuild.builderID),
1042 )1046 )
1043 result_set = store.using(*origin).find(1047 result_set = store.using(*origin).find(
1044 (SourcePackageRelease, LibraryFileAlias, SourcePackageName,1048 (SourcePackageRelease, LibraryFileAlias, SourcePackageName,
1045 LibraryFileContent, Builder),1049 LibraryFileContent, Builder),
1046 In(Build.id, build_ids))1050 In(BinaryPackageBuild.id, build_ids))
10471051
1048 # Force query execution so that the ancillary data gets fetched1052 # Force query execution so that the ancillary data gets fetched
1049 # and added to StupidCache.1053 # and added to StupidCache.
@@ -1053,36 +1057,38 @@
1053 return list(result_set)1057 return list(result_set)
10541058
1055 def getByQueueEntry(self, queue_entry):1059 def getByQueueEntry(self, queue_entry):
1056 """See `IBuildSet`."""1060 """See `IBinaryPackageBuildSet`."""
1057 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)1061 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
1058 result_set = store.find(1062 result_set = store.find(
1059 Build,1063 BinaryPackageBuild,
1060 BuildPackageJob.build == Build.id,1064 BuildPackageJob.build == BinaryPackageBuild.id,
1061 BuildPackageJob.job == BuildQueue.jobID,1065 BuildPackageJob.job == BuildQueue.jobID,
1062 BuildQueue.job == queue_entry.job)1066 BuildQueue.job == queue_entry.job)
10631067
1064 return result_set.one()1068 return result_set.one()
10651069
1066 def getQueueEntriesForBuildIDs(self, build_ids):1070 def getQueueEntriesForBuildIDs(self, build_ids):
1067 """See `IBuildSet`."""1071 """See `IBinaryPackageBuildSet`."""
1068 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)1072 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
10691073
1070 origin = (1074 origin = (
1071 BuildPackageJob,1075 BuildPackageJob,
1072 Join(BuildQueue, BuildPackageJob.job == BuildQueue.jobID),1076 Join(BuildQueue, BuildPackageJob.job == BuildQueue.jobID),
1073 Join(Build, BuildPackageJob.build == Build.id),1077 Join(
1078 BinaryPackageBuild,
1079 BuildPackageJob.build == BinaryPackageBuild.id),
1074 LeftJoin(1080 LeftJoin(
1075 Builder,1081 Builder,
1076 BuildQueue.builderID == Builder.id),1082 BuildQueue.builderID == Builder.id),
1077 )1083 )
1078 result_set = store.using(*origin).find(1084 result_set = store.using(*origin).find(
1079 (BuildQueue, Builder, BuildPackageJob),1085 (BuildQueue, Builder, BuildPackageJob),
1080 In(Build.id, build_ids))1086 In(BinaryPackageBuild.id, build_ids))
10811087
1082 return result_set1088 return result_set
10831089
1084 def calculateCandidates(self, archseries):1090 def calculateCandidates(self, archseries):
1085 """See `IBuildSet`."""1091 """See `IBinaryPackageBuildSet`."""
1086 if not archseries:1092 if not archseries:
1087 raise AssertionError("Given 'archseries' cannot be None/empty.")1093 raise AssertionError("Given 'archseries' cannot be None/empty.")
10881094
10891095
=== modified file 'lib/lp/soyuz/model/binarypackagerelease.py'
--- lib/lp/soyuz/model/binarypackagerelease.py 2010-03-15 23:02:21 +0000
+++ lib/lp/soyuz/model/binarypackagerelease.py 2010-04-13 06:59:32 +0000
@@ -38,7 +38,8 @@
38 version = StringCol(dbName='version', notNull=True)38 version = StringCol(dbName='version', notNull=True)
39 summary = StringCol(dbName='summary', notNull=True, default="")39 summary = StringCol(dbName='summary', notNull=True, default="")
40 description = StringCol(dbName='description', notNull=True)40 description = StringCol(dbName='description', notNull=True)
41 build = ForeignKey(dbName='build', foreignKey='Build', notNull=True)41 build = ForeignKey(
42 dbName='build', foreignKey='BinaryPackageBuild', notNull=True)
42 binpackageformat = EnumCol(dbName='binpackageformat', notNull=True,43 binpackageformat = EnumCol(dbName='binpackageformat', notNull=True,
43 schema=BinaryPackageFormat)44 schema=BinaryPackageFormat)
44 component = ForeignKey(dbName='component', foreignKey='Component',45 component = ForeignKey(dbName='component', foreignKey='Component',
4546
=== modified file 'lib/lp/soyuz/model/buildpackagejob.py'
--- lib/lp/soyuz/model/buildpackagejob.py 2010-03-25 14:38:25 +0000
+++ lib/lp/soyuz/model/buildpackagejob.py 2010-04-13 06:59:32 +0000
@@ -22,7 +22,7 @@
22from lp.registry.interfaces.sourcepackage import SourcePackageUrgency22from lp.registry.interfaces.sourcepackage import SourcePackageUrgency
23from lp.registry.interfaces.pocket import PackagePublishingPocket23from lp.registry.interfaces.pocket import PackagePublishingPocket
24from lp.soyuz.interfaces.archive import ArchivePurpose24from lp.soyuz.interfaces.archive import ArchivePurpose
25from lp.soyuz.interfaces.build import IBuildSet25from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
26from lp.soyuz.interfaces.buildpackagejob import IBuildPackageJob26from lp.soyuz.interfaces.buildpackagejob import IBuildPackageJob
27from lp.soyuz.interfaces.publishing import PackagePublishingStatus27from lp.soyuz.interfaces.publishing import PackagePublishingStatus
2828
@@ -38,7 +38,7 @@
38 job = Reference(job_id, 'Job.id')38 job = Reference(job_id, 'Job.id')
3939
40 build_id = Int(name='build', allow_none=False)40 build_id = Int(name='build', allow_none=False)
41 build = Reference(build_id, 'Build.id')41 build = Reference(build_id, 'BinaryPackageBuild.id')
4242
43 def score(self):43 def score(self):
44 """See `IBuildPackageJob`."""44 """See `IBuildPackageJob`."""
@@ -242,7 +242,7 @@
242 # Builds in those situation should not be built because they will242 # Builds in those situation should not be built because they will
243 # be wasting build-time, the former case already has a newer source243 # be wasting build-time, the former case already has a newer source
244 # and the latter could not be built in DAK.244 # and the latter could not be built in DAK.
245 build_set = getUtility(IBuildSet)245 build_set = getUtility(IBinaryPackageBuildSet)
246246
247 build = build_set.getByQueueEntry(job)247 build = build_set.getByQueueEntry(job)
248 if build.pocket == PackagePublishingPocket.SECURITY:248 if build.pocket == PackagePublishingPocket.SECURITY:
249249
=== modified file 'lib/lp/soyuz/model/distributionsourcepackagerelease.py'
--- lib/lp/soyuz/model/distributionsourcepackagerelease.py 2009-09-18 12:18:51 +0000
+++ lib/lp/soyuz/model/distributionsourcepackagerelease.py 2010-04-13 06:59:32 +0000
@@ -29,7 +29,7 @@
29 DistroSeriesBinaryPackage)29 DistroSeriesBinaryPackage)
30from lp.soyuz.model.publishing import (30from lp.soyuz.model.publishing import (
31 BinaryPackagePublishingHistory)31 BinaryPackagePublishingHistory)
32from lp.soyuz.model.build import Build32from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
33from lp.soyuz.model.publishing import \33from lp.soyuz.model.publishing import \
34 SourcePackagePublishingHistory34 SourcePackagePublishingHistory
35from lp.soyuz.interfaces.archive import MAIN_ARCHIVE_PURPOSES35from lp.soyuz.interfaces.archive import MAIN_ARCHIVE_PURPOSES
@@ -100,8 +100,9 @@
100 # distribution that were built for a PPA but have been published100 # distribution that were built for a PPA but have been published
101 # in a main archive.101 # in a main archive.
102 builds_for_distro_exprs = (102 builds_for_distro_exprs = (
103 Build.sourcepackagerelease == self.sourcepackagerelease,103 (BinaryPackageBuild.sourcepackagerelease ==
104 Build.distroarchseries == DistroArchSeries.id,104 self.sourcepackagerelease),
105 BinaryPackageBuild.distroarchseries == DistroArchSeries.id,
105 DistroArchSeries.distroseries == DistroSeries.id,106 DistroArchSeries.distroseries == DistroSeries.id,
106 DistroSeries.distribution == self.distribution,107 DistroSeries.distribution == self.distribution,
107 )108 )
@@ -109,9 +110,9 @@
109 # First, get all the builds built in a main archive (this will110 # First, get all the builds built in a main archive (this will
110 # include new and failed builds.)111 # include new and failed builds.)
111 builds_built_in_main_archives = store.find(112 builds_built_in_main_archives = store.find(
112 Build,113 BinaryPackageBuild,
113 builds_for_distro_exprs,114 builds_for_distro_exprs,
114 Build.archive == Archive.id,115 BinaryPackageBuild.archive == Archive.id,
115 Archive.purpose.is_in(MAIN_ARCHIVE_PURPOSES))116 Archive.purpose.is_in(MAIN_ARCHIVE_PURPOSES))
116117
117 # Next get all the builds that have a binary published in the118 # Next get all the builds that have a binary published in the
@@ -119,9 +120,9 @@
119 # query, but not the new/failed ones. It will also include120 # query, but not the new/failed ones. It will also include
120 # ppa builds that have been published in main archives.121 # ppa builds that have been published in main archives.
121 builds_published_in_main_archives = store.find(122 builds_published_in_main_archives = store.find(
122 Build,123 BinaryPackageBuild,
123 builds_for_distro_exprs,124 builds_for_distro_exprs,
124 BinaryPackageRelease.build == Build.id,125 BinaryPackageRelease.build == BinaryPackageBuild.id,
125 BinaryPackagePublishingHistory.binarypackagerelease ==126 BinaryPackagePublishingHistory.binarypackagerelease ==
126 BinaryPackageRelease.id,127 BinaryPackageRelease.id,
127 BinaryPackagePublishingHistory.archive == Archive.id,128 BinaryPackagePublishingHistory.archive == Archive.id,
@@ -130,7 +131,8 @@
130131
131 return builds_built_in_main_archives.union(132 return builds_built_in_main_archives.union(
132 builds_published_in_main_archives).order_by(133 builds_published_in_main_archives).order_by(
133 Desc(Build.datecreated), Desc(Build.id))134 Desc(
135 BinaryPackageBuild.datecreated), Desc(BinaryPackageBuild.id))
134136
135 @property137 @property
136 def binary_package_names(self):138 def binary_package_names(self):
137139
=== modified file 'lib/lp/soyuz/model/distroarchseries.py'
--- lib/lp/soyuz/model/distroarchseries.py 2010-02-22 10:31:48 +0000
+++ lib/lp/soyuz/model/distroarchseries.py 2010-04-13 06:59:32 +0000
@@ -26,7 +26,7 @@
26from lp.registry.interfaces.pocket import PackagePublishingPocket26from lp.registry.interfaces.pocket import PackagePublishingPocket
27from lp.soyuz.interfaces.binarypackagename import IBinaryPackageName27from lp.soyuz.interfaces.binarypackagename import IBinaryPackageName
28from lp.soyuz.interfaces.binarypackagerelease import IBinaryPackageReleaseSet28from lp.soyuz.interfaces.binarypackagerelease import IBinaryPackageReleaseSet
29from lp.soyuz.interfaces.build import IBuildSet29from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
30from lp.soyuz.interfaces.buildrecords import IHasBuildRecords30from lp.soyuz.interfaces.buildrecords import IHasBuildRecords
31from lp.soyuz.interfaces.distroarchseries import (31from lp.soyuz.interfaces.distroarchseries import (
32 IDistroArchSeries, IDistroArchSeriesSet, IPocketChroot)32 IDistroArchSeries, IDistroArchSeriesSet, IPocketChroot)
@@ -240,8 +240,9 @@
240 if arch_tag is not None and arch_tag != self.architecturetag:240 if arch_tag is not None and arch_tag != self.architecturetag:
241 return EmptyResultSet()241 return EmptyResultSet()
242242
243 # Use the facility provided by IBuildSet to retrieve the records.243 # Use the facility provided by IBinaryPackageBuildSet to
244 return getUtility(IBuildSet).getBuildsByArchIds(244 # retrieve the records.
245 return getUtility(IBinaryPackageBuildSet).getBuildsByArchIds(
245 [self.id], build_state, name, pocket)246 [self.id], build_state, name, pocket)
246247
247 def getReleasedPackages(self, binary_name, pocket=None,248 def getReleasedPackages(self, binary_name, pocket=None,
248249
=== modified file 'lib/lp/soyuz/model/publishedpackage.py'
--- lib/lp/soyuz/model/publishedpackage.py 2009-06-25 04:06:00 +0000
+++ lib/lp/soyuz/model/publishedpackage.py 2010-04-13 06:59:32 +0000
@@ -53,7 +53,7 @@
53 binarypackagesummary = StringCol(immutable=True)53 binarypackagesummary = StringCol(immutable=True)
54 binarypackagedescription = StringCol(immutable=True)54 binarypackagedescription = StringCol(immutable=True)
55 binarypackageversion = StringCol(immutable=True)55 binarypackageversion = StringCol(immutable=True)
56 build = ForeignKey(foreignKey='Build', dbName='build')56 build = ForeignKey(foreignKey='BinaryPackageBuild', dbName='build')
57 datebuilt = UtcDateTimeCol(immutable=True)57 datebuilt = UtcDateTimeCol(immutable=True)
58 sourcepackagerelease = ForeignKey(dbName="sourcepackagerelease",58 sourcepackagerelease = ForeignKey(dbName="sourcepackagerelease",
59 foreignKey="SourcePackageRelease",59 foreignKey="SourcePackageRelease",
6060
=== modified file 'lib/lp/soyuz/model/publishing.py'
--- lib/lp/soyuz/model/publishing.py 2010-04-03 03:29:23 +0000
+++ lib/lp/soyuz/model/publishing.py 2010-04-13 06:59:32 +0000
@@ -54,7 +54,8 @@
54from lp.soyuz.model.packagediff import PackageDiff54from lp.soyuz.model.packagediff import PackageDiff
55from lp.soyuz.interfaces.archive import ArchivePurpose55from lp.soyuz.interfaces.archive import ArchivePurpose
56from lp.soyuz.interfaces.archivearch import IArchiveArchSet56from lp.soyuz.interfaces.archivearch import IArchiveArchSet
57from lp.soyuz.interfaces.build import BuildSetStatus, IBuildSet57from lp.soyuz.interfaces.binarypackagebuild import (
58 BuildSetStatus, IBinaryPackageBuildSet)
58from lp.soyuz.interfaces.component import IComponentSet59from lp.soyuz.interfaces.component import IComponentSet
59from lp.soyuz.interfaces.publishing import (60from lp.soyuz.interfaces.publishing import (
60 active_publishing_status, IBinaryPackageFilePublishing,61 active_publishing_status, IBinaryPackageFilePublishing,
@@ -510,19 +511,19 @@
510 return the_url511 return the_url
511512
512 def _getAllowedArchitectures(self, available_archs):513 def _getAllowedArchitectures(self, available_archs):
513 """Filter out any restricted architectures not specifically allowed 514 """Filter out any restricted architectures not specifically allowed
514 for an archive.515 for an archive.
515516
516 :param available_archs: Architectures to consider517 :param available_archs: Architectures to consider
517 :return: Sequence of `IDistroArch` instances.518 :return: Sequence of `IDistroArch` instances.
518 """519 """
519 associated_proc_families = [520 associated_proc_families = [
520 archivearch.processorfamily for archivearch 521 archivearch.processorfamily for archivearch
521 in getUtility(IArchiveArchSet).getByArchive(self.archive)]522 in getUtility(IArchiveArchSet).getByArchive(self.archive)]
522 # Return all distroarches with unrestricted processor families or with523 # Return all distroarches with unrestricted processor families or with
523 # processor families the archive is explicitly associated with.524 # processor families the archive is explicitly associated with.
524 return [distroarch for distroarch in available_archs525 return [distroarch for distroarch in available_archs
525 if not distroarch.processorfamily.restricted or 526 if not distroarch.processorfamily.restricted or
526 distroarch.processorfamily in associated_proc_families]527 distroarch.processorfamily in associated_proc_families]
527528
528 def createMissingBuilds(self, architectures_available=None,529 def createMissingBuilds(self, architectures_available=None,
@@ -553,8 +554,8 @@
553 def _createMissingBuildForArchitecture(self, arch, logger=None):554 def _createMissingBuildForArchitecture(self, arch, logger=None):
554 """Create a build for a given architecture if it doesn't exist yet.555 """Create a build for a given architecture if it doesn't exist yet.
555556
556 Return the just-created `IBuild` record already scored or None557 Return the just-created `IBinaryPackageBuild` record already
557 if a suitable build is already present.558 scored or None if a suitable build is already present.
558 """559 """
559 build_candidate = self.sourcepackagerelease.getBuildByArch(560 build_candidate = self.sourcepackagerelease.getBuildByArch(
560 arch, self.archive)561 arch, self.archive)
@@ -804,8 +805,8 @@
804 datepublished = UtcDateTimeCol(default=None)805 datepublished = UtcDateTimeCol(default=None)
805 datecreated = UtcDateTimeCol(default=UTC_NOW)806 datecreated = UtcDateTimeCol(default=UTC_NOW)
806 datesuperseded = UtcDateTimeCol(default=None)807 datesuperseded = UtcDateTimeCol(default=None)
807 supersededby = ForeignKey(foreignKey='Build', dbName='supersededby',808 supersededby = ForeignKey(
808 default=None)809 foreignKey='BinaryPackageBuild', dbName='supersededby', default=None)
809 datemadepending = UtcDateTimeCol(default=None)810 datemadepending = UtcDateTimeCol(default=None)
810 dateremoved = UtcDateTimeCol(default=None)811 dateremoved = UtcDateTimeCol(default=None)
811 pocket = EnumCol(dbName='pocket', schema=PackagePublishingPocket)812 pocket = EnumCol(dbName='pocket', schema=PackagePublishingPocket)
@@ -1167,7 +1168,7 @@
1167 # Import Build and DistroArchSeries locally to avoid circular1168 # Import Build and DistroArchSeries locally to avoid circular
1168 # imports, since that Build uses SourcePackagePublishingHistory1169 # imports, since that Build uses SourcePackagePublishingHistory
1169 # and DistroArchSeries uses BinaryPackagePublishingHistory.1170 # and DistroArchSeries uses BinaryPackagePublishingHistory.
1170 from lp.soyuz.model.build import Build1171 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
1171 from lp.soyuz.model.distroarchseries import (1172 from lp.soyuz.model.distroarchseries import (
1172 DistroArchSeries)1173 DistroArchSeries)
11731174
@@ -1182,41 +1183,43 @@
1182 # ensure that the result is limited to builds in those states.1183 # ensure that the result is limited to builds in those states.
1183 if build_states is not None:1184 if build_states is not None:
1184 extra_exprs.append(1185 extra_exprs.append(
1185 Build.buildstate.is_in(build_states))1186 BinaryPackageBuild.buildstate.is_in(build_states))
11861187
1187 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)1188 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
11881189
1189 # We'll be looking for builds in the same distroseries as the1190 # We'll be looking for builds in the same distroseries as the
1190 # SPPH for the same release.1191 # SPPH for the same release.
1191 builds_for_distroseries_expr = (1192 builds_for_distroseries_expr = (
1192 Build.distroarchseriesID == DistroArchSeries.id,1193 BinaryPackageBuild.distroarchseriesID == DistroArchSeries.id,
1193 SourcePackagePublishingHistory.distroseriesID ==1194 SourcePackagePublishingHistory.distroseriesID ==
1194 DistroArchSeries.distroseriesID,1195 DistroArchSeries.distroseriesID,
1195 SourcePackagePublishingHistory.sourcepackagereleaseID ==1196 SourcePackagePublishingHistory.sourcepackagereleaseID ==
1196 Build.sourcepackagereleaseID,1197 BinaryPackageBuild.sourcepackagereleaseID,
1197 In(SourcePackagePublishingHistory.id, source_publication_ids)1198 In(SourcePackagePublishingHistory.id, source_publication_ids)
1198 )1199 )
11991200
1200 # First, we'll find the builds that were built in the same1201 # First, we'll find the builds that were built in the same
1201 # archive context as the published sources.1202 # archive context as the published sources.
1202 builds_in_same_archive = store.find(1203 builds_in_same_archive = store.find(
1203 Build,1204 BinaryPackageBuild,
1204 builds_for_distroseries_expr,1205 builds_for_distroseries_expr,
1205 SourcePackagePublishingHistory.archiveID == Build.archiveID,1206 (SourcePackagePublishingHistory.archiveID ==
1207 BinaryPackageBuild.archiveID),
1206 *extra_exprs)1208 *extra_exprs)
12071209
1208 # Next get all the builds that have a binary published in the1210 # Next get all the builds that have a binary published in the
1209 # same archive... even though the build was not built in1211 # same archive... even though the build was not built in
1210 # the same context archive.1212 # the same context archive.
1211 builds_copied_into_archive = store.find(1213 builds_copied_into_archive = store.find(
1212 Build,1214 BinaryPackageBuild,
1213 builds_for_distroseries_expr,1215 builds_for_distroseries_expr,
1214 SourcePackagePublishingHistory.archiveID != Build.archiveID,1216 (SourcePackagePublishingHistory.archiveID !=
1217 BinaryPackageBuild.archiveID),
1215 BinaryPackagePublishingHistory.archive ==1218 BinaryPackagePublishingHistory.archive ==
1216 SourcePackagePublishingHistory.archiveID,1219 SourcePackagePublishingHistory.archiveID,
1217 BinaryPackagePublishingHistory.binarypackagerelease ==1220 BinaryPackagePublishingHistory.binarypackagerelease ==
1218 BinaryPackageRelease.id,1221 BinaryPackageRelease.id,
1219 BinaryPackageRelease.build == Build.id,1222 BinaryPackageRelease.build == BinaryPackageBuild.id,
1220 *extra_exprs)1223 *extra_exprs)
12211224
1222 builds_union = builds_copied_into_archive.union(1225 builds_union = builds_copied_into_archive.union(
@@ -1228,7 +1231,10 @@
1228 # can't sort on SourcePackagePublishingHistory.id after the1231 # can't sort on SourcePackagePublishingHistory.id after the
1229 # union. See bug 443353 for details.1232 # union. See bug 443353 for details.
1230 find_spec = (1233 find_spec = (
1231 SourcePackagePublishingHistory, Build, DistroArchSeries)1234 SourcePackagePublishingHistory,
1235 BinaryPackageBuild,
1236 DistroArchSeries,
1237 )
12321238
1233 # Storm doesn't let us do builds_union.values('id') -1239 # Storm doesn't let us do builds_union.values('id') -
1234 # ('Union' object has no attribute 'columns'). So instead1240 # ('Union' object has no attribute 'columns'). So instead
@@ -1237,7 +1243,7 @@
12371243
1238 result_set = store.find(1244 result_set = store.find(
1239 find_spec, builds_for_distroseries_expr,1245 find_spec, builds_for_distroseries_expr,
1240 Build.id.is_in(build_ids))1246 BinaryPackageBuild.id.is_in(build_ids))
12411247
1242 return result_set.order_by(1248 return result_set.order_by(
1243 SourcePackagePublishingHistory.id,1249 SourcePackagePublishingHistory.id,
@@ -1285,14 +1291,14 @@
1285 # to avoid circular imports, since Build uses1291 # to avoid circular imports, since Build uses
1286 # SourcePackagePublishingHistory, BinaryPackageRelease uses Build1292 # SourcePackagePublishingHistory, BinaryPackageRelease uses Build
1287 # and DistroArchSeries uses BinaryPackagePublishingHistory.1293 # and DistroArchSeries uses BinaryPackagePublishingHistory.
1288 from lp.soyuz.model.build import Build1294 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
1289 from lp.soyuz.model.distroarchseries import (1295 from lp.soyuz.model.distroarchseries import (
1290 DistroArchSeries)1296 DistroArchSeries)
12911297
1292 join = [1298 join = [
1293 SourcePackagePublishingHistory.sourcepackagereleaseID ==1299 SourcePackagePublishingHistory.sourcepackagereleaseID ==
1294 Build.sourcepackagereleaseID,1300 BinaryPackageBuild.sourcepackagereleaseID,
1295 BinaryPackageRelease.build == Build.id,1301 BinaryPackageRelease.build == BinaryPackageBuild.id,
1296 BinaryPackageRelease.binarypackagenameID ==1302 BinaryPackageRelease.binarypackagenameID ==
1297 BinaryPackageName.id,1303 BinaryPackageName.id,
1298 SourcePackagePublishingHistory.distroseriesID ==1304 SourcePackagePublishingHistory.distroseriesID ==
@@ -1326,7 +1332,7 @@
1326 # to avoid circular imports, since Build uses1332 # to avoid circular imports, since Build uses
1327 # SourcePackagePublishingHistory and DistroArchSeries uses1333 # SourcePackagePublishingHistory and DistroArchSeries uses
1328 # BinaryPackagePublishingHistory.1334 # BinaryPackagePublishingHistory.
1329 from lp.soyuz.model.build import Build1335 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
1330 from lp.soyuz.model.distroarchseries import (1336 from lp.soyuz.model.distroarchseries import (
1331 DistroArchSeries)1337 DistroArchSeries)
13321338
@@ -1338,12 +1344,15 @@
1338 one_or_more_source_publications)1344 one_or_more_source_publications)
13391345
1340 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)1346 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
1341 published_builds = store.find(1347 published_builds = store.find((
1342 (SourcePackagePublishingHistory, Build, DistroArchSeries),1348 SourcePackagePublishingHistory,
1349 BinaryPackageBuild,
1350 DistroArchSeries
1351 ),
1343 self._getSourceBinaryJoinForSources(1352 self._getSourceBinaryJoinForSources(
1344 source_publication_ids, active_binaries_only=False),1353 source_publication_ids, active_binaries_only=False),
1345 BinaryPackagePublishingHistory.datepublished != None,1354 BinaryPackagePublishingHistory.datepublished != None,
1346 Build.buildstate.is_in(build_states))1355 BinaryPackageBuild.buildstate.is_in(build_states))
13471356
1348 published_builds.order_by(1357 published_builds.order_by(
1349 SourcePackagePublishingHistory.id,1358 SourcePackagePublishingHistory.id,
@@ -1361,7 +1370,7 @@
1361 """See `IPublishingSet`."""1370 """See `IPublishingSet`."""
1362 # Import Build locally to avoid circular imports, since that1371 # Import Build locally to avoid circular imports, since that
1363 # Build already imports SourcePackagePublishingHistory.1372 # Build already imports SourcePackagePublishingHistory.
1364 from lp.soyuz.model.build import Build1373 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
13651374
1366 source_publication_ids = self._extractIDs(1375 source_publication_ids = self._extractIDs(
1367 one_or_more_source_publications)1376 one_or_more_source_publications)
@@ -1374,9 +1383,9 @@
1374 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,1383 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,
1375 BinaryPackageFile.binarypackagerelease ==1384 BinaryPackageFile.binarypackagerelease ==
1376 BinaryPackageRelease.id,1385 BinaryPackageRelease.id,
1377 BinaryPackageRelease.buildID == Build.id,1386 BinaryPackageRelease.buildID == BinaryPackageBuild.id,
1378 SourcePackagePublishingHistory.sourcepackagereleaseID ==1387 SourcePackagePublishingHistory.sourcepackagereleaseID ==
1379 Build.sourcepackagereleaseID,1388 BinaryPackageBuild.sourcepackagereleaseID,
1380 BinaryPackagePublishingHistory.binarypackagereleaseID ==1389 BinaryPackagePublishingHistory.binarypackagereleaseID ==
1381 BinaryPackageRelease.id,1390 BinaryPackageRelease.id,
1382 BinaryPackagePublishingHistory.archiveID ==1391 BinaryPackagePublishingHistory.archiveID ==
@@ -1542,8 +1551,8 @@
1542 used in the calculation.1551 used in the calculation.
1543 """1552 """
1544 builds = source_publication.getBuilds()1553 builds = source_publication.getBuilds()
1545 summary = getUtility(IBuildSet).getStatusSummaryForBuilds(1554 summary = getUtility(
1546 builds)1555 IBinaryPackageBuildSet).getStatusSummaryForBuilds(builds)
15471556
1548 # We only augment the result if:1557 # We only augment the result if:
1549 # 1. we (the SPPH) are ourselves in an active publishing state, and1558 # 1. we (the SPPH) are ourselves in an active publishing state, and
15501559
=== modified file 'lib/lp/soyuz/model/queue.py'
--- lib/lp/soyuz/model/queue.py 2010-03-25 03:44:59 +0000
+++ lib/lp/soyuz/model/queue.py 2010-04-13 06:59:32 +0000
@@ -1370,7 +1370,7 @@
1370 foreignKey='PackageUpload'1370 foreignKey='PackageUpload'
1371 )1371 )
13721372
1373 build = ForeignKey(dbName='build', foreignKey='Build')1373 build = ForeignKey(dbName='build', foreignKey='BinaryPackageBuild')
13741374
1375 def checkComponentAndSection(self):1375 def checkComponentAndSection(self):
1376 """See `IPackageUploadBuild`."""1376 """See `IPackageUploadBuild`."""
13771377
=== modified file 'lib/lp/soyuz/model/sourcepackagerelease.py'
--- lib/lp/soyuz/model/sourcepackagerelease.py 2010-03-20 23:16:42 +0000
+++ lib/lp/soyuz/model/sourcepackagerelease.py 2010-04-13 06:59:32 +0000
@@ -45,7 +45,7 @@
45 PackageDiffAlreadyRequested, PackageDiffStatus)45 PackageDiffAlreadyRequested, PackageDiffStatus)
46from lp.soyuz.interfaces.publishing import PackagePublishingStatus46from lp.soyuz.interfaces.publishing import PackagePublishingStatus
47from lp.soyuz.interfaces.sourcepackagerelease import ISourcePackageRelease47from lp.soyuz.interfaces.sourcepackagerelease import ISourcePackageRelease
48from lp.soyuz.model.build import Build48from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
49from lp.soyuz.model.files import SourcePackageReleaseFile49from lp.soyuz.model.files import SourcePackageReleaseFile
50from lp.soyuz.model.packagediff import PackageDiff50from lp.soyuz.model.packagediff import PackageDiff
51from lp.soyuz.model.publishing import SourcePackagePublishingHistory51from lp.soyuz.model.publishing import SourcePackagePublishingHistory
@@ -144,7 +144,7 @@
144 # when copy-package works for copying packages across archives,144 # when copy-package works for copying packages across archives,
145 # a build may well have a different archive to the corresponding145 # a build may well have a different archive to the corresponding
146 # sourcepackagerelease.146 # sourcepackagerelease.
147 return Build.select("""147 return BinaryPackageBuild.select("""
148 sourcepackagerelease = %s AND148 sourcepackagerelease = %s AND
149 archive.id = build.archive AND149 archive.id = build.archive AND
150 archive.purpose IN %s150 archive.purpose IN %s
@@ -327,7 +327,7 @@
327 # same datecreated.327 # same datecreated.
328 datecreated = datetime.datetime.now(pytz.timezone('UTC'))328 datecreated = datetime.datetime.now(pytz.timezone('UTC'))
329329
330 return Build(distroarchseries=distroarchseries,330 return BinaryPackageBuild(distroarchseries=distroarchseries,
331 sourcepackagerelease=self,331 sourcepackagerelease=self,
332 processor=processor,332 processor=processor,
333 buildstate=status,333 buildstate=status,
@@ -356,7 +356,7 @@
356 """ % sqlvalues(self, distroarchseries.architecturetag,356 """ % sqlvalues(self, distroarchseries.architecturetag,
357 distroarchseries, archive)357 distroarchseries, archive)
358358
359 select_results = Build.select(359 select_results = BinaryPackageBuild.select(
360 query, clauseTables=clauseTables, distinct=True,360 query, clauseTables=clauseTables, distinct=True,
361 orderBy='-Build.id')361 orderBy='-Build.id')
362362
@@ -440,7 +440,7 @@
440 # across all possible locations.440 # across all possible locations.
441 query = " AND ".join(queries)441 query = " AND ".join(queries)
442442
443 return Build.selectFirst(query, orderBy=['-datecreated'])443 return BinaryPackageBuild.selectFirst(query, orderBy=['-datecreated'])
444444
445 def override(self, component=None, section=None, urgency=None):445 def override(self, component=None, section=None, urgency=None):
446 """See ISourcePackageRelease."""446 """See ISourcePackageRelease."""
447447
=== modified file 'lib/lp/soyuz/scripts/buildd.py'
--- lib/lp/soyuz/scripts/buildd.py 2010-04-03 03:38:55 +0000
+++ lib/lp/soyuz/scripts/buildd.py 2010-04-13 06:59:32 +0000
@@ -23,7 +23,7 @@
23from lp.registry.interfaces.series import SeriesStatus23from lp.registry.interfaces.series import SeriesStatus
24from lp.services.scripts.base import (24from lp.services.scripts.base import (
25 LaunchpadCronScript, LaunchpadScriptFailure)25 LaunchpadCronScript, LaunchpadScriptFailure)
26from lp.soyuz.interfaces.build import IBuildSet26from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
27from lp.soyuz.pas import BuildDaemonPackagesArchSpecific27from lp.soyuz.pas import BuildDaemonPackagesArchSpecific
2828
29# XXX cprov 2009-04-16: This function should live in29# XXX cprov 2009-04-16: This function should live in
@@ -161,7 +161,7 @@
161 """Create missing Buildd Jobs. """161 """Create missing Buildd Jobs. """
162 self.logger.info("Scanning for build queue entries that are missing")162 self.logger.info("Scanning for build queue entries that are missing")
163163
164 buildset = getUtility(IBuildSet)164 buildset = getUtility(IBinaryPackageBuildSet)
165 builds = buildset.getPendingBuildsForArchSet(archseries)165 builds = buildset.getPendingBuildsForArchSet(archseries)
166166
167 if not builds:167 if not builds:
@@ -186,13 +186,15 @@
186 return186 return
187187
188 # Get the current build job candidates.188 # Get the current build job candidates.
189 candidates = getUtility(IBuildSet).calculateCandidates(archseries)189 candidates = getUtility(IBinaryPackageBuildSet).calculateCandidates(
190 archseries)
190191
191 self.logger.info("Found %d build in NEEDSBUILD state. Rescoring"192 self.logger.info("Found %d build in NEEDSBUILD state. Rescoring"
192 % candidates.count())193 % candidates.count())
193194
194 for job in candidates:195 for job in candidates:
195 uptodate_build = getUtility(IBuildSet).getByQueueEntry(job)196 uptodate_build = getUtility(
197 IBinaryPackageBuildSet).getByQueueEntry(job)
196 if uptodate_build.buildstate != BuildStatus.NEEDSBUILD:198 if uptodate_build.buildstate != BuildStatus.NEEDSBUILD:
197 continue199 continue
198 job.score()200 job.score()
@@ -250,7 +252,7 @@
250 "Could not find distribution: %s" % self.options.distribution)252 "Could not find distribution: %s" % self.options.distribution)
251253
252 # Iterate over all supported distroarchseries with available chroot.254 # Iterate over all supported distroarchseries with available chroot.
253 build_set = getUtility(IBuildSet)255 build_set = getUtility(IBinaryPackageBuildSet)
254 for distroseries in distribution:256 for distroseries in distribution:
255 if distroseries.status == SeriesStatus.OBSOLETE:257 if distroseries.status == SeriesStatus.OBSOLETE:
256 self.logger.debug(258 self.logger.debug(
257259
=== modified file 'lib/lp/soyuz/scripts/gina/handlers.py'
--- lib/lp/soyuz/scripts/gina/handlers.py 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/scripts/gina/handlers.py 2010-04-13 06:59:32 +0000
@@ -848,7 +848,7 @@
848 def ensureBuild(self, binary, srcpkg, distroarchinfo, archtag):848 def ensureBuild(self, binary, srcpkg, distroarchinfo, archtag):
849 """Ensure a build record."""849 """Ensure a build record."""
850 # Avoid circular imports.850 # Avoid circular imports.
851 from lp.soyuz.model.build import Build851 from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
852852
853 distroarchseries = distroarchinfo['distroarchseries']853 distroarchseries = distroarchinfo['distroarchseries']
854 distribution = distroarchseries.distroseries.distribution854 distribution = distroarchseries.distroseries.distribution
@@ -873,7 +873,7 @@
873 % quote(archtag))873 % quote(archtag))
874874
875 try:875 try:
876 build = Build.selectOne(query, clauseTables)876 build = BinaryPackageBuild.selectOne(query, clauseTables)
877 except SQLObjectMoreThanOneResultError:877 except SQLObjectMoreThanOneResultError:
878 # XXX kiko 2005-10-27: Untested.878 # XXX kiko 2005-10-27: Untested.
879 raise MultipleBuildError("More than one build was found "879 raise MultipleBuildError("More than one build was found "
@@ -896,7 +896,7 @@
896 key = None896 key = None
897897
898 processor = distroarchinfo['processor']898 processor = distroarchinfo['processor']
899 build = Build(processor=processor.id,899 build = BinaryPackageBuild(processor=processor.id,
900 distroarchseries=distroarchseries.id,900 distroarchseries=distroarchseries.id,
901 buildstate=BuildStatus.FULLYBUILT,901 buildstate=BuildStatus.FULLYBUILT,
902 sourcepackagerelease=srcpkg.id,902 sourcepackagerelease=srcpkg.id,
903903
=== modified file 'lib/lp/soyuz/scripts/packagecopier.py'
--- lib/lp/soyuz/scripts/packagecopier.py 2010-03-22 10:36:42 +0000
+++ lib/lp/soyuz/scripts/packagecopier.py 2010-04-13 06:59:32 +0000
@@ -28,7 +28,7 @@
28from lp.buildmaster.interfaces.buildbase import BuildStatus28from lp.buildmaster.interfaces.buildbase import BuildStatus
29from lp.soyuz.adapters.packagelocation import build_package_location29from lp.soyuz.adapters.packagelocation import build_package_location
30from lp.soyuz.interfaces.archive import ArchivePurpose, CannotCopy30from lp.soyuz.interfaces.archive import ArchivePurpose, CannotCopy
31from lp.soyuz.interfaces.build import BuildSetStatus31from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
32from lp.soyuz.interfaces.publishing import (32from lp.soyuz.interfaces.publishing import (
33 IBinaryPackagePublishingHistory, IPublishingSet,33 IBinaryPackagePublishingHistory, IPublishingSet,
34 ISourcePackagePublishingHistory, active_publishing_status)34 ISourcePackagePublishingHistory, active_publishing_status)
3535
=== modified file 'lib/lp/soyuz/scripts/tests/test_buildd_cronscripts.py'
--- lib/lp/soyuz/scripts/tests/test_buildd_cronscripts.py 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/scripts/tests/test_buildd_cronscripts.py 2010-04-13 06:59:32 +0000
@@ -21,7 +21,7 @@
21from lp.registry.interfaces.distribution import IDistributionSet21from lp.registry.interfaces.distribution import IDistributionSet
22from lp.services.scripts.base import LaunchpadScriptFailure22from lp.services.scripts.base import LaunchpadScriptFailure
23from lp.soyuz.interfaces.component import IComponentSet23from lp.soyuz.interfaces.component import IComponentSet
24from lp.soyuz.model.build import Build24from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
25from lp.soyuz.scripts.buildd import QueueBuilder, RetryDepwait25from lp.soyuz.scripts.buildd import QueueBuilder, RetryDepwait
26from lp.soyuz.tests.test_publishing import SoyuzTestPublisher26from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
2727
@@ -228,7 +228,7 @@
228 self.number_of_pending_builds = self.getPendingBuilds().count()228 self.number_of_pending_builds = self.getPendingBuilds().count()
229229
230 def getPendingBuilds(self):230 def getPendingBuilds(self):
231 return Build.selectBy(buildstate=BuildStatus.NEEDSBUILD)231 return BinaryPackageBuild.selectBy(buildstate=BuildStatus.NEEDSBUILD)
232232
233 def getRetryDepwait(self, distribution=None):233 def getRetryDepwait(self, distribution=None):
234 test_args = ['-n']234 test_args = ['-n']
@@ -268,7 +268,7 @@
268268
269 def testWorkingRun(self):269 def testWorkingRun(self):
270 """Modify sampledata and expects a new pending build to be created."""270 """Modify sampledata and expects a new pending build to be created."""
271 depwait_build = Build.get(12)271 depwait_build = BinaryPackageBuild.get(12)
272272
273 # Moving the target source to universe, so it can reach the only273 # Moving the target source to universe, so it can reach the only
274 # published binary we have in sampledata.274 # published binary we have in sampledata.
@@ -287,7 +287,7 @@
287 self.layer.commit()287 self.layer.commit()
288288
289 # Reload the build record after the multiple commits.289 # Reload the build record after the multiple commits.
290 depwait_build = Build.get(12)290 depwait_build = BinaryPackageBuild.get(12)
291 self.assertEqual(291 self.assertEqual(
292 self.number_of_pending_builds + 1,292 self.number_of_pending_builds + 1,
293 self.getPendingBuilds().count())293 self.getPendingBuilds().count())
294294
=== modified file 'lib/lp/soyuz/scripts/tests/test_copypackage.py'
--- lib/lp/soyuz/scripts/tests/test_copypackage.py 2010-03-24 07:05:39 +0000
+++ lib/lp/soyuz/scripts/tests/test_copypackage.py 2010-04-13 06:59:32 +0000
@@ -30,7 +30,7 @@
30from lp.soyuz.adapters.packagelocation import PackageLocationError30from lp.soyuz.adapters.packagelocation import PackageLocationError
31from lp.soyuz.interfaces.archive import (31from lp.soyuz.interfaces.archive import (
32 ArchivePurpose, CannotCopy)32 ArchivePurpose, CannotCopy)
33from lp.soyuz.interfaces.build import BuildSetStatus33from lp.soyuz.interfaces.binarypackagebuild import BuildSetStatus
34from lp.soyuz.interfaces.component import IComponentSet34from lp.soyuz.interfaces.component import IComponentSet
35from lp.soyuz.interfaces.publishing import (35from lp.soyuz.interfaces.publishing import (
36 IBinaryPackagePublishingHistory, ISourcePackagePublishingHistory,36 IBinaryPackagePublishingHistory, ISourcePackagePublishingHistory,
@@ -49,8 +49,7 @@
49 CopyChecker, do_copy, _do_delayed_copy, _do_direct_copy, PackageCopier,49 CopyChecker, do_copy, _do_delayed_copy, _do_direct_copy, PackageCopier,
50 re_upload_file, UnembargoSecurityPackage, update_files_privacy)50 re_upload_file, UnembargoSecurityPackage, update_files_privacy)
51from lp.soyuz.tests.test_publishing import SoyuzTestPublisher51from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
52from lp.testing import (52from lp.testing import TestCaseWithFactory
53 TestCase, TestCaseWithFactory)
5453
5554
56class ReUploadFileTestCase(TestCaseWithFactory):55class ReUploadFileTestCase(TestCaseWithFactory):
5756
=== modified file 'lib/lp/soyuz/scripts/tests/test_populatearchive.py'
--- lib/lp/soyuz/scripts/tests/test_populatearchive.py 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/scripts/tests/test_populatearchive.py 2010-04-13 06:59:32 +0000
@@ -23,7 +23,7 @@
23from lp.services.job.interfaces.job import JobStatus23from lp.services.job.interfaces.job import JobStatus
24from lp.soyuz.interfaces.archive import ArchivePurpose, IArchiveSet24from lp.soyuz.interfaces.archive import ArchivePurpose, IArchiveSet
25from lp.soyuz.interfaces.archivearch import IArchiveArchSet25from lp.soyuz.interfaces.archivearch import IArchiveArchSet
26from lp.soyuz.interfaces.build import IBuildSet26from lp.soyuz.interfaces.binarypackagebuild import IBinaryPackageBuildSet
27from lp.soyuz.interfaces.packagecopyrequest import (27from lp.soyuz.interfaces.packagecopyrequest import (
28 IPackageCopyRequestSet, PackageCopyStatus)28 IPackageCopyRequestSet, PackageCopyStatus)
29from lp.soyuz.interfaces.publishing import PackagePublishingStatus29from lp.soyuz.interfaces.publishing import PackagePublishingStatus
@@ -130,7 +130,7 @@
130 self._verifyClonedSourcePackages(copy_archive, hoary)130 self._verifyClonedSourcePackages(copy_archive, hoary)
131131
132 # Now check that we have build records for the sources cloned.132 # Now check that we have build records for the sources cloned.
133 builds = list(getUtility(IBuildSet).getBuildsForArchive(133 builds = list(getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
134 copy_archive, status=BuildStatus.NEEDSBUILD))134 copy_archive, status=BuildStatus.NEEDSBUILD))
135135
136 # Please note: there will be no build for the pmount package136 # Please note: there will be no build for the pmount package
@@ -331,7 +331,7 @@
331 self._verifyClonedSourcePackages(copy_archive, hoary)331 self._verifyClonedSourcePackages(copy_archive, hoary)
332332
333 # Now check that we have zero build records for the sources cloned.333 # Now check that we have zero build records for the sources cloned.
334 builds = list(getUtility(IBuildSet).getBuildsForArchive(334 builds = list(getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
335 copy_archive, status=BuildStatus.NEEDSBUILD))335 copy_archive, status=BuildStatus.NEEDSBUILD))
336 build_spns = [336 build_spns = [
337 get_spn(removeSecurityProxy(build)).name for build in builds]337 get_spn(removeSecurityProxy(build)).name for build in builds]
@@ -629,7 +629,7 @@
629 self._verifyClonedSourcePackages(copy_archive, hoary)629 self._verifyClonedSourcePackages(copy_archive, hoary)
630630
631 # Now check that we have the build records expected.631 # Now check that we have the build records expected.
632 builds = list(getUtility(IBuildSet).getBuildsForArchive(632 builds = list(getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
633 copy_archive, status=BuildStatus.NEEDSBUILD))633 copy_archive, status=BuildStatus.NEEDSBUILD))
634 build_spns = [634 build_spns = [
635 get_spn(removeSecurityProxy(build)).name for build in builds]635 get_spn(removeSecurityProxy(build)).name for build in builds]
@@ -669,7 +669,8 @@
669 self._verifyClonedSourcePackages(archive, hoary)669 self._verifyClonedSourcePackages(archive, hoary)
670670
671 # Get the binary builds generated for the copy archive at hand.671 # Get the binary builds generated for the copy archive at hand.
672 builds = list(getUtility(IBuildSet).getBuildsForArchive(archive))672 builds = list(getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
673 archive))
673 # At least one binary build was generated for the target copy archive.674 # At least one binary build was generated for the target copy archive.
674 self.assertTrue(len(builds) > 0)675 self.assertTrue(len(builds) > 0)
675 # Now check that the binary builds and their associated job records676 # Now check that the binary builds and their associated job records
676677
=== modified file 'lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt'
--- lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt 2010-04-13 06:59:32 +0000
@@ -412,10 +412,12 @@
412412
413 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus413 >>> from lp.buildmaster.interfaces.buildbase import BuildStatus
414 >>> from lp.registry.interfaces.person import IPersonSet414 >>> from lp.registry.interfaces.person import IPersonSet
415 >>> from lp.soyuz.interfaces.build import IBuildSet415 >>> from lp.soyuz.interfaces.binarypackagebuild import (
416 ... IBinaryPackageBuildSet)
416 >>> login('foo.bar@canonical.com')417 >>> login('foo.bar@canonical.com')
417 >>> cprov_ppa = getUtility(IPersonSet).getByName('cprov').archive418 >>> cprov_ppa = getUtility(IPersonSet).getByName('cprov').archive
418 >>> builds = getUtility(IBuildSet).getBuildsForArchive(cprov_ppa)419 >>> builds = getUtility(IBinaryPackageBuildSet).getBuildsForArchive(
420 ... cprov_ppa)
419 >>> builds[0].buildstate = BuildStatus.BUILDING421 >>> builds[0].buildstate = BuildStatus.BUILDING
420 >>> logout()422 >>> logout()
421423
422424
=== modified file 'lib/lp/soyuz/stories/soyuz/xx-binarypackagerelease-index.txt'
--- lib/lp/soyuz/stories/soyuz/xx-binarypackagerelease-index.txt 2009-08-28 07:34:44 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-binarypackagerelease-index.txt 2010-04-13 06:59:32 +0000
@@ -21,13 +21,14 @@
21XXX: noodles 2009-01-16 bug 317863: move this into the STP.21XXX: noodles 2009-01-16 bug 317863: move this into the STP.
2222
23 >>> from lp.soyuz.model.queue import PackageUploadBuild23 >>> from lp.soyuz.model.queue import PackageUploadBuild
24 >>> from lp.soyuz.interfaces.build import IBuildSet24 >>> from lp.soyuz.interfaces.binarypackagebuild import (
25 ... IBinaryPackageBuildSet)
25 >>> from lp.registry.interfaces.pocket import (26 >>> from lp.registry.interfaces.pocket import (
26 ... PackagePublishingPocket)27 ... PackagePublishingPocket)
27 >>> from zope.component import getUtility28 >>> from zope.component import getUtility
2829
29 >>> login('foo.bar@canonical.com')30 >>> login('foo.bar@canonical.com')
30 >>> build = getUtility(IBuildSet).getByBuildID(2)31 >>> build = getUtility(IBinaryPackageBuildSet).getByBuildID(2)
31 >>> package_upload = build.distroseries.createQueueEntry(32 >>> package_upload = build.distroseries.createQueueEntry(
32 ... PackagePublishingPocket.UPDATES, 'changes.txt', 'my changes',33 ... PackagePublishingPocket.UPDATES, 'changes.txt', 'my changes',
33 ... build.archive)34 ... build.archive)
3435
=== modified file 'lib/lp/soyuz/stories/soyuz/xx-build-record.txt'
--- lib/lp/soyuz/stories/soyuz/xx-build-record.txt 2010-03-27 03:11:00 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-build-record.txt 2010-04-13 06:59:32 +0000
@@ -23,8 +23,10 @@
23 >>> bob_builder.builderok = True23 >>> bob_builder.builderok = True
2424
25 # Set a known duration for the current job.25 # Set a known duration for the current job.
26 >>> from lp.soyuz.interfaces.build import IBuildSet26 >>> from lp.soyuz.interfaces.binarypackagebuild import (
27 >>> build2 = getUtility(IBuildSet).getByQueueEntry(bob_builder.currentjob)27 ... IBinaryPackageBuildSet)
28 >>> build2 = getUtility(IBinaryPackageBuildSet).getByQueueEntry(
29 ... bob_builder.currentjob)
28 >>> in_progress_build = removeSecurityProxy(build2)30 >>> in_progress_build = removeSecurityProxy(build2)
29 >>> one_minute = datetime.timedelta(seconds=60)31 >>> one_minute = datetime.timedelta(seconds=60)
30 >>> in_progress_build.buildqueue_record.estimated_duration = one_minute32 >>> in_progress_build.buildqueue_record.estimated_duration = one_minute
3133
=== modified file 'lib/lp/soyuz/stories/webservice/xx-builds.txt'
--- lib/lp/soyuz/stories/webservice/xx-builds.txt 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/stories/webservice/xx-builds.txt 2010-04-13 06:59:32 +0000
@@ -64,17 +64,18 @@
64 >>> login('foo.bar@canonical.com')64 >>> login('foo.bar@canonical.com')
6565
66 >>> from zope.component import getUtility66 >>> from zope.component import getUtility
67 >>> from lp.soyuz.interfaces.build import IBuildSet67 >>> from lp.soyuz.interfaces.binarypackagebuild import (
68 ... IBinaryPackageBuildSet)
6869
69 >>> build = getUtility(IBuildSet).getByBuildID(26)70 >>> build = getUtility(IBinaryPackageBuildSet).getByBuildID(26)
70 >>> build.upload_log = build.buildlog71 >>> build.upload_log = build.buildlog
7172
72 >>> logout()73 >>> logout()
7374
74IBuild 'build_log_url' and 'upload_log_url' are webapp URLs, relative75IBinaryPackageBuild 'build_log_url' and 'upload_log_url' are webapp
75to the build itself. This way API users can access private files76URLs, relative to the build itself. This way API users can access
76(stored in the restricted librarian) directly because they will be77private files (stored in the restricted librarian) directly because they
77proxied by the webapp.78will be proxied by the webapp.
7879
79 >>> builds = webservice.named_get(80 >>> builds = webservice.named_get(
80 ... source_pub['self_link'], 'getBuilds').jsonBody()81 ... source_pub['self_link'], 'getBuilds').jsonBody()
8182
=== modified file 'lib/lp/soyuz/tests/test_archive.py'
--- lib/lp/soyuz/tests/test_archive.py 2010-03-17 09:55:40 +0000
+++ lib/lp/soyuz/tests/test_archive.py 2010-04-13 06:59:32 +0000
@@ -27,7 +27,7 @@
27from lp.soyuz.interfaces.binarypackagerelease import BinaryPackageFormat27from lp.soyuz.interfaces.binarypackagerelease import BinaryPackageFormat
28from lp.soyuz.interfaces.processor import IProcessorFamilySet28from lp.soyuz.interfaces.processor import IProcessorFamilySet
29from lp.soyuz.interfaces.publishing import PackagePublishingStatus29from lp.soyuz.interfaces.publishing import PackagePublishingStatus
30from lp.soyuz.model.build import Build30from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
31from lp.soyuz.model.binarypackagerelease import (31from lp.soyuz.model.binarypackagerelease import (
32 BinaryPackageReleaseDownloadCount)32 BinaryPackageReleaseDownloadCount)
33from lp.soyuz.tests.test_publishing import SoyuzTestPublisher33from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
@@ -413,7 +413,7 @@
413 self.ubuntutest, ArchivePurpose.PRIMARY)413 self.ubuntutest, ArchivePurpose.PRIMARY)
414414
415 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)415 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
416 sample_data = store.find(Build)416 sample_data = store.find(BinaryPackageBuild)
417 for build in sample_data:417 for build in sample_data:
418 build.buildstate = BuildStatus.FULLYBUILT418 build.buildstate = BuildStatus.FULLYBUILT
419 store.flush()419 store.flush()
420420
=== modified file 'lib/lp/soyuz/tests/test_build.py'
--- lib/lp/soyuz/tests/test_build.py 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/tests/test_build.py 2010-04-13 06:59:32 +0000
@@ -16,7 +16,8 @@
16from lp.buildmaster.interfaces.buildbase import BuildStatus, IBuildBase16from lp.buildmaster.interfaces.buildbase import BuildStatus, IBuildBase
17from lp.buildmaster.interfaces.builder import IBuilderSet17from lp.buildmaster.interfaces.builder import IBuilderSet
18from lp.buildmaster.model.buildqueue import BuildQueue18from lp.buildmaster.model.buildqueue import BuildQueue
19from lp.soyuz.interfaces.build import IBuild, IBuildSet19from lp.soyuz.interfaces.binarypackagebuild import (
20 IBinaryPackageBuild, IBinaryPackageBuildSet)
20from lp.soyuz.interfaces.component import IComponentSet21from lp.soyuz.interfaces.component import IComponentSet
21from lp.soyuz.interfaces.publishing import PackagePublishingStatus22from lp.soyuz.interfaces.publishing import PackagePublishingStatus
22from lp.soyuz.model.buildpackagejob import BuildPackageJob23from lp.soyuz.model.buildpackagejob import BuildPackageJob
@@ -38,13 +39,13 @@
38 sourcename="gedit", status=PackagePublishingStatus.PUBLISHED)39 sourcename="gedit", status=PackagePublishingStatus.PUBLISHED)
39 build = gedit_src_hist.createMissingBuilds()[0]40 build = gedit_src_hist.createMissingBuilds()[0]
4041
41 # The IBuild.calculated_buildstart property asserts42 # The IBinaryPackageBuild.calculated_buildstart property asserts
42 # that both datebuilt and buildduration are set.43 # that both datebuilt and buildduration are set.
43 build.datebuilt = datetime.now(pytz.UTC)44 build.datebuilt = datetime.now(pytz.UTC)
44 build.buildduration = timedelta(0, 1)45 build.buildduration = timedelta(0, 1)
4546
46 self.assertProvides(build, IBuildBase)47 self.assertProvides(build, IBuildBase)
47 self.assertProvides(build, IBuild)48 self.assertProvides(build, IBinaryPackageBuild)
4849
49class TestBuildUpdateDependencies(TestCaseWithFactory):50class TestBuildUpdateDependencies(TestCaseWithFactory):
5051
@@ -53,7 +54,7 @@
53 def _setupSimpleDepwaitContext(self):54 def _setupSimpleDepwaitContext(self):
54 """Use `SoyuzTestPublisher` to setup a simple depwait context.55 """Use `SoyuzTestPublisher` to setup a simple depwait context.
5556
56 Return an `IBuild` in MANUALDEWAIT state and depending on a57 Return an `IBinaryPackageBuild` in MANUALDEWAIT state and depending on a
57 binary that exists and is reachable.58 binary that exists and is reachable.
58 """59 """
59 test_publisher = SoyuzTestPublisher()60 test_publisher = SoyuzTestPublisher()
@@ -107,14 +108,14 @@
107 0)108 0)
108109
109 def testUpdateDependenciesWorks(self):110 def testUpdateDependenciesWorks(self):
110 # Calling `IBuild.updateDependencies` makes the build111 # Calling `IBinaryPackageBuild.updateDependencies` makes the build
111 # record ready for dispatch.112 # record ready for dispatch.
112 depwait_build = self._setupSimpleDepwaitContext()113 depwait_build = self._setupSimpleDepwaitContext()
113 depwait_build.updateDependencies()114 depwait_build.updateDependencies()
114 self.assertEquals(depwait_build.dependencies, '')115 self.assertEquals(depwait_build.dependencies, '')
115116
116 def testInvalidDependencies(self):117 def testInvalidDependencies(self):
117 # Calling `IBuild.updateDependencies` on a build with118 # Calling `IBinaryPackageBuild.updateDependencies` on a build with
118 # invalid 'dependencies' raises an AssertionError.119 # invalid 'dependencies' raises an AssertionError.
119 # Anything not following '<name> [([relation] <version>)][, ...]'120 # Anything not following '<name> [([relation] <version>)][, ...]'
120 depwait_build = self._setupSimpleDepwaitContext()121 depwait_build = self._setupSimpleDepwaitContext()
@@ -140,10 +141,10 @@
140 AssertionError, depwait_build.updateDependencies)141 AssertionError, depwait_build.updateDependencies)
141142
142 def testBug378828(self):143 def testBug378828(self):
143 # `IBuild.updateDependencies` copes with the scenario where144 # `IBinaryPackageBuild.updateDependencies` copes with the
144 # the corresponding source publication is not active (deleted)145 # scenario where the corresponding source publication is not
145 # and the source original component is not a valid ubuntu146 # active (deleted) and the source original component is not a
146 # component.147 # valid ubuntu component.
147 depwait_build = self._setupSimpleDepwaitContext()148 depwait_build = self._setupSimpleDepwaitContext()
148149
149 depwait_build.current_source_publication.requestDeletion(150 depwait_build.current_source_publication.requestDeletion(
@@ -194,7 +195,7 @@
194195
195 # Short-cuts for our tests.196 # Short-cuts for our tests.
196 self.archive = self.publisher.distroseries.main_archive197 self.archive = self.publisher.distroseries.main_archive
197 self.build_set = getUtility(IBuildSet)198 self.build_set = getUtility(IBinaryPackageBuildSet)
198199
199 def test_getBuildsForArchive_no_params(self):200 def test_getBuildsForArchive_no_params(self):
200 # All builds should be returned when called without filtering201 # All builds should be returned when called without filtering
@@ -218,7 +219,7 @@
218 super(TestBuildSetGetBuildsForBuilder, self).setUp()219 super(TestBuildSetGetBuildsForBuilder, self).setUp()
219220
220 # Short-cuts for our tests.221 # Short-cuts for our tests.
221 self.build_set = getUtility(IBuildSet)222 self.build_set = getUtility(IBinaryPackageBuildSet)
222223
223 # Create a 386 builder224 # Create a 386 builder
224 owner = self.factory.makePerson()225 owner = self.factory.makePerson()
225226
=== modified file 'lib/lp/soyuz/tests/test_buildpackagejob.py'
--- lib/lp/soyuz/tests/test_buildpackagejob.py 2010-03-06 04:57:40 +0000
+++ lib/lp/soyuz/tests/test_buildpackagejob.py 2010-04-13 06:59:32 +0000
@@ -15,7 +15,7 @@
15from lp.buildmaster.interfaces.builder import IBuilderSet15from lp.buildmaster.interfaces.builder import IBuilderSet
16from lp.soyuz.interfaces.archive import ArchivePurpose16from lp.soyuz.interfaces.archive import ArchivePurpose
17from lp.soyuz.interfaces.publishing import PackagePublishingStatus17from lp.soyuz.interfaces.publishing import PackagePublishingStatus
18from lp.soyuz.model.build import Build18from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
19from lp.soyuz.model.processor import ProcessorFamilySet19from lp.soyuz.model.processor import ProcessorFamilySet
20from lp.soyuz.tests.test_publishing import SoyuzTestPublisher20from lp.soyuz.tests.test_publishing import SoyuzTestPublisher
21from lp.testing import TestCaseWithFactory21from lp.testing import TestCaseWithFactory
@@ -126,7 +126,7 @@
126126
127 # First mark all builds in the sample data as already built.127 # First mark all builds in the sample data as already built.
128 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)128 store = getUtility(IStoreSelector).get(MAIN_STORE, DEFAULT_FLAVOR)
129 sample_data = store.find(Build)129 sample_data = store.find(BinaryPackageBuild)
130 for build in sample_data:130 for build in sample_data:
131 build.buildstate = BuildStatus.FULLYBUILT131 build.buildstate = BuildStatus.FULLYBUILT
132 store.flush()132 store.flush()