Merge lp:~rockstar/launchpad/no-arm-recipe-build into lp:launchpad

Proposed by Paul Hummer
Status: Merged
Approved by: Edwin Grubbs
Approved revision: no longer in the source branch.
Merged at revision: 10872
Proposed branch: lp:~rockstar/launchpad/no-arm-recipe-build
Merge into: lp:launchpad
Diff against target: 169 lines (+44/-8)
6 files modified
lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+8/-0)
lib/lp/code/interfaces/sourcepackagerecipe.py (+0/-2)
lib/lp/code/model/sourcepackagerecipebuild.py (+4/-1)
lib/lp/code/model/tests/test_sourcepackagerecipe.py (+6/-0)
lib/lp/code/model/tests/test_sourcepackagerecipebuild.py (+21/-4)
lib/lp/testing/factory.py (+5/-1)
To merge this branch: bzr merge lp:~rockstar/launchpad/no-arm-recipe-build
Reviewer Review Type Date Requested Status
Edwin Grubbs (community) Approve
Review via email: mp+25364@code.launchpad.net

Description of the change

There's a new ARM builder! Yay! At UDS though, we realized that we didn't
have constraints to make sure that SourcePackageRecipeBuilds didn't try to use
that ARM builder. Bad things happen when it does try to use the ARM builder.
There's a deeper problem that Soyuz has to figure out, but this branch fixes
the current problem. Translations has already landed a fix to production with
a similar fix.

I also removed some lint I noticed...

To post a comment you must log in.
Revision history for this message
Edwin Grubbs (edwin-grubbs) wrote :

Go for it.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/code/browser/tests/test_sourcepackagerecipe.py'
--- lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-05-07 20:12:07 +0000
+++ lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-05-17 19:05:47 +0000
@@ -23,6 +23,7 @@
23 SourcePackageRecipeView, SourcePackageRecipeBuildView23 SourcePackageRecipeView, SourcePackageRecipeBuildView
24)24)
25from lp.code.interfaces.sourcepackagerecipe import MINIMAL_RECIPE_TEXT25from lp.code.interfaces.sourcepackagerecipe import MINIMAL_RECIPE_TEXT
26from lp.soyuz.model.processor import ProcessorFamily
26from lp.testing import ANONYMOUS, BrowserTestCase, login27from lp.testing import ANONYMOUS, BrowserTestCase, login
2728
2829
@@ -40,6 +41,9 @@
40 self.squirrel = self.factory.makeDistroSeries(41 self.squirrel = self.factory.makeDistroSeries(
41 displayname='Secret Squirrel', name='secret',42 displayname='Secret Squirrel', name='secret',
42 distribution=self.ppa.distribution)43 distribution=self.ppa.distribution)
44 self.squirrel.nominatedarchindep = self.squirrel.newArch(
45 'i386', ProcessorFamily.get(1), False, self.chef,
46 supports_virtualized=True)
4347
44 def makeRecipe(self):48 def makeRecipe(self):
45 """Create and return a specific recipe."""49 """Create and return a specific recipe."""
@@ -310,6 +314,10 @@
310 woody = self.factory.makeDistroSeries(314 woody = self.factory.makeDistroSeries(
311 name='woody', displayname='Woody',315 name='woody', displayname='Woody',
312 distribution=self.ppa.distribution)316 distribution=self.ppa.distribution)
317 woody.nominatedarchindep = woody.newArch(
318 'i386', ProcessorFamily.get(1), False, self.factory.makePerson(),
319 supports_virtualized=True)
320
313 recipe = self.makeRecipe()321 recipe = self.makeRecipe()
314 browser = self.getViewBrowser(recipe, '+request-builds')322 browser = self.getViewBrowser(recipe, '+request-builds')
315 browser.getControl('Woody').click()323 browser.getControl('Woody').click()
316324
=== modified file 'lib/lp/code/interfaces/sourcepackagerecipe.py'
--- lib/lp/code/interfaces/sourcepackagerecipe.py 2010-04-30 12:33:16 +0000
+++ lib/lp/code/interfaces/sourcepackagerecipe.py 2010-05-17 19:05:47 +0000
@@ -36,12 +36,10 @@
3636
37from lp.code.interfaces.branch import IBranch37from lp.code.interfaces.branch import IBranch
38from lp.soyuz.interfaces.archive import IArchive38from lp.soyuz.interfaces.archive import IArchive
39from lp.registry.interfaces.person import IPerson
40from lp.registry.interfaces.pocket import PackagePublishingPocket39from lp.registry.interfaces.pocket import PackagePublishingPocket
41from lp.registry.interfaces.role import IHasOwner40from lp.registry.interfaces.role import IHasOwner
42from lp.registry.interfaces.distroseries import IDistroSeries41from lp.registry.interfaces.distroseries import IDistroSeries
43from lp.registry.interfaces.sourcepackagename import ISourcePackageName42from lp.registry.interfaces.sourcepackagename import ISourcePackageName
44from lp.soyuz.interfaces.archive import IArchive
4543
4644
47MINIMAL_RECIPE_TEXT = dedent(u'''\45MINIMAL_RECIPE_TEXT = dedent(u'''\
4846
=== modified file 'lib/lp/code/model/sourcepackagerecipebuild.py'
--- lib/lp/code/model/sourcepackagerecipebuild.py 2010-05-05 20:01:56 +0000
+++ lib/lp/code/model/sourcepackagerecipebuild.py 2010-05-17 19:05:47 +0000
@@ -251,7 +251,10 @@
251 build = Reference(251 build = Reference(
252 build_id, 'SourcePackageRecipeBuild.id')252 build_id, 'SourcePackageRecipeBuild.id')
253253
254 processor = None254 @property
255 def processor(self):
256 return self.build.distroseries.nominatedarchindep.default_processor
257
255 virtualized = True258 virtualized = True
256259
257 def __init__(self, build, job):260 def __init__(self, build, job):
258261
=== modified file 'lib/lp/code/model/tests/test_sourcepackagerecipe.py'
--- lib/lp/code/model/tests/test_sourcepackagerecipe.py 2010-05-11 14:09:44 +0000
+++ lib/lp/code/model/tests/test_sourcepackagerecipe.py 2010-05-17 19:05:47 +0000
@@ -40,6 +40,7 @@
40from lp.registry.interfaces.pocket import PackagePublishingPocket40from lp.registry.interfaces.pocket import PackagePublishingPocket
41from lp.services.job.interfaces.job import (41from lp.services.job.interfaces.job import (
42 IJob, JobStatus)42 IJob, JobStatus)
43from lp.soyuz.model.processor import ProcessorFamily
43from lp.testing import (44from lp.testing import (
44 ANONYMOUS, launchpadlib_for, login, login_person, person_logged_in,45 ANONYMOUS, launchpadlib_for, login, login_person, person_logged_in,
45 TestCaseWithFactory, ws_object)46 TestCaseWithFactory, ws_object)
@@ -568,6 +569,11 @@
568 person = self.factory.makePerson()569 person = self.factory.makePerson()
569 archive = self.factory.makeArchive(owner=person)570 archive = self.factory.makeArchive(owner=person)
570 distroseries = self.factory.makeDistroSeries()571 distroseries = self.factory.makeDistroSeries()
572 distroseries_i386 = distroseries.newArch(
573 'i386', ProcessorFamily.get(1), False, person,
574 supports_virtualized=True)
575 distroseries.nominatedarchindep = distroseries_i386
576
571 recipe, user, launchpad = self.makeRecipe(person)577 recipe, user, launchpad = self.makeRecipe(person)
572 distroseries = ws_object(launchpad, distroseries)578 distroseries = ws_object(launchpad, distroseries)
573 archive = ws_object(launchpad, archive)579 archive = ws_object(launchpad, archive)
574580
=== modified file 'lib/lp/code/model/tests/test_sourcepackagerecipebuild.py'
--- lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2010-05-06 18:16:09 +0000
+++ lib/lp/code/model/tests/test_sourcepackagerecipebuild.py 2010-05-17 19:05:47 +0000
@@ -25,6 +25,7 @@
25from lp.code.interfaces.sourcepackagerecipebuild import (25from lp.code.interfaces.sourcepackagerecipebuild import (
26 ISourcePackageRecipeBuildJob, ISourcePackageRecipeBuild,26 ISourcePackageRecipeBuildJob, ISourcePackageRecipeBuild,
27 ISourcePackageRecipeBuildSource)27 ISourcePackageRecipeBuildSource)
28from lp.soyuz.model.processor import ProcessorFamily
28from lp.testing import ANONYMOUS, login, person_logged_in, TestCaseWithFactory29from lp.testing import ANONYMOUS, login, person_logged_in, TestCaseWithFactory
2930
3031
@@ -35,11 +36,20 @@
3536
36 def makeSourcePackageRecipeBuild(self):37 def makeSourcePackageRecipeBuild(self):
37 """Create a `SourcePackageRecipeBuild` for testing."""38 """Create a `SourcePackageRecipeBuild` for testing."""
39 person = self.factory.makePerson()
40 distroseries = self.factory.makeDistroSeries()
41 distroseries_i386 = distroseries.newArch(
42 'i386', ProcessorFamily.get(1), False, person,
43 supports_virtualized=True)
44 distroseries.nominatedarchindep = distroseries_i386
45
38 return getUtility(ISourcePackageRecipeBuildSource).new(46 return getUtility(ISourcePackageRecipeBuildSource).new(
39 sourcepackage=self.factory.makeSourcePackage(),47 sourcepackage=self.factory.makeSourcePackage(
40 recipe=self.factory.makeSourcePackageRecipe(),48 distroseries=distroseries),
49 recipe=self.factory.makeSourcePackageRecipe(
50 distroseries=distroseries),
41 archive=self.factory.makeArchive(),51 archive=self.factory.makeArchive(),
42 requester=self.factory.makePerson())52 requester=person)
4353
44 def test_providesInterfaces(self):54 def test_providesInterfaces(self):
45 # SourcePackageRecipeBuild provides IBuildBase and55 # SourcePackageRecipeBuild provides IBuildBase and
@@ -62,11 +72,18 @@
6272
63 def test_queueBuild(self):73 def test_queueBuild(self):
64 spb = self.makeSourcePackageRecipeBuild()74 spb = self.makeSourcePackageRecipeBuild()
75
65 bq = spb.queueBuild()76 bq = spb.queueBuild()
66 self.assertProvides(bq, IBuildQueue)77 self.assertProvides(bq, IBuildQueue)
67 self.assertProvides(bq.specific_job, ISourcePackageRecipeBuildJob)78 self.assertProvides(bq.specific_job, ISourcePackageRecipeBuildJob)
68 self.assertEqual(True, bq.virtualized)79 self.assertEqual(True, bq.virtualized)
69 self.assertIs(None, bq.processor)80
81 # The processor for SourcePackageRecipeBuilds should not be None. They
82 # do require specific environments.
83 self.assertNotEqual(None, bq.processor)
84 self.assertEqual(
85 spb.distroseries.nominatedarchindep.default_processor,
86 bq.processor)
70 self.assertEqual(bq, spb.buildqueue_record)87 self.assertEqual(bq, spb.buildqueue_record)
7188
72 def test_title(self):89 def test_title(self):
7390
=== modified file 'lib/lp/testing/factory.py'
--- lib/lp/testing/factory.py 2010-05-11 13:11:43 +0000
+++ lib/lp/testing/factory.py 2010-05-17 19:05:47 +0000
@@ -131,7 +131,7 @@
131from lp.soyuz.interfaces.processor import IProcessorFamilySet131from lp.soyuz.interfaces.processor import IProcessorFamilySet
132from lp.soyuz.interfaces.publishing import PackagePublishingStatus132from lp.soyuz.interfaces.publishing import PackagePublishingStatus
133from lp.soyuz.interfaces.section import ISectionSet133from lp.soyuz.interfaces.section import ISectionSet
134from lp.soyuz.model.processor import ProcessorFamilySet134from lp.soyuz.model.processor import ProcessorFamily, ProcessorFamilySet
135from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild135from lp.soyuz.model.binarypackagebuild import BinaryPackageBuild
136from lp.soyuz.model.publishing import SourcePackagePublishingHistory136from lp.soyuz.model.publishing import SourcePackagePublishingHistory
137137
@@ -1766,6 +1766,10 @@
1766 owner = self.makePerson()1766 owner = self.makePerson()
1767 if distroseries is None:1767 if distroseries is None:
1768 distroseries = self.makeDistroSeries()1768 distroseries = self.makeDistroSeries()
1769 distroseries.nominatedarchindep = distroseries.newArch(
1770 'i386', ProcessorFamily.get(1), False, owner,
1771 supports_virtualized=True)
1772
1769 # Make sure we have a real sourcepackagename object.1773 # Make sure we have a real sourcepackagename object.
1770 if (sourcepackagename is None or1774 if (sourcepackagename is None or
1771 isinstance(sourcepackagename, basestring)):1775 isinstance(sourcepackagename, basestring)):