Colin Watson has proposed merging ~cjwatson/launchpad:stormify-publishinghistory into launchpad:master.
Commit message: Convert {Source,Binary}PackagePublishingHistory to Storm Requested reviews: Launchpad code reviewers (launchpad-reviewers) For more details, see: https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/446200 -- Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:stormify-publishinghistory into launchpad:master.
diff --git a/lib/lp/archivepublisher/deathrow.py b/lib/lp/archivepublisher/deathrow.py index cca0368..38a0ca4 100644 --- a/lib/lp/archivepublisher/deathrow.py +++ b/lib/lp/archivepublisher/deathrow.py @@ -115,9 +115,9 @@ class DeathRow: 1, tables=[OtherSPPH], where=And( - SourcePackagePublishingHistory.sourcepackagereleaseID - == OtherSPPH.sourcepackagereleaseID, - OtherSPPH.archiveID == self.archive.id, + SourcePackagePublishingHistory.sourcepackagerelease_id + == OtherSPPH.sourcepackagerelease_id, + OtherSPPH.archive_id == self.archive.id, Not(OtherSPPH.status.is_in(inactive_publishing_status)), ), ) @@ -139,9 +139,9 @@ class DeathRow: 1, tables=[OtherBPPH], where=And( - BinaryPackagePublishingHistory.binarypackagereleaseID - == OtherBPPH.binarypackagereleaseID, - OtherBPPH.archiveID == self.archive.id, + BinaryPackagePublishingHistory.binarypackagerelease_id + == OtherBPPH.binarypackagerelease_id, + OtherBPPH.archive_id == self.archive.id, Not(OtherBPPH.status.is_in(inactive_publishing_status)), ), ) diff --git a/lib/lp/archivepublisher/domination.py b/lib/lp/archivepublisher/domination.py index 466d1ba..a8df607 100644 --- a/lib/lp/archivepublisher/domination.py +++ b/lib/lp/archivepublisher/domination.py @@ -101,7 +101,7 @@ def join_spph_spn(): SPPH = SourcePackagePublishingHistory SPN = SourcePackageName - return SPN.id == SPPH.sourcepackagenameID + return SPN.id == SPPH.sourcepackagename_id def join_spph_spr(): @@ -109,7 +109,7 @@ def join_spph_spr(): SPPH = SourcePackagePublishingHistory SPR = SourcePackageRelease - return SPR.id == SPPH.sourcepackagereleaseID + return SPR.id == SPPH.sourcepackagerelease_id class SourcePublicationTraits: @@ -119,9 +119,6 @@ class SourcePublicationTraits: `BinaryPackagePublishingHistory`. """ - release_class = SourcePackageRelease - release_reference_name = "sourcepackagereleaseID" - @staticmethod def getPackageName(spph): """Return the name of this publication's source package.""" @@ -140,9 +137,6 @@ class BinaryPublicationTraits: `SourcePackagePublishingHistory`. """ - release_class = BinaryPackageRelease - release_reference_name = "binarypackagereleaseID" - @staticmethod def getPackageName(bpph): """Return the name of this publication's binary package.""" @@ -654,13 +648,13 @@ class Dominator: BPPH.pocket == pocket, ] candidate_binary_names = Select( - BPPH.binarypackagenameID, + BPPH.binarypackagename_id, And(*bpph_location_clauses), - group_by=(BPPH.binarypackagenameID, BPPH._channel), + group_by=(BPPH.binarypackagename_id, BPPH._channel), having=(Count() > 1), ) main_clauses = bpph_location_clauses + [ - BPR.id == BPPH.binarypackagereleaseID, + BPR.id == BPPH.binarypackagerelease_id, BPR.binarypackagenameID.is_in(candidate_binary_names), BPR.binpackageformat != BinaryPackageFormat.DDEB, ] @@ -672,7 +666,7 @@ class Dominator: # the join would complicate the query. query = IStore(BPPH).find((BPPH, BPR), *main_clauses) bpphs = list(DecoratedResultSet(query, itemgetter(0))) - load_related(BinaryPackageName, bpphs, ["binarypackagenameID"]) + load_related(BinaryPackageName, bpphs, ["binarypackagename_id"]) return bpphs def dominateBinaries(self, distroseries, pocket): @@ -814,9 +808,9 @@ class Dominator: distroseries, pocket ) candidate_source_names = Select( - SPPH.sourcepackagenameID, + SPPH.sourcepackagename_id, And(join_spph_spr(), spph_location_clauses), - group_by=(SPPH.sourcepackagenameID, SPPH._channel), + group_by=(SPPH.sourcepackagename_id, SPPH._channel), having=(Count() > 1), ) @@ -829,11 +823,11 @@ class Dominator: query = IStore(SPPH).find( (SPPH, SPR), join_spph_spr(), - SPPH.sourcepackagenameID.is_in(candidate_source_names), + SPPH.sourcepackagename_id.is_in(candidate_source_names), spph_location_clauses, ) spphs = DecoratedResultSet(query, itemgetter(0)) - load_related(SourcePackageName, spphs, ["sourcepackagenameID"]) + load_related(SourcePackageName, spphs, ["sourcepackagename_id"]) return spphs def dominateSources(self, distroseries, pocket): diff --git a/lib/lp/archivepublisher/model/ftparchive.py b/lib/lp/archivepublisher/model/ftparchive.py index ba801ae..3492a7a 100644 --- a/lib/lp/archivepublisher/model/ftparchive.py +++ b/lib/lp/archivepublisher/model/ftparchive.py @@ -306,7 +306,7 @@ class FTPArchiveHandler: Join( SourcePackageRelease, SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, ), Join( SourcePackageName, @@ -356,7 +356,7 @@ class FTPArchiveHandler: Join( BinaryPackageRelease, BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, ), Join( BinaryPackageName, @@ -366,7 +366,7 @@ class FTPArchiveHandler: Join( DistroArchSeries, DistroArchSeries.id - == BinaryPackagePublishingHistory.distroarchseriesID, + == BinaryPackagePublishingHistory.distroarchseries_id, ), ) @@ -376,7 +376,7 @@ class FTPArchiveHandler: conditions = [ BinaryPackagePublishingHistory.archive == self.publisher.archive, - BinaryPackagePublishingHistory.distroarchseriesID.is_in( + BinaryPackagePublishingHistory.distroarchseries_id.is_in( architectures_ids ), BinaryPackagePublishingHistory.pocket == pocket, @@ -672,15 +672,15 @@ class FTPArchiveHandler: ) join_conditions = [ SourcePackageReleaseFile.sourcepackagerelease_id - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, SourcePackageName.id - == SourcePackagePublishingHistory.sourcepackagenameID, + == SourcePackagePublishingHistory.sourcepackagename_id, LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id, Component.id == SourcePackagePublishingHistory.component_id, ] select_conditions = [ SourcePackagePublishingHistory.archive == self.publisher.archive, - SourcePackagePublishingHistory.distroseriesID == distroseries.id, + SourcePackagePublishingHistory.distroseries_id == distroseries.id, SourcePackagePublishingHistory.pocket == pocket, SourcePackagePublishingHistory.status == PackagePublishingStatus.PUBLISHED, @@ -712,14 +712,14 @@ class FTPArchiveHandler: ) join_conditions = [ BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, BinaryPackageFile.binarypackagerelease_id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, BinaryPackageBuild.id == BinaryPackageRelease.buildID, SourcePackageName.id == BinaryPackageBuild.source_package_name_id, LibraryFileAlias.id == BinaryPackageFile.libraryfile_id, DistroArchSeries.id - == BinaryPackagePublishingHistory.distroarchseriesID, + == BinaryPackagePublishingHistory.distroarchseries_id, Component.id == BinaryPackagePublishingHistory.component_id, ] select_conditions = [ diff --git a/lib/lp/archivepublisher/publishing.py b/lib/lp/archivepublisher/publishing.py index 8eee4ed..30fee6a 100644 --- a/lib/lp/archivepublisher/publishing.py +++ b/lib/lp/archivepublisher/publishing.py @@ -522,7 +522,7 @@ class Publisher: SourcePackagePublishingHistory, *clauses ) return publications.order_by( - SourcePackagePublishingHistory.distroseriesID, + SourcePackagePublishingHistory.distroseries_id, SourcePackagePublishingHistory.pocket, Desc(SourcePackagePublishingHistory.id), ) @@ -571,7 +571,7 @@ class Publisher: """Return the specific group of binary records to be published.""" clauses = [ BinaryPackagePublishingHistory.archive == self.archive, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, BinaryPackagePublishingHistory.status.is_in( active_publishing_status @@ -678,7 +678,7 @@ class Publisher: # Make the source publications query. conditions = base_conditions(SourcePackagePublishingHistory) conditions.append( - SourcePackagePublishingHistory.distroseriesID == DistroSeries.id + SourcePackagePublishingHistory.distroseries_id == DistroSeries.id ) source_suites = ( IStore(SourcePackagePublishingHistory) @@ -694,7 +694,7 @@ class Publisher: conditions = base_conditions(BinaryPackagePublishingHistory) conditions.extend( [ - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, DistroArchSeries.distroseriesID == DistroSeries.id, ] @@ -794,15 +794,15 @@ class Publisher: for spph in publishing_set.getSourcesForPublishing( archive=self.archive ): - spphs_by_spr[spph.sourcepackagereleaseID].append(spph) - release_id = "source:%d" % spph.sourcepackagereleaseID + spphs_by_spr[spph.sourcepackagerelease_id].append(spph) + release_id = "source:%d" % spph.sourcepackagerelease_id releases_by_id.setdefault(release_id, spph.sourcepackagerelease) pubs_by_id[release_id].append(spph) for bpph in publishing_set.getBinariesForPublishing( archive=self.archive ): - bpphs_by_bpr[bpph.binarypackagereleaseID].append(bpph) - release_id = "binary:%d" % bpph.binarypackagereleaseID + bpphs_by_bpr[bpph.binarypackagerelease_id].append(bpph) + release_id = "binary:%d" % bpph.binarypackagerelease_id releases_by_id.setdefault(release_id, bpph.binarypackagerelease) pubs_by_id[release_id].append(bpph) artifacts = self._diskpool.getAllArtifacts( diff --git a/lib/lp/archivepublisher/scripts/publish_ftpmaster.py b/lib/lp/archivepublisher/scripts/publish_ftpmaster.py index 2054e6e..b62e3b1 100644 --- a/lib/lp/archivepublisher/scripts/publish_ftpmaster.py +++ b/lib/lp/archivepublisher/scripts/publish_ftpmaster.py @@ -290,7 +290,7 @@ class PublishFTPMaster(LaunchpadCronScript): archive.getAllPublishedBinaries(only_unpublished=True) ) load_related( - DistroArchSeries, pending_binaries, ["distroarchseriesID"] + DistroArchSeries, pending_binaries, ["distroarchseries_id"] ) return { pub.distroseries.name + pocketsuffix[pub.pocket] diff --git a/lib/lp/archivepublisher/tests/test_publisher.py b/lib/lp/archivepublisher/tests/test_publisher.py index ab3fd82..be57298 100644 --- a/lib/lp/archivepublisher/tests/test_publisher.py +++ b/lib/lp/archivepublisher/tests/test_publisher.py @@ -71,6 +71,7 @@ from lp.registry.interfaces.pocket import PackagePublishingPocket, pocketsuffix from lp.registry.interfaces.series import SeriesStatus from lp.services.config import config from lp.services.database.constants import UTC_NOW +from lp.services.database.interfaces import IStore from lp.services.database.sqlbase import flush_database_caches from lp.services.gpg.interfaces import IGPGHandler from lp.services.log.logger import BufferLogger, DevNullLogger @@ -302,8 +303,8 @@ class TestPublisherSeries(TestNativePublishingBase): self._publish(pocket=pocket) # source and binary PUBLISHED in database. - pub_source.sync() - pub_bin.sync() + IStore(pub_source).flush() + IStore(pub_bin).flush() self.assertEqual(pub_source.status, PackagePublishingStatus.PUBLISHED) self.assertEqual(pub_bin.status, PackagePublishingStatus.PUBLISHED) @@ -847,7 +848,7 @@ class TestPublisher(TestPublisherBase): publisher.A_publish(False) self.layer.txn.commit() - pub_source.sync() + IStore(pub_source).flush() self.assertEqual({"breezy-autotest"}, publisher.dirty_suites) self.assertEqual(PackagePublishingStatus.PUBLISHED, pub_source.status) @@ -1122,8 +1123,8 @@ class TestPublisher(TestPublisherBase): publisher.A_publish(force_publishing=False) self.layer.txn.commit() - pub_source.sync() - pub_source2.sync() + IStore(pub_source).flush() + IStore(pub_source2).flush() self.assertEqual({"hoary-test"}, publisher.dirty_suites) self.assertEqual(PackagePublishingStatus.PUBLISHED, pub_source2.status) self.assertEqual(PackagePublishingStatus.PENDING, pub_source.status) @@ -1156,8 +1157,8 @@ class TestPublisher(TestPublisherBase): publisher.A_publish(force_publishing=False) self.layer.txn.commit() - pub_source.sync() - pub_source2.sync() + IStore(pub_source).flush() + IStore(pub_source2).flush() self.assertEqual({"breezy-autotest-updates"}, publisher.dirty_suites) self.assertEqual(PackagePublishingStatus.PUBLISHED, pub_source.status) self.assertEqual(PackagePublishingStatus.PENDING, pub_source2.status) @@ -1284,7 +1285,7 @@ class TestPublisher(TestPublisherBase): publisher.A_publish(False) self.layer.txn.commit() - pub_source.sync() + IStore(pub_source).flush() self.assertEqual({"breezy-autotest"}, publisher.dirty_suites) self.assertEqual(PackagePublishingStatus.PUBLISHED, pub_source.status) @@ -4326,7 +4327,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.name": ["hello"], "deb.version": ["1.0"], "launchpad.release-id": [ - "source:%d" % source.sourcepackagereleaseID + "source:%d" % source.sourcepackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4347,7 +4348,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.component": ["main"], "deb.distribution": ["breezy-autotest"], "launchpad.release-id": [ - "binary:%d" % binary.binarypackagereleaseID + "binary:%d" % binary.binarypackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4429,7 +4430,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.name": ["hello"], "deb.version": ["1.0"], "launchpad.release-id": [ - "source:%d" % source.sourcepackagereleaseID + "source:%d" % source.sourcepackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4445,7 +4446,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.name": ["hello"], "deb.version": ["1.0"], "launchpad.release-id": [ - "source:%d" % source.sourcepackagereleaseID + "source:%d" % source.sourcepackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4460,7 +4461,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.component": ["main"], "deb.distribution": ["breezy-autotest", "hoary-test"], "launchpad.release-id": [ - "binary:%d" % binary.binarypackagereleaseID + "binary:%d" % binary.binarypackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4538,7 +4539,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.name": ["hello"], "deb.version": ["1.0-2"], "launchpad.release-id": [ - "source:%d" % spph.sourcepackagereleaseID + "source:%d" % spph.sourcepackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0-2"], @@ -4600,7 +4601,7 @@ class TestArtifactoryPublishing(TestPublisherBase): "deb.name": ["hello"], "deb.version": ["1.0"], "launchpad.release-id": [ - "source:%d" % source.sourcepackagereleaseID + "source:%d" % source.sourcepackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], @@ -4612,7 +4613,7 @@ class TestArtifactoryPublishing(TestPublisherBase): self.assertEqual( { "launchpad.release-id": [ - "binary:%d" % binary.binarypackagereleaseID + "binary:%d" % binary.binarypackagerelease_id ], "launchpad.source-name": ["hello"], "launchpad.source-version": ["1.0"], diff --git a/lib/lp/bugs/model/bugtasksearch.py b/lib/lp/bugs/model/bugtasksearch.py index 19598bc..9ec4c25 100644 --- a/lib/lp/bugs/model/bugtasksearch.py +++ b/lib/lp/bugs/model/bugtasksearch.py @@ -649,10 +649,10 @@ def _build_query(params): extra_clauses.append( BugTaskFlat.sourcepackagename_id.is_in( Select( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, tables=[SourcePackagePublishingHistory], where=And( - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( archive_ids ), SourcePackagePublishingHistory.distroseries diff --git a/lib/lp/registry/browser/distributionsourcepackage.py b/lib/lp/registry/browser/distributionsourcepackage.py index 78c31de..5590db8 100644 --- a/lib/lp/registry/browser/distributionsourcepackage.py +++ b/lib/lp/registry/browser/distributionsourcepackage.py @@ -641,7 +641,7 @@ class PublishingHistoryViewMixin: def _preload_people(self, pubs): ids = set() for spph in pubs: - ids.update((spph.removed_byID, spph.creatorID, spph.sponsorID)) + ids.update((spph.removed_by_id, spph.creator_id, spph.sponsor_id)) ids.discard(None) if ids: list( diff --git a/lib/lp/registry/model/distribution.py b/lib/lp/registry/model/distribution.py index 045fb98..cf764f9 100644 --- a/lib/lp/registry/model/distribution.py +++ b/lib/lp/registry/model/distribution.py @@ -1622,7 +1622,7 @@ class Distribution( origin.append( Join( SourcePackagePublishingHistory, - SourcePackagePublishingHistory.sourcepackagenameID + SourcePackagePublishingHistory.sourcepackagename_id == DistributionSourcePackageCache.sourcepackagename_id, ) ) @@ -1630,7 +1630,7 @@ class Distribution( [ SourcePackagePublishingHistory.distroseries == publishing_distroseries, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.all_distro_archive_ids ), ] @@ -1764,7 +1764,7 @@ class Distribution( # archive data. (There are many, many PPAs to consider # and PostgreSQL picks a bad query plan resulting in # timeouts). - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.all_distro_archive_ids ), SourcePackagePublishingHistory.sourcepackagename @@ -1804,7 +1804,7 @@ class Distribution( # See comment above for rationale for using an extra query # instead of an inner join. (Bottom line, it would time out # otherwise.) - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.all_distro_archive_ids ), BinaryPackagePublishingHistory.binarypackagename @@ -2163,7 +2163,7 @@ class Distribution( Store.of(self) .find( SourcePackagePublishingHistory, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.all_distro_archive_ids ), ) @@ -2456,7 +2456,10 @@ class DistributionSet: distro_source_packagenames, lambda distro: distro.all_distro_archive_ids, lambda distro: DistroSeries.distribution == distro, - [SourcePackagePublishingHistory.distroseriesID == DistroSeries.id], + [ + SourcePackagePublishingHistory.distroseries_id + == DistroSeries.id + ], DistroSeries.distributionID, ) result = {} diff --git a/lib/lp/registry/model/distributionmirror.py b/lib/lp/registry/model/distributionmirror.py index 7e5ec72..a672691 100644 --- a/lib/lp/registry/model/distributionmirror.py +++ b/lib/lp/registry/model/distributionmirror.py @@ -981,7 +981,7 @@ class MirrorDistroArchSeries(StormBase, _MirrorSeriesMixIn): if deb_only: clauses.extend( [ - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageFile.binarypackagerelease_id, BinaryPackageFile.filetype == BinaryPackageFileType.DEB, ] diff --git a/lib/lp/registry/model/distributionsourcepackage.py b/lib/lp/registry/model/distributionsourcepackage.py index 5235ff7..42a452d 100644 --- a/lib/lp/registry/model/distributionsourcepackage.py +++ b/lib/lp/registry/model/distributionsourcepackage.py @@ -210,7 +210,7 @@ class DistributionSourcePackage( DistroSeries.distribution == self.distribution, SourcePackagePublishingHistory.sourcepackagename == self.sourcepackagename, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), Not( @@ -245,7 +245,7 @@ class DistributionSourcePackage( SourcePackageRelease, SourcePackagePublishingHistory.distroseries == DistroSeries.id, DistroSeries.distribution == self.distribution, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), SourcePackagePublishingHistory.sourcepackagerelease @@ -384,15 +384,15 @@ class DistributionSourcePackage( def _getPublishingHistoryQuery(self, status=None): conditions = [ - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), - SourcePackagePublishingHistory.distroseriesID == DistroSeries.id, + SourcePackagePublishingHistory.distroseries_id == DistroSeries.id, DistroSeries.distribution == self.distribution, SourcePackagePublishingHistory.sourcepackagename == self.sourcepackagename, SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, ] if status is not None: @@ -412,7 +412,7 @@ class DistributionSourcePackage( pub_constraints = ( DistroSeries.distribution == self.distribution, SourcePackagePublishingHistory.distroseries == DistroSeries.id, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), SourcePackagePublishingHistory.sourcepackagename @@ -423,11 +423,11 @@ class DistributionSourcePackage( spr_ids = ( Store.of(self.distribution) .find( - SourcePackagePublishingHistory.sourcepackagereleaseID, + SourcePackagePublishingHistory.sourcepackagerelease_id, *pub_constraints, ) .order_by( - Desc(SourcePackagePublishingHistory.sourcepackagereleaseID) + Desc(SourcePackagePublishingHistory.sourcepackagerelease_id) ) .config(distinct=True) ) @@ -442,7 +442,7 @@ class DistributionSourcePackage( sprs_by_id = { spr: list(pubs) for (spr, pubs) in itertools.groupby( - pubs, attrgetter("sourcepackagereleaseID") + pubs, attrgetter("sourcepackagerelease_id") ) } return [ diff --git a/lib/lp/registry/model/distroseries.py b/lib/lp/registry/model/distroseries.py index 68b7275..a585613 100644 --- a/lib/lp/registry/model/distroseries.py +++ b/lib/lp/registry/model/distroseries.py @@ -784,9 +784,9 @@ class DistroSeries( self.sourcecount = ( IStore(SourcePackagePublishingHistory) .find( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, SourcePackagePublishingHistory.distroseries == self, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), SourcePackagePublishingHistory.status.is_in( @@ -802,11 +802,11 @@ class DistroSeries( self.binarycount = ( IStore(BinaryPackagePublishingHistory) .find( - BinaryPackagePublishingHistory.binarypackagenameID, + BinaryPackagePublishingHistory.binarypackagename_id, DistroArchSeries.distroseries == self, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), BinaryPackagePublishingHistory.status.is_in( @@ -1121,8 +1121,8 @@ class DistroSeries( IStore(SourcePackagePublishingHistory) .find( SourcePackagePublishingHistory, - SourcePackagePublishingHistory.distroseriesID == self.id, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.distroseries_id == self.id, + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), ) @@ -1136,9 +1136,9 @@ class DistroSeries( .find( BinaryPackagePublishingHistory, DistroArchSeries.distroseriesID == self.id, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), ) @@ -1812,7 +1812,7 @@ class DistroSeriesSet: == series ), [], - SourcePackagePublishingHistory.distroseriesID, + SourcePackagePublishingHistory.distroseries_id, ) result = {} for spr, series_id in releases: diff --git a/lib/lp/registry/model/distroseriesdifference.py b/lib/lp/registry/model/distroseriesdifference.py index 64c3a0b..030e521 100644 --- a/lib/lp/registry/model/distroseriesdifference.py +++ b/lib/lp/registry/model/distroseriesdifference.py @@ -104,10 +104,10 @@ def most_recent_publications(dsds, in_parent, statuses, match_version=False): ) conditions = And( DistroSeriesDifference.id.is_in(dsd.id for dsd in dsds), - SourcePackagePublishingHistory.archiveID == archive_subselect, - SourcePackagePublishingHistory.distroseriesID == series_col, + SourcePackagePublishingHistory.archive_id == archive_subselect, + SourcePackagePublishingHistory.distroseries_id == series_col, SourcePackagePublishingHistory.status.is_in(statuses), - SourcePackagePublishingHistory.sourcepackagenameID + SourcePackagePublishingHistory.sourcepackagename_id == (DistroSeriesDifference.source_package_name_id), ) # Do we match on DistroSeriesDifference.(parent_)source_version? @@ -115,7 +115,7 @@ def most_recent_publications(dsds, in_parent, statuses, match_version=False): conditions = And( conditions, SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, Cast(SourcePackageRelease.version, "text") == version_col, ) # The sort order is critical so that the DISTINCT ON clause selects the @@ -284,7 +284,7 @@ def eager_load_dsds(dsds): source_pubs_for_release.values(), parent_source_pubs_for_release.values(), ), - ("sourcepackagereleaseID",), + ("sourcepackagerelease_id",), ) # Get packagesets and parent_packagesets for each DSD. @@ -501,9 +501,9 @@ class DistroSeriesDifference(StormBase): # the already established differences. differences_changed_by_conditions = And( basic_conditions, - SPPH.archiveID == distro_series.main_archive.id, - SPPH.distroseriesID == distro_series.id, - SPPH.sourcepackagereleaseID == SPR.id, + SPPH.archive == distro_series.main_archive, + SPPH.distroseries == distro_series, + SPPH.sourcepackagerelease_id == SPR.id, SPPH.status.is_in(active_publishing_status), SPR.creatorID == TP.personID, SPR.sourcepackagenameID == DSD.source_package_name_id, diff --git a/lib/lp/registry/model/person.py b/lib/lp/registry/model/person.py index 53e2358..d7bbb75 100644 --- a/lib/lp/registry/model/person.py +++ b/lib/lp/registry/model/person.py @@ -3350,17 +3350,19 @@ class Person( ) tables = ( SourcePackageRelease, - Join(spph, spph.sourcepackagereleaseID == SourcePackageRelease.id), - Join(Archive, Archive.id == spph.archiveID), - Join(ancestor_spph, ancestor_spph.id == spph.ancestorID), + Join( + spph, spph.sourcepackagerelease_id == SourcePackageRelease.id + ), + Join(Archive, Archive.id == spph.archive_id), + Join(ancestor_spph, ancestor_spph.id == spph.ancestor_id), ) rs = ( Store.of(self) .using(*tables) .find( spph.id, - spph.creatorID == self.id, - ancestor_spph.archiveID != spph.archiveID, + spph.creator_id == self.id, + ancestor_spph.archive_id != spph.archive_id, Archive.purpose == ArchivePurpose.PRIMARY, ) ) @@ -3383,28 +3385,28 @@ class Person( SourcePackageRelease, Join( spph, - spph.sourcepackagereleaseID + spph.sourcepackagerelease_id == SourcePackageRelease.id, ), - Join(Archive, Archive.id == spph.archiveID), + Join(Archive, Archive.id == spph.archive_id), Join( ancestor_spph, - ancestor_spph.id == spph.ancestorID, + ancestor_spph.id == spph.ancestor_id, ), ], where=And( - spph.creatorID == self.id, - ancestor_spph.archiveID != spph.archiveID, + spph.creator_id == self.id, + ancestor_spph.archive_id != spph.archive_id, Archive.purpose == ArchivePurpose.PRIMARY, ), order_by=[ - spph.distroseriesID, + spph.distroseries_id, SourcePackageRelease.sourcepackagenameID, Desc(spph.datecreated), Desc(spph.id), ], distinct=( - spph.distroseriesID, + spph.distroseries_id, SourcePackageRelease.sourcepackagenameID, ), ) @@ -3418,9 +3420,9 @@ class Person( def load_related_objects(rows): bulk.load_related( - SourcePackageRelease, rows, ["sourcepackagereleaseID"] + SourcePackageRelease, rows, ["sourcepackagerelease_id"] ) - bulk.load_related(Archive, rows, ["archiveID"]) + bulk.load_related(Archive, rows, ["archive_id"]) return DecoratedResultSet(rs, pre_iter_hook=load_related_objects) diff --git a/lib/lp/registry/model/sourcepackage.py b/lib/lp/registry/model/sourcepackage.py index 119dc09..928996c 100644 --- a/lib/lp/registry/model/sourcepackage.py +++ b/lib/lp/registry/model/sourcepackage.py @@ -242,7 +242,7 @@ class SourcePackage( == self.sourcepackagename, SourcePackagePublishingHistory.distroseries == self.distroseries, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), ] @@ -383,13 +383,13 @@ class SourcePackage( SourcePackageRelease, Join( SourcePackagePublishingHistory, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageRelease.id, ), ) .find( SourcePackageRelease, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), SourcePackagePublishingHistory.distroseries diff --git a/lib/lp/scripts/garbo.py b/lib/lp/scripts/garbo.py index 86adeaa..c4dfc20 100644 --- a/lib/lp/scripts/garbo.py +++ b/lib/lp/scripts/garbo.py @@ -494,10 +494,11 @@ class PopulateDistributionSourcePackageCache(TunableLoop): Join( SourcePackageName, SourcePackageName.id - == SourcePackagePublishingHistory.sourcepackagenameID, + == SourcePackagePublishingHistory.sourcepackagename_id, ), Join( - Archive, Archive.id == SourcePackagePublishingHistory.archiveID + Archive, + Archive.id == SourcePackagePublishingHistory.archive_id, ), ] rows = self.store.using(*origin).find( @@ -624,11 +625,11 @@ class PopulateLatestPersonSourcePackageReleaseCache(TunableLoop): Join( spph, And( - spph.sourcepackagereleaseID == SourcePackageRelease.id, - spph.archiveID == SourcePackageRelease.upload_archiveID, + spph.sourcepackagerelease_id == SourcePackageRelease.id, + spph.archive_id == SourcePackageRelease.upload_archiveID, ), ), - Join(Archive, Archive.id == spph.archiveID), + Join(Archive, Archive.id == spph.archive_id), ] rs = ( self.store.using(*origin) @@ -2197,7 +2198,7 @@ class BinaryPackagePublishingHistorySPNPopulator(BulkPruner): update = Returning( BulkUpdate( { - BPPH.sourcepackagenameID: ( + BPPH.sourcepackagename_id: ( SourcePackageRelease.sourcepackagenameID ) }, diff --git a/lib/lp/services/database/doc/decoratedresultset.rst b/lib/lp/services/database/doc/decoratedresultset.rst index 8b4b624..ee7265b 100644 --- a/lib/lp/services/database/doc/decoratedresultset.rst +++ b/lib/lp/services/database/doc/decoratedresultset.rst @@ -117,7 +117,7 @@ config option (https://bugs.launchpad.net/storm/+bug/217644): >>> results = store.find( ... BinaryPackageRelease, ... BinaryPackageRelease.id - ... == BinaryPackagePublishingHistory.binarypackagereleaseID, + ... == BinaryPackagePublishingHistory.binarypackagerelease_id, ... ) >>> results = results.config(distinct=True) >>> len(list(results)) diff --git a/lib/lp/soyuz/adapters/overrides.py b/lib/lp/soyuz/adapters/overrides.py index dfb4aaf..b71a12e 100644 --- a/lib/lp/soyuz/adapters/overrides.py +++ b/lib/lp/soyuz/adapters/overrides.py @@ -269,32 +269,32 @@ class FromExistingOverridePolicy(BaseOverridePolicy): already_published = DecoratedResultSet( store.find( ( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, SourcePackagePublishingHistory.component_id, SourcePackagePublishingHistory.section_id, SourcePackagePublishingHistory.status, SourcePackageRelease.version, ), SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, - SourcePackagePublishingHistory.archiveID == self.archive.id, - SourcePackagePublishingHistory.distroseriesID - == self.distroseries.id, + == SourcePackagePublishingHistory.sourcepackagerelease_id, + SourcePackagePublishingHistory.archive == self.archive, + SourcePackagePublishingHistory.distroseries + == self.distroseries, SourcePackagePublishingHistory.status.is_in( self.getExistingPublishingStatuses(self.include_deleted) ), - SourcePackagePublishingHistory.sourcepackagenameID.is_in( + SourcePackagePublishingHistory.sourcepackagename_id.is_in( spn.id for spn in spns ), *other_conditions, ) .order_by( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, Desc(SourcePackagePublishingHistory.datecreated), Desc(SourcePackagePublishingHistory.id), ) .config( - distinct=(SourcePackagePublishingHistory.sourcepackagenameID,) + distinct=(SourcePackagePublishingHistory.sourcepackagename_id,) ), id_resolver((SourcePackageName, Component, Section, None, None)), pre_iter_hook=eager_load, @@ -334,16 +334,15 @@ class FromExistingOverridePolicy(BaseOverridePolicy): archtags = set() for bpn, archtag in binaries.keys(): candidates.append( - BinaryPackagePublishingHistory.binarypackagenameID + BinaryPackagePublishingHistory.binarypackagename_id == bpn.id ) archtags.add(archtag) other_conditions.extend( [ - BinaryPackagePublishingHistory.archiveID - == self.archive.id, + BinaryPackagePublishingHistory.archive == self.archive, DistroArchSeries.distroseriesID == self.distroseries.id, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, ] ) @@ -358,8 +357,8 @@ class FromExistingOverridePolicy(BaseOverridePolicy): already_published = DecoratedResultSet( store.find( ( - BinaryPackagePublishingHistory.binarypackagenameID, - BinaryPackagePublishingHistory.distroarchseriesID, + BinaryPackagePublishingHistory.binarypackagename_id, + BinaryPackagePublishingHistory.distroarchseries_id, BinaryPackagePublishingHistory.component_id, BinaryPackagePublishingHistory.section_id, BinaryPackagePublishingHistory.priority, @@ -367,7 +366,7 @@ class FromExistingOverridePolicy(BaseOverridePolicy): BinaryPackageRelease.version, ), BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, BinaryPackagePublishingHistory.status.is_in( self.getExistingPublishingStatuses(self.include_deleted) ), @@ -375,15 +374,15 @@ class FromExistingOverridePolicy(BaseOverridePolicy): *other_conditions, ) .order_by( - BinaryPackagePublishingHistory.distroarchseriesID, - BinaryPackagePublishingHistory.binarypackagenameID, + BinaryPackagePublishingHistory.distroarchseries_id, + BinaryPackagePublishingHistory.binarypackagename_id, Desc(BinaryPackagePublishingHistory.datecreated), Desc(BinaryPackagePublishingHistory.id), ) .config( distinct=( - BinaryPackagePublishingHistory.distroarchseriesID, - BinaryPackagePublishingHistory.binarypackagenameID, + BinaryPackagePublishingHistory.distroarchseries_id, + BinaryPackagePublishingHistory.binarypackagename_id, ) ), id_resolver( @@ -597,9 +596,9 @@ def calculate_target_das(distroseries, binaries): def make_package_condition(archive, das, bpn): return And( - BinaryPackagePublishingHistory.archiveID == archive.id, - BinaryPackagePublishingHistory.distroarchseriesID == das.id, - BinaryPackagePublishingHistory.binarypackagenameID == bpn.id, + BinaryPackagePublishingHistory.archive == archive, + BinaryPackagePublishingHistory.distroarchseries == das, + BinaryPackagePublishingHistory.binarypackagename == bpn, ) diff --git a/lib/lp/soyuz/doc/distribution.rst b/lib/lp/soyuz/doc/distribution.rst index 485fa14..cb5c996 100644 --- a/lib/lp/soyuz/doc/distribution.rst +++ b/lib/lp/soyuz/doc/distribution.rst @@ -278,7 +278,7 @@ Celso's PPA. ... archive=cprov.archive, status=PackagePublishingStatus.PUBLISHED ... ) >>> spr = cprov_bin.binarypackagerelease.build.source_package_release - >>> spr.publishings[0].setPublished() + >>> spr.publishings.first().setPublished() >>> pending_binaries = cprov_bin.copyTo( ... warty, pocket_release, cprov.archive ... ) diff --git a/lib/lp/soyuz/doc/distroarchseriesbinarypackage.rst b/lib/lp/soyuz/doc/distroarchseriesbinarypackage.rst index 60957e5..1a36167 100644 --- a/lib/lp/soyuz/doc/distroarchseriesbinarypackage.rst +++ b/lib/lp/soyuz/doc/distroarchseriesbinarypackage.rst @@ -77,7 +77,7 @@ needs to be removed. >>> pe = BinaryPackagePublishingHistory( ... binarypackagerelease=bpr.id, ... binarypackagename=bpr.binarypackagename, - ... _binarypackageformat=bpr.binpackageformat, + ... binarypackageformat=bpr.binpackageformat, ... component=main_component.id, ... section=misc_section.id, ... priority=priority, @@ -86,10 +86,6 @@ needs to be removed. ... datecreated=UTC_NOW, ... datepublished=UTC_NOW, ... pocket=PackagePublishingPocket.RELEASE, - ... datesuperseded=None, - ... supersededby=None, - ... datemadepending=None, - ... dateremoved=None, ... archive=hoary_i386.main_archive, ... sourcepackagename=bpr.build.source_package_name, ... ) @@ -126,7 +122,7 @@ needs to be removed. >>> pe = BinaryPackagePublishingHistory( ... binarypackagerelease=bpr.id, ... binarypackagename=bpr.binarypackagename, - ... _binarypackageformat=bpr.binpackageformat, + ... binarypackageformat=bpr.binpackageformat, ... component=main_component.id, ... section=misc_section.id, ... priority=priority, @@ -135,10 +131,6 @@ needs to be removed. ... datecreated=UTC_NOW, ... datepublished=UTC_NOW, ... pocket=PackagePublishingPocket.RELEASE, - ... datesuperseded=None, - ... supersededby=None, - ... datemadepending=None, - ... dateremoved=None, ... archive=hoary_i386.main_archive, ... sourcepackagename=bpr.build.source_package_name, ... ) diff --git a/lib/lp/soyuz/doc/distroseriesqueue-translations.rst b/lib/lp/soyuz/doc/distroseriesqueue-translations.rst index 7a82713..f758a6c 100644 --- a/lib/lp/soyuz/doc/distroseriesqueue-translations.rst +++ b/lib/lp/soyuz/doc/distroseriesqueue-translations.rst @@ -76,7 +76,7 @@ queue: ... distroseries=dapper.id, ... sourcepackagerelease=source_package_release.id, ... sourcepackagename=source_package_release.sourcepackagename, - ... _format=source_package_release.format, + ... format=source_package_release.format, ... component=source_package_release.component.id, ... section=source_package_release.section.id, ... status=PackagePublishingStatus.PUBLISHED, diff --git a/lib/lp/soyuz/doc/gina-multiple-arch.rst b/lib/lp/soyuz/doc/gina-multiple-arch.rst index 70c851a..fa9ca09 100644 --- a/lib/lp/soyuz/doc/gina-multiple-arch.rst +++ b/lib/lp/soyuz/doc/gina-multiple-arch.rst @@ -3,6 +3,7 @@ Gina over Multiple Architectures (and Pockets, and Components) Get the current counts of stuff in the database: + >>> from lp.services.database.interfaces import IStore >>> from lp.services.identity.model.emailaddress import EmailAddress >>> from lp.registry.model.person import Person >>> from lp.registry.model.teammembership import TeamParticipation @@ -17,13 +18,13 @@ Get the current counts of stuff in the database: >>> SBPPH = BinaryPackagePublishingHistory >>> orig_spr_count = SourcePackageRelease.select().count() - >>> orig_sspph_count = SSPPH.select().count() + >>> orig_sspph_count = IStore(SSPPH).find(SSPPH).count() >>> orig_person_count = Person.select().count() >>> orig_tp_count = TeamParticipation.select().count() >>> orig_email_count = EmailAddress.select().count() >>> orig_bpr_count = BinaryPackageRelease.select().count() >>> orig_build_count = BinaryPackageBuild.select().count() - >>> orig_sbpph_count = SBPPH.select().count() + >>> orig_sbpph_count = IStore(SBPPH).find(SBPPH).count() Create a distribution series and an arch series for dapper: @@ -127,7 +128,7 @@ breezy: >>> SourcePackageRelease.select().count() - orig_spr_count 2 - >>> print(SSPPH.select().count() - orig_sspph_count) + >>> print(IStore(SSPPH).find(SSPPH).count() - orig_sspph_count) 2 Each source package has its own maintainer (in this case, fabbione and @@ -148,7 +149,7 @@ distroarchseries: 4 >>> BinaryPackageBuild.select().count() - orig_build_count 2 - >>> SBPPH.select().count() - orig_sbpph_count + >>> IStore(SBPPH).find(SBPPH).count() - orig_sbpph_count 4 Check that the source package was correctly imported: @@ -228,8 +229,10 @@ Check that we publishing bdftopcf into the correct distroarchseries: ... ) >>> print(dar.architecturetag) i386 - >>> for entry in SBPPH.selectBy( - ... distroarchseriesID=dar.id, orderBy="binarypackagerelease" + >>> for entry in ( + ... IStore(SBPPH) + ... .find(SBPPH, distroarchseries=dar) + ... .order_by("binarypackagerelease") ... ): ... package = entry.binarypackagerelease ... print(package.binarypackagename.name, package.version) diff --git a/lib/lp/soyuz/doc/gina.rst b/lib/lp/soyuz/doc/gina.rst index ae17b6e..405cf53 100644 --- a/lib/lp/soyuz/doc/gina.rst +++ b/lib/lp/soyuz/doc/gina.rst @@ -7,6 +7,7 @@ quiet mode over it. Get the current counts of stuff in the database: + >>> from storm.locals import Desc >>> from lp.services.database.interfaces import IStore >>> from lp.services.identity.model.emailaddress import EmailAddress >>> from lp.soyuz.interfaces.publishing import active_publishing_status @@ -24,16 +25,20 @@ Get the current counts of stuff in the database: >>> SBPPH = BinaryPackagePublishingHistory >>> orig_spr_count = SourcePackageRelease.select().count() - >>> orig_sspph_count = SSPPH.select().count() + >>> orig_sspph_count = IStore(SSPPH).find(SSPPH).count() >>> orig_person_count = Person.select().count() >>> orig_tp_count = TeamParticipation.select().count() >>> orig_email_count = EmailAddress.select().count() >>> orig_bpr_count = BinaryPackageRelease.select().count() >>> orig_build_count = BinaryPackageBuild.select().count() - >>> orig_sbpph_count = SBPPH.select().count() - >>> orig_sspph_main_count = SSPPH.selectBy( - ... component_id=1, pocket=PackagePublishingPocket.RELEASE - ... ).count() + >>> orig_sbpph_count = IStore(SBPPH).find(SBPPH).count() + >>> orig_sspph_main_count = ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, component_id=1, pocket=PackagePublishingPocket.RELEASE + ... ) + ... .count() + ... ) Create a distribution release and an arch release for breezy: @@ -367,8 +372,10 @@ Testing Source Package Publishing We check that the source package publishing override facility works: - >>> for pub in SSPPH.selectBy( - ... sourcepackagereleaseID=db1.id, orderBy="distroseries" + >>> for pub in ( + ... IStore(SSPPH) + ... .find(SSPPH, sourcepackagerelease=db1) + ... .order_by(SSPPH.distroseries_id) ... ): ... print( ... "%s %s %s" @@ -390,12 +397,16 @@ successfully processed. - We had 2 errors (out of 10 Sources stanzas) in breezy: python-sqllite and util-linux (again, poor thing). - >>> print(SSPPH.select().count() - orig_sspph_count) + >>> print(IStore(SSPPH).find(SSPPH).count() - orig_sspph_count) 21 - >>> new_count = SSPPH.selectBy( - ... component_id=1, pocket=PackagePublishingPocket.RELEASE - ... ).count() + >>> new_count = ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, component_id=1, pocket=PackagePublishingPocket.RELEASE + ... ) + ... .count() + ... ) >>> print(new_count - orig_sspph_main_count) 21 @@ -415,7 +426,7 @@ work. 40 >>> BinaryPackageBuild.select().count() - orig_build_count 13 - >>> SBPPH.select().count() - orig_sbpph_count + >>> IStore(SBPPH).find(SBPPH).count() - orig_sbpph_count 46 Check that the shlibs parsing and bin-only-NMU version handling works as @@ -455,8 +466,12 @@ priority was correctly munged to "extra": We now check if the Breezy publication record has the correct priority: - >>> ed_pub = SBPPH.selectOneBy( - ... binarypackagereleaseID=ed.id, distroarchseriesID=breezy_i386.id + >>> ed_pub = ( + ... IStore(SBPPH) + ... .find( + ... SBPPH, binarypackagerelease=ed, distroarchseries=breezy_i386 + ... ) + ... .one() ... ) >>> print(ed_pub.priority) Standard @@ -637,51 +652,53 @@ changed, etc. But the overrides do generate extra publishing entries: - >>> SBPPH.select().count() - orig_sbpph_count + >>> IStore(SBPPH).find(SBPPH).count() - orig_sbpph_count 47 - >>> print(SSPPH.select().count() - orig_sspph_count) + >>> IStore(SSPPH).find(SSPPH).count() - orig_sspph_count 23 Check that the overrides we did were correctly issued. We can't use -selectOneBy because, of course, there may be multiple rows published for that +``.one()`` because, of course, there may be multiple rows published for that package -- that's what overrides actually do. - >>> from lp.services.database.sqlbase import sqlvalues - >>> x11_pub = SSPPH.select( - ... """ - ... sourcepackagerelease = %s AND - ... distroseries = %s AND - ... status in %s - ... """ - ... % sqlvalues(x11p, breezy, active_publishing_status), - ... orderBy=["-datecreated"], - ... )[0] + >>> x11_pub = ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, + ... SSPPH.sourcepackagerelease == x11p, + ... SSPPH.distroseries == breezy, + ... SSPPH.status.is_in(active_publishing_status), + ... ) + ... .order_by(Desc(SSPPH.datecreated))[0] + ... ) >>> print(x11_pub.section.name) net - >>> ed_pub = SBPPH.select( - ... """ - ... binarypackagerelease = %s AND - ... distroarchseries = %s AND - ... status in %s - ... """ - ... % sqlvalues(ed, breezy_i386, active_publishing_status), - ... orderBy=["-datecreated"], - ... )[0] + >>> ed_pub = ( + ... IStore(SBPPH) + ... .find( + ... SBPPH, + ... SBPPH.binarypackagerelease == ed, + ... SBPPH.distroarchseries == breezy_i386, + ... SBPPH.status.is_in(active_publishing_status), + ... ) + ... .order_by(Desc(SBPPH.datecreated))[0] + ... ) >>> print(ed_pub.priority) Extra >>> n = SourcePackageName.selectOneBy(name="archive-copier") >>> ac = SourcePackageRelease.selectOneBy( ... sourcepackagenameID=n.id, version="0.3.6" ... ) - >>> ac_pub = SSPPH.select( - ... """ - ... sourcepackagerelease = %s AND - ... distroseries = %s AND - ... status in %s - ... """ - ... % sqlvalues(ac, breezy, active_publishing_status), - ... orderBy=["-datecreated"], - ... )[0] + >>> ac_pub = ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, + ... SSPPH.sourcepackagerelease == ac, + ... SSPPH.distroseries == breezy, + ... SSPPH.status.is_in(active_publishing_status), + ... ) + ... .order_by(Desc(SSPPH.datecreated))[0] + ... ) >>> print(ac_pub.component.name) universe @@ -699,11 +716,11 @@ First get a set of existing publishings for both source and binary: >>> hoary = ubuntu["hoary"] >>> hoary_i386 = hoary["i386"] >>> partner_source_set = set( - ... SSPPH.select("distroseries = %s" % sqlvalues(hoary)) + ... IStore(SSPPH).find(SSPPH, distroseries=hoary) ... ) >>> partner_binary_set = set( - ... SBPPH.select("distroarchseries = %s" % sqlvalues(hoary_i386)) + ... IStore(SBPPH).find(SBPPH, distroarchseries=hoary_i386) ... ) Now run gina to import packages and convert them to partner: @@ -719,11 +736,11 @@ Now run gina to import packages and convert them to partner: There will now be a number of publishings in the partner archive: >>> partner_source_set_after = set( - ... SSPPH.select("distroseries = %s" % sqlvalues(hoary)) + ... IStore(SSPPH).find(SSPPH, distroseries=hoary) ... ) >>> partner_binary_set_after = set( - ... SBPPH.select("distroarchseries = %s" % sqlvalues(hoary_i386)) + ... IStore(SBPPH).find(SBPPH, distroarchseries=hoary_i386) ... ) >>> source_difference = partner_source_set_after - partner_source_set @@ -818,7 +835,9 @@ We will also store the number of binaries already published in debian PRIMARY archive, so we can check later it was unaffected by the import. - >>> debian_binaries = SBPPH.selectBy(archive=debian.main_archive) + >>> debian_binaries = IStore(SBPPH).find( + ... SBPPH, archive=debian.main_archive + ... ) >>> number_of_debian_binaries = debian_binaries.count() Commit the changes and run the importer script. @@ -837,7 +856,7 @@ Commit the changes and run the importer script. There is now a number of source publications in PUBLISHED status for the targeted distroseries, 'lenny'. - >>> lenny_sources = SSPPH.select("distroseries = %s" % sqlvalues(lenny)) + >>> lenny_sources = IStore(SSPPH).find(SSPPH, distroseries=lenny) >>> lenny_sources.count() 12 @@ -850,11 +869,15 @@ As mentioned before, lenny/i386 is empty, no binaries were imported. Also, the number of binaries published in the whole debian distribution hasn't changed. - >>> lenny_binaries = SBPPH.selectBy(distroarchseries=lenny_i386) + >>> lenny_binaries = IStore(SBPPH).find( + ... SBPPH, distroarchseries=lenny_i386 + ... ) >>> lenny_binaries.count() 0 - >>> debian_binaries = SBPPH.selectBy(archive=debian.main_archive) + >>> debian_binaries = IStore(SBPPH).find( + ... SBPPH, archive=debian.main_archive + ... ) >>> debian_binaries.count() == number_of_debian_binaries True diff --git a/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst b/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst index 6b73a73..1ba2b35 100644 --- a/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst +++ b/lib/lp/soyuz/doc/soyuz-set-of-uploads.rst @@ -214,6 +214,9 @@ it into the accepted queue Finally, as a very simplistic publishing process, we may need to punt any given upload into the published state, so here's a very simplistic publisher + >>> from lp.registry.model.distroseries import DistroSeries + >>> from lp.services.database.interfaces import IStore + >>> from lp.soyuz.model.distroarchseries import DistroArchSeries >>> from lp.soyuz.model.publishing import ( ... SourcePackagePublishingHistory as SPPH, ... BinaryPackagePublishingHistory as BPPH, @@ -221,29 +224,20 @@ given upload into the published state, so here's a very simplistic publisher >>> from lp.soyuz.enums import PackagePublishingStatus as PPS >>> from lp.services.database.constants import UTC_NOW >>> def simple_publish(distro): - ... srcs_to_publish = SPPH.select( - ... """ - ... SourcePackagePublishingHistory.distroseries = DistroSeries.id - ... AND DistroSeries.distribution = Distribution.id - ... AND Distribution.name = '%s' - ... AND SourcePackagePublishingHistory.status = 1""" - ... % distro, - ... clauseTables=["DistroSeries", "Distribution"], + ... srcs_to_publish = IStore(SPPH).find( + ... SPPH, + ... SPPH.distroseries == DistroSeries.id, + ... DistroSeries.distribution == Distribution.id, + ... Distribution.name == distro, + ... SPPH.status == PPS.PENDING, ... ) - ... bins_to_publish = BPPH.select( - ... """ - ... BinaryPackagePublishingHistory.distroarchseries = - ... DistroArchSeries.id - ... AND DistroArchSeries.distroseries = DistroSeries.id - ... AND DistroSeries.distribution = Distribution.id - ... AND Distribution.name = '%s' - ... AND BinaryPackagePublishingHistory.status = 1""" - ... % distro, - ... clauseTables=[ - ... "DistroArchSeries", - ... "DistroSeries", - ... "Distribution", - ... ], + ... bins_to_publish = IStore(BPPH).find( + ... BPPH, + ... BPPH.distroarchseries == DistroArchSeries.id, + ... DistroArchSeries.distroseries == DistroSeries.id, + ... DistroSeries.distribution == Distribution.id, + ... Distribution.name == distro, + ... BPPH.status == PPS.PENDING, ... ) ... published_one = False ... for src in srcs_to_publish: diff --git a/lib/lp/soyuz/doc/soyuz-upload.rst b/lib/lp/soyuz/doc/soyuz-upload.rst index 0b4fd40..f6027d6 100644 --- a/lib/lp/soyuz/doc/soyuz-upload.rst +++ b/lib/lp/soyuz/doc/soyuz-upload.rst @@ -498,7 +498,7 @@ These packages must now be in the publishing history. Let's check it. >>> for name in package_names: ... spn = SourcePackageName.selectOneBy(name=name) ... spr = SourcePackageRelease.selectOneBy(sourcepackagenameID=spn.id) - ... sspph = SSPPH.selectOneBy(sourcepackagereleaseID=spr.id) + ... sspph = IStore(SSPPH).find(SSPPH, sourcepackagerelease=spr).one() ... if sspph: ... print(name, sspph.status.title) ... else: @@ -604,9 +604,13 @@ component 'multiverse'. Check if we have new pending publishing record as expected - >>> for pub in SSPPH.selectBy( - ... sourcepackagereleaseID=etherwake_drspr.sourcepackagerelease.id, - ... orderBy=["id"], + >>> for pub in ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, + ... sourcepackagerelease=etherwake_drspr.sourcepackagerelease, + ... ) + ... .order_by(SSPPH.id) ... ): ... print(pub.status.name, pub.component.name, pub.pocket.name) PUBLISHED universe RELEASE @@ -636,9 +640,13 @@ already on disk, verify the contents are as expected. Check the publishing history again - >>> for pub in SSPPH.selectBy( - ... sourcepackagereleaseID=etherwake_drspr.sourcepackagerelease.id, - ... orderBy=["id"], + >>> for pub in ( + ... IStore(SSPPH) + ... .find( + ... SSPPH, + ... sourcepackagerelease=etherwake_drspr.sourcepackagerelease, + ... ) + ... .order_by(SSPPH.id) ... ): ... print(pub.status.name, pub.component.name, pub.pocket.name) SUPERSEDED universe RELEASE diff --git a/lib/lp/soyuz/interfaces/publishing.py b/lib/lp/soyuz/interfaces/publishing.py index 600f089..f0689a0 100644 --- a/lib/lp/soyuz/interfaces/publishing.py +++ b/lib/lp/soyuz/interfaces/publishing.py @@ -212,13 +212,13 @@ class ISourcePackagePublishingHistoryPublic(IPublishingView): required=True, readonly=True, ) - sourcepackagenameID = Int( + sourcepackagename_id = Int( title=_("The DB id for the sourcepackagename."), required=False, readonly=False, ) sourcepackagename = Attribute("The source package name being published") - sourcepackagereleaseID = Int( + sourcepackagerelease_id = Int( title=_("The DB id for the sourcepackagerelease."), required=False, readonly=False, @@ -241,7 +241,7 @@ class ISourcePackagePublishingHistoryPublic(IPublishingView): readonly=False, ) ) - distroseriesID = Attribute("DB ID for distroseries.") + distroseries_id = Attribute("DB ID for distroseries.") distroseries = exported( Reference( IDistroSeries, @@ -358,7 +358,7 @@ class ISourcePackagePublishingHistoryPublic(IPublishingView): ), exported_as="date_removed", ) - removed_byID = Attribute("DB ID for removed_by.") + removed_by_id = Attribute("DB ID for removed_by.") removed_by = exported( Reference( IPerson, @@ -438,7 +438,7 @@ class ISourcePackagePublishingHistoryPublic(IPublishingView): readonly=True, ) - creatorID = Attribute("DB ID for creator.") + creator_id = Attribute("DB ID for creator.") creator = exported( Reference( IPerson, @@ -449,7 +449,7 @@ class ISourcePackagePublishingHistoryPublic(IPublishingView): ) ) - sponsorID = Attribute("DB ID for sponsor.") + sponsor_id = Attribute("DB ID for sponsor.") sponsor = exported( Reference( IPerson, @@ -692,13 +692,13 @@ class IBinaryPackagePublishingHistoryPublic(IPublishingView): """A binary package publishing record.""" id = Int(title=_("ID"), required=True, readonly=True) - binarypackagenameID = Int( + binarypackagename_id = Int( title=_("The DB id for the binarypackagename."), required=False, readonly=False, ) binarypackagename = Attribute("The binary package name being published") - binarypackagereleaseID = Int( + binarypackagerelease_id = Int( title=_("The DB id for the binarypackagerelease."), required=False, readonly=False, @@ -734,7 +734,7 @@ class IBinaryPackagePublishingHistoryPublic(IPublishingView): readonly=True, ) ) - distroarchseriesID = Int( + distroarchseries_id = Int( title=_("The DB id for the distroarchseries."), required=False, readonly=False, diff --git a/lib/lp/soyuz/interfaces/sourcepackagerelease.py b/lib/lp/soyuz/interfaces/sourcepackagerelease.py index 8fba1f1..a6f1c64 100644 --- a/lib/lp/soyuz/interfaces/sourcepackagerelease.py +++ b/lib/lp/soyuz/interfaces/sourcepackagerelease.py @@ -117,7 +117,7 @@ class ISourcePackageRelease(Interface): "The distroseries in which this package " "was first uploaded in Launchpad" ) - publishings = Attribute("MultipleJoin on SourcepackagePublishing") + publishings = Attribute("Publishing records that link to this release") user_defined_fields = List( title=_("Sequence of user-defined fields as key-value pairs.") diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py index 1e82709..505b278 100644 --- a/lib/lp/soyuz/model/archive.py +++ b/lib/lp/soyuz/model/archive.py @@ -730,7 +730,7 @@ class Archive(SQLBase): only_unpublished=False, ): """See `IArchive`.""" - clauses = [SourcePackagePublishingHistory.archiveID == self.id] + clauses = [SourcePackagePublishingHistory.archive == self] if order_by_date: order_by = [ @@ -745,7 +745,7 @@ class Archive(SQLBase): if not order_by_date or name is not None: clauses.append( - SourcePackagePublishingHistory.sourcepackagenameID + SourcePackagePublishingHistory.sourcepackagename_id == SourcePackageName.id ) @@ -762,7 +762,7 @@ class Archive(SQLBase): if not order_by_date or version is not None: clauses.append( - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageRelease.id ) @@ -797,8 +797,7 @@ class Archive(SQLBase): if distroseries is not None: clauses.append( - SourcePackagePublishingHistory.distroseriesID - == distroseries.id + SourcePackagePublishingHistory.distroseries == distroseries ) if pocket is not None: @@ -837,7 +836,7 @@ class Archive(SQLBase): # \o/ circular imports. from lp.registry.model.distroseries import DistroSeries - ids = set(map(attrgetter("distroseriesID"), rows)) + ids = set(map(attrgetter("distroseries_id"), rows)) ids.discard(None) if ids: list(store.find(DistroSeries, DistroSeries.id.is_in(ids))) @@ -845,7 +844,7 @@ class Archive(SQLBase): ids.discard(None) if ids: list(store.find(Section, Section.id.is_in(ids))) - ids = set(map(attrgetter("sourcepackagereleaseID"), rows)) + ids = set(map(attrgetter("sourcepackagerelease_id"), rows)) ids.discard(None) if not ids: return @@ -868,10 +867,10 @@ class Archive(SQLBase): # rather than linking through BPB, BPR and BPPH since we don't condemn # sources until their binaries are all gone due to GPL compliance. clauses = [ - SourcePackagePublishingHistory.archiveID == self.id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.archive == self, + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageRelease.id, - SourcePackagePublishingHistory.sourcepackagenameID + SourcePackagePublishingHistory.sourcepackagename_id == SourcePackageName.id, SourcePackagePublishingHistory.scheduleddeletiondate == None, ] @@ -885,8 +884,7 @@ class Archive(SQLBase): if distroseries: clauses.append( - SourcePackagePublishingHistory.distroseriesID - == distroseries.id + SourcePackagePublishingHistory.distroseries == distroseries ) if name: @@ -904,7 +902,7 @@ class Archive(SQLBase): def eager_load(rows): load_related( - SourcePackageRelease, rows, ["sourcepackagereleaseID"] + SourcePackageRelease, rows, ["sourcepackagerelease_id"] ) return DecoratedResultSet(sources, pre_iter_hook=eager_load) @@ -927,7 +925,7 @@ class Archive(SQLBase): ), SourcePackagePublishingHistory.archive == self.id, SourcePackagePublishingHistory.dateremoved == None, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageReleaseFile.sourcepackagerelease_id, SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id, LibraryFileAlias.contentID == LibraryFileContent.id, @@ -968,7 +966,7 @@ class Archive(SQLBase): Returns a list of 'clauses' (to be joined in the callsite). """ - clauses = [BinaryPackagePublishingHistory.archiveID == self.id] + clauses = [BinaryPackagePublishingHistory.archive == self] if order_by_date: ordered = False @@ -991,7 +989,7 @@ class Archive(SQLBase): if ordered or name is not None: clauses.append( - BinaryPackagePublishingHistory.binarypackagenameID + BinaryPackagePublishingHistory.binarypackagename_id == BinaryPackageName.id ) @@ -1003,7 +1001,7 @@ class Archive(SQLBase): if need_bpr or ordered or version is not None: clauses.append( - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id ) @@ -1034,7 +1032,7 @@ class Archive(SQLBase): except TypeError: distroarchseries = (distroarchseries,) clauses.append( - BinaryPackagePublishingHistory.distroarchseriesID.is_in( + BinaryPackagePublishingHistory.distroarchseries_id.is_in( [d.id for d in distroarchseries] ) ) @@ -1111,7 +1109,7 @@ class Archive(SQLBase): def eager_load_api(bpphs): bprs = load_related( - BinaryPackageRelease, bpphs, ["binarypackagereleaseID"] + BinaryPackageRelease, bpphs, ["binarypackagerelease_id"] ) load_related(BinaryPackageName, bprs, ["binarypackagenameID"]) bpbs = load_related(BinaryPackageBuild, bprs, ["buildID"]) @@ -1122,7 +1120,7 @@ class Archive(SQLBase): load_related(Component, bpphs, ["component_id"]) load_related(Section, bpphs, ["section_id"]) dases = load_related( - DistroArchSeries, bpphs, ["distroarchseriesID"] + DistroArchSeries, bpphs, ["distroarchseries_id"] ) load_related(DistroSeries, dases, ["distroseriesID"]) @@ -1156,7 +1154,7 @@ class Archive(SQLBase): clauses.extend( [ - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, DistroArchSeries.distroseriesID == DistroSeries.id, ] @@ -1170,7 +1168,7 @@ class Archive(SQLBase): # architecture-specific built for 'nominatedarchindep'. nominated_arch_independent_clauses = clauses + [ DistroSeries.nominatedarchindepID - == BinaryPackagePublishingHistory.distroarchseriesID, + == BinaryPackagePublishingHistory.distroarchseries_id, ] nominated_arch_independents = store.find( BinaryPackagePublishingHistory, *nominated_arch_independent_clauses @@ -1180,7 +1178,7 @@ class Archive(SQLBase): # 'nominatedarchindep' (already included in the previous query). no_nominated_arch_independent_clauses = clauses + [ DistroSeries.nominatedarchindepID - != BinaryPackagePublishingHistory.distroarchseriesID, + != BinaryPackagePublishingHistory.distroarchseries_id, BinaryPackageRelease.architecturespecific == True, ] no_nominated_arch_independents = store.find( @@ -1216,7 +1214,7 @@ class Archive(SQLBase): ), BinaryPackagePublishingHistory.archive == self.id, BinaryPackagePublishingHistory.dateremoved == None, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageFile.binarypackagerelease_id, BinaryPackageFile.libraryfile_id == LibraryFileAlias.id, LibraryFileAlias.contentID == LibraryFileContent.id, @@ -1342,7 +1340,7 @@ class Archive(SQLBase): archive_clause = Or( [ And( - BinaryPackagePublishingHistory.archiveID == archive.id, + BinaryPackagePublishingHistory.archive == archive, BinaryPackagePublishingHistory.pocket == pocket, Component.name.is_in(components), ) @@ -2009,21 +2007,21 @@ class Archive(SQLBase): if re_issource.match(filename): clauses = ( SourcePackagePublishingHistory.archive == self.id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageReleaseFile.sourcepackagerelease_id, SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id, ) elif re_isadeb.match(filename): clauses = ( BinaryPackagePublishingHistory.archive == self.id, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageFile.binarypackagerelease_id, BinaryPackageFile.libraryfile_id == LibraryFileAlias.id, ) elif filename.endswith(".changes"): clauses = ( SourcePackagePublishingHistory.archive == self.id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == PackageUploadSource.sourcepackagerelease_id, PackageUploadSource.packageupload_id == PackageUpload.id, PackageUpload.status == PackageUploadStatus.DONE, @@ -2048,7 +2046,7 @@ class Archive(SQLBase): if filename.endswith(".diff.gz"): clauses = ( SourcePackagePublishingHistory.archive == self.id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == PackageDiff.to_source_id, PackageDiff.diff_content_id == LibraryFileAlias.id, ) @@ -2065,7 +2063,7 @@ class Archive(SQLBase): result = IStore(LibraryFileAlias).find( LibraryFileAlias, SourcePackagePublishingHistory.archive == self, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageRelease.id, SourcePackageRelease.sourcepackagename == SourcePackageName.id, SourcePackageName.name == name, @@ -2170,7 +2168,7 @@ class Archive(SQLBase): BinaryPackageRelease, BinaryPackagePublishingHistory.archive == self, BinaryPackagePublishingHistory.binarypackagename == name, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, Cast(BinaryPackageRelease.version, "text") == version, BinaryPackageBuild.id == BinaryPackageRelease.buildID, @@ -2194,7 +2192,7 @@ class Archive(SQLBase): BinaryPackageFile.libraryfile_id == LibraryFileAlias.id, LibraryFileAlias.filename == filename, BinaryPackagePublishingHistory.archive == self, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, ) .order_by(Desc(BinaryPackagePublishingHistory.id)) diff --git a/lib/lp/soyuz/model/binarypackagebuild.py b/lib/lp/soyuz/model/binarypackagebuild.py index 22351b8..22ca39a 100644 --- a/lib/lp/soyuz/model/binarypackagebuild.py +++ b/lib/lp/soyuz/model/binarypackagebuild.py @@ -1170,7 +1170,7 @@ class BinaryPackageBuildSet(SpecificBuildFarmJobSourceMixin): Join( BinaryPackageRelease, BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, ), ), where=And( diff --git a/lib/lp/soyuz/model/binarypackagename.py b/lib/lp/soyuz/model/binarypackagename.py index 1516166..a60dbab 100644 --- a/lib/lp/soyuz/model/binarypackagename.py +++ b/lib/lp/soyuz/model/binarypackagename.py @@ -88,12 +88,12 @@ class BinaryPackageNameSet: BinaryPackagePublishingHistory, Join( BinaryPackageName, - BinaryPackagePublishingHistory.binarypackagenameID + BinaryPackagePublishingHistory.binarypackagename_id == BinaryPackageName.id, ), Join( DistroArchSeries, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, ), ) @@ -103,8 +103,8 @@ class BinaryPackageNameSet: BinaryPackagePublishingHistory.status.is_in( active_publishing_status ), - BinaryPackagePublishingHistory.archiveID.is_in(archive_ids), - BinaryPackagePublishingHistory.binarypackagenameID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in(archive_ids), + BinaryPackagePublishingHistory.binarypackagename_id.is_in( name_ids ), ) diff --git a/lib/lp/soyuz/model/binarysourcereference.py b/lib/lp/soyuz/model/binarysourcereference.py index 0962186..a65a7f9 100644 --- a/lib/lp/soyuz/model/binarysourcereference.py +++ b/lib/lp/soyuz/model/binarysourcereference.py @@ -134,7 +134,7 @@ class BinarySourceReferenceSet: ) ) values.append( - (bpr.id, closest_spph.sourcepackagereleaseID, reference_type) + (bpr.id, closest_spph.sourcepackagerelease_id, reference_type) ) return create( diff --git a/lib/lp/soyuz/model/distributionsourcepackagecache.py b/lib/lp/soyuz/model/distributionsourcepackagecache.py index 31ee732..aba6e2d 100644 --- a/lib/lp/soyuz/model/distributionsourcepackagecache.py +++ b/lib/lp/soyuz/model/distributionsourcepackagecache.py @@ -89,7 +89,7 @@ class DistributionSourcePackageCache(StormBase): ) else: spn_ids = IStore(SourcePackagePublishingHistory).find( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, SourcePackagePublishingHistory.archive == archive, SourcePackagePublishingHistory.status.is_in( active_publishing_status @@ -174,8 +174,8 @@ class DistributionSourcePackageCache(StormBase): SourcePackageRelease.version, ), SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, - SourcePackagePublishingHistory.sourcepackagenameID.is_in( + == SourcePackagePublishingHistory.sourcepackagerelease_id, + SourcePackagePublishingHistory.sourcepackagename_id.is_in( [spn.id for spn in sourcepackagenames] ), SourcePackagePublishingHistory.archive == archive, diff --git a/lib/lp/soyuz/model/distributionsourcepackagerelease.py b/lib/lp/soyuz/model/distributionsourcepackagerelease.py index 9002ce6..19eb9f3 100644 --- a/lib/lp/soyuz/model/distributionsourcepackagerelease.py +++ b/lib/lp/soyuz/model/distributionsourcepackagerelease.py @@ -49,17 +49,17 @@ class DistributionSourcePackageRelease: res = Store.of(distribution).find( SourcePackagePublishingHistory, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( distribution.all_distro_archive_ids ), - SourcePackagePublishingHistory.distroseriesID == DistroSeries.id, + SourcePackagePublishingHistory.distroseries_id == DistroSeries.id, DistroSeries.distribution == distribution, - SourcePackagePublishingHistory.sourcepackagereleaseID.is_in( + SourcePackagePublishingHistory.sourcepackagerelease_id.is_in( spr.id for spr in sprs ), ) return res.order_by( - Desc(SourcePackagePublishingHistory.sourcepackagereleaseID), + Desc(SourcePackagePublishingHistory.sourcepackagerelease_id), Desc(SourcePackagePublishingHistory.datecreated), Desc(SourcePackagePublishingHistory.id), ) @@ -118,7 +118,7 @@ class DistributionSourcePackageRelease: BinaryPackageRelease.build == BinaryPackageBuild.id, BinaryPackagePublishingHistory.binarypackagerelease == BinaryPackageRelease.id, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), *clauses, @@ -165,7 +165,7 @@ class DistributionSourcePackageRelease: Join( DistroArchSeries, DistroArchSeries.id - == BinaryPackagePublishingHistory.distroarchseriesID, + == BinaryPackagePublishingHistory.distroarchseries_id, ), Join( DistroSeries, @@ -174,7 +174,7 @@ class DistributionSourcePackageRelease: Join( BinaryPackageRelease, BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, ), Join( BinaryPackageName, @@ -202,7 +202,7 @@ class DistributionSourcePackageRelease: .find( result_row, DistroSeries.distribution == self.distribution, - BinaryPackagePublishingHistory.archiveID.is_in(archive_ids), + BinaryPackagePublishingHistory.archive_id.is_in(archive_ids), BinaryPackageBuild.source_package_release == self.sourcepackagerelease, ) @@ -236,12 +236,12 @@ class DistributionSourcePackageRelease: Join( BinaryPackagePublishingHistory, BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, ), Join( DistroArchSeries, DistroArchSeries.id - == BinaryPackagePublishingHistory.distroarchseriesID, + == BinaryPackagePublishingHistory.distroarchseries_id, ), Join( BinaryPackageName, @@ -254,7 +254,7 @@ class DistributionSourcePackageRelease: result_row, And( DistroArchSeries.distroseriesID == distroseries.id, - BinaryPackagePublishingHistory.archiveID.is_in(archive_ids), + BinaryPackagePublishingHistory.archive_id.is_in(archive_ids), BinaryPackageBuild.source_package_release == self.sourcepackagerelease, ), diff --git a/lib/lp/soyuz/model/distroarchseries.py b/lib/lp/soyuz/model/distroarchseries.py index 66cd8b1..db9c6d8 100644 --- a/lib/lp/soyuz/model/distroarchseries.py +++ b/lib/lp/soyuz/model/distroarchseries.py @@ -115,7 +115,7 @@ class DistroArchSeries(SQLBase): .find( BinaryPackagePublishingHistory, BinaryPackagePublishingHistory.distroarchseries == self, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distroseries.distribution.all_distro_archive_ids ), BinaryPackagePublishingHistory.status @@ -302,7 +302,7 @@ class DistroArchSeries(SQLBase): clauses = [ BinaryPackagePublishingHistory.distroarchseries == self, - BinaryPackagePublishingHistory.archiveID.is_in(archives), + BinaryPackagePublishingHistory.archive_id.is_in(archives), BinaryPackagePublishingHistory.status.is_in( active_publishing_status ), diff --git a/lib/lp/soyuz/model/distroarchseriesbinarypackage.py b/lib/lp/soyuz/model/distroarchseriesbinarypackage.py index d85b423..2e710e3 100644 --- a/lib/lp/soyuz/model/distroarchseriesbinarypackage.py +++ b/lib/lp/soyuz/model/distroarchseriesbinarypackage.py @@ -115,12 +115,12 @@ class DistroArchSeriesBinaryPackage: return [ BinaryPackagePublishingHistory.distroarchseries == self.distroarchseries, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), BinaryPackagePublishingHistory.binarypackagename == self.binarypackagename, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, ] diff --git a/lib/lp/soyuz/model/distroarchseriesbinarypackagerelease.py b/lib/lp/soyuz/model/distroarchseriesbinarypackagerelease.py index 8d6a5b2..cdf4c61 100644 --- a/lib/lp/soyuz/model/distroarchseriesbinarypackagerelease.py +++ b/lib/lp/soyuz/model/distroarchseriesbinarypackagerelease.py @@ -93,7 +93,7 @@ class DistroArchSeriesBinaryPackageRelease: == self.binarypackagerelease, BinaryPackagePublishingHistory.distroarchseries == self.distroarchseries, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), ] @@ -122,7 +122,7 @@ class DistroArchSeriesBinaryPackageRelease: BinaryPackagePublishingHistory, BinaryPackagePublishingHistory.distroarchseries == self.distroarchseries, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), BinaryPackagePublishingHistory.binarypackagerelease diff --git a/lib/lp/soyuz/model/distroseriesbinarypackage.py b/lib/lp/soyuz/model/distroseriesbinarypackage.py index 3e3f4c5..6a5f6c7 100644 --- a/lib/lp/soyuz/model/distroseriesbinarypackage.py +++ b/lib/lp/soyuz/model/distroseriesbinarypackage.py @@ -114,7 +114,7 @@ class DistroSeriesBinaryPackage: == BinaryPackageRelease.id, BinaryPackagePublishingHistory.binarypackagename == self.binarypackagename, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.distribution.all_distro_archive_ids ), BinaryPackagePublishingHistory.dateremoved == None, diff --git a/lib/lp/soyuz/model/distroseriesdifferencejob.py b/lib/lp/soyuz/model/distroseriesdifferencejob.py index 9420cb6..d1e73f5 100644 --- a/lib/lp/soyuz/model/distroseriesdifferencejob.py +++ b/lib/lp/soyuz/model/distroseriesdifferencejob.py @@ -77,7 +77,7 @@ def create_multiple_jobs(derived_series, parent_series): """ store = IStore(SourcePackagePublishingHistory) spn_ids = store.find( - SourcePackagePublishingHistory.sourcepackagenameID, + SourcePackagePublishingHistory.sourcepackagename_id, SourcePackagePublishingHistory.distroseries == derived_series.id, SourcePackagePublishingHistory.status.is_in(active_publishing_status), ) diff --git a/lib/lp/soyuz/model/distroseriespackagecache.py b/lib/lp/soyuz/model/distroseriespackagecache.py index 769e654..6c09b45 100644 --- a/lib/lp/soyuz/model/distroseriespackagecache.py +++ b/lib/lp/soyuz/model/distroseriespackagecache.py @@ -63,8 +63,8 @@ class DistroSeriesPackageCache(StormBase): bpn_ids = ( IStore(BinaryPackagePublishingHistory) .find( - BinaryPackagePublishingHistory.binarypackagenameID, - BinaryPackagePublishingHistory.distroarchseriesID.is_in( + BinaryPackagePublishingHistory.binarypackagename_id, + BinaryPackagePublishingHistory.distroarchseries_id.is_in( Select( DistroArchSeries.id, tables=[DistroArchSeries], @@ -80,7 +80,7 @@ class DistroSeriesPackageCache(StormBase): # Not necessary for correctness, but useful for testability; and # at the time of writing the sort only adds perhaps 10-20 ms to # the query time on staging. - .order_by(BinaryPackagePublishingHistory.binarypackagenameID) + .order_by(BinaryPackagePublishingHistory.binarypackagename_id) ) return bulk.load(BinaryPackageName, bpn_ids) @@ -155,11 +155,11 @@ class DistroSeriesPackageCache(StormBase): Max(BinaryPackageRelease.datecreated), ), BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, - BinaryPackagePublishingHistory.binarypackagenameID.is_in( + == BinaryPackagePublishingHistory.binarypackagerelease_id, + BinaryPackagePublishingHistory.binarypackagename_id.is_in( [bpn.id for bpn in binarypackagenames] ), - BinaryPackagePublishingHistory.distroarchseriesID.is_in( + BinaryPackagePublishingHistory.distroarchseries_id.is_in( Select( DistroArchSeries.id, tables=[DistroArchSeries], diff --git a/lib/lp/soyuz/model/publishing.py b/lib/lp/soyuz/model/publishing.py index ba47074..a6161c9 100644 --- a/lib/lp/soyuz/model/publishing.py +++ b/lib/lp/soyuz/model/publishing.py @@ -20,7 +20,7 @@ from pathlib import Path from storm.databases.postgres import JSON from storm.expr import And, Cast, Desc, Join, LeftJoin, Not, Or, Sum from storm.info import ClassAlias -from storm.properties import Int +from storm.properties import DateTime, Int, Unicode from storm.references import Reference from storm.store import Store from storm.zope import IResultSet @@ -39,12 +39,10 @@ from lp.registry.model.sourcepackagename import SourcePackageName from lp.services.channels import channel_list_to_string, channel_string_to_list from lp.services.database import bulk from lp.services.database.constants import UTC_NOW -from lp.services.database.datetimecol import UtcDateTimeCol from lp.services.database.decoratedresultset import DecoratedResultSet from lp.services.database.enumcol import DBEnum from lp.services.database.interfaces import IPrimaryStore, IStore -from lp.services.database.sqlbase import SQLBase -from lp.services.database.sqlobject import ForeignKey, IntCol, StringCol +from lp.services.database.stormbase import StormBase from lp.services.database.stormexpr import IsDistinctFrom from lp.services.librarian.browser import ProxiedLibraryFileAlias from lp.services.librarian.model import LibraryFileAlias, LibraryFileContent @@ -236,14 +234,17 @@ class ArchivePublisherBase: @implementer(ISourcePackagePublishingHistory) -class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): +class SourcePackagePublishingHistory(StormBase, ArchivePublisherBase): """A source package release publishing record.""" - sourcepackagename = ForeignKey( - foreignKey="SourcePackageName", dbName="sourcepackagename" - ) - sourcepackagerelease = ForeignKey( - foreignKey="SourcePackageRelease", dbName="sourcepackagerelease" + __storm_table__ = "SourcePackagePublishingHistory" + + id = Int(primary=True) + sourcepackagename_id = Int(name="sourcepackagename") + sourcepackagename = Reference(sourcepackagename_id, "SourcePackageName.id") + sourcepackagerelease_id = Int(name="sourcepackagerelease") + sourcepackagerelease = Reference( + sourcepackagerelease_id, "SourcePackageRelease.id" ) _format = DBEnum( name="format", @@ -251,7 +252,8 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): default=SourcePackageType.DPKG, allow_none=True, ) - distroseries = ForeignKey(foreignKey="DistroSeries", dbName="distroseries") + distroseries_id = Int(name="distroseries") + distroseries = Reference(distroseries_id, "DistroSeries.id") # DB constraint: non-nullable for SourcePackageType.DPKG. component_id = Int(name="component", allow_none=True) component = Reference(component_id, "Component.id") @@ -259,15 +261,14 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): section_id = Int(name="section", allow_none=True) section = Reference(section_id, "Section.id") status = DBEnum(enum=PackagePublishingStatus) - scheduleddeletiondate = UtcDateTimeCol(default=None) - datepublished = UtcDateTimeCol(default=None) - datecreated = UtcDateTimeCol(default=UTC_NOW) - datesuperseded = UtcDateTimeCol(default=None) - supersededby = ForeignKey( - foreignKey="SourcePackageRelease", dbName="supersededby", default=None - ) - datemadepending = UtcDateTimeCol(default=None) - dateremoved = UtcDateTimeCol(default=None) + scheduleddeletiondate = DateTime(default=None, tzinfo=timezone.utc) + datepublished = DateTime(default=None, tzinfo=timezone.utc) + datecreated = DateTime(default=UTC_NOW, tzinfo=timezone.utc) + datesuperseded = DateTime(default=None, tzinfo=timezone.utc) + supersededby_id = Int(name="supersededby", default=None) + supersededby = Reference(supersededby_id, "SourcePackageRelease.id") + datemadepending = DateTime(default=None, tzinfo=timezone.utc) + dateremoved = DateTime(default=None, tzinfo=timezone.utc) pocket = DBEnum( name="pocket", enum=PackagePublishingPocket, @@ -275,39 +276,77 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): allow_none=False, ) _channel = JSON(name="channel", allow_none=True) - archive = ForeignKey(dbName="archive", foreignKey="Archive", notNull=True) - copied_from_archive = ForeignKey( - dbName="copied_from_archive", foreignKey="Archive", notNull=False + archive_id = Int(name="archive", allow_none=False) + archive = Reference(archive_id, "Archive.id") + copied_from_archive_id = Int(name="copied_from_archive", allow_none=True) + copied_from_archive = Reference(copied_from_archive_id, "Archive.id") + removed_by_id = Int( + name="removed_by", validator=validate_public_person, default=None ) - removed_by = ForeignKey( - dbName="removed_by", - foreignKey="Person", - storm_validator=validate_public_person, - default=None, - ) - removal_comment = StringCol(dbName="removal_comment", default=None) - ancestor = ForeignKey( - dbName="ancestor", - foreignKey="SourcePackagePublishingHistory", - default=None, - ) - creator = ForeignKey( - dbName="creator", - foreignKey="Person", - storm_validator=validate_public_person, - notNull=False, + removed_by = Reference(removed_by_id, "Person.id") + removal_comment = Unicode(name="removal_comment", default=None) + ancestor_id = Int(name="ancestor", default=None) + ancestor = Reference(ancestor_id, "SourcePackagePublishingHistory.id") + creator_id = Int( + name="creator", + validator=validate_public_person, + allow_none=True, default=None, ) - sponsor = ForeignKey( - dbName="sponsor", - foreignKey="Person", - storm_validator=validate_public_person, - notNull=False, + creator = Reference(creator_id, "Person.id") + sponsor_id = Int( + name="sponsor", + validator=validate_public_person, + allow_none=True, default=None, ) + sponsor = Reference(sponsor_id, "Person.id") packageupload_id = Int(name="packageupload", allow_none=True, default=None) packageupload = Reference(packageupload_id, "PackageUpload.id") + def __init__( + self, + sourcepackagename, + sourcepackagerelease, + format, + distroseries, + pocket, + status, + archive, + component=None, + section=None, + scheduleddeletiondate=None, + datepublished=None, + datecreated=None, + dateremoved=None, + channel=None, + copied_from_archive=None, + ancestor=None, + creator=None, + sponsor=None, + packageupload=None, + ): + super().__init__() + self.sourcepackagename = sourcepackagename + self.sourcepackagerelease = sourcepackagerelease + self._format = format + self.distroseries = distroseries + self.pocket = pocket + self.status = status + self.archive = archive + self.component = component + self.section = section + self.scheduleddeletiondate = scheduleddeletiondate + self.datepublished = datepublished + self.datecreated = datecreated + self.dateremoved = dateremoved + self._channel = channel + self.copied_from_archive = copied_from_archive + self.ancestor = ancestor + self.creator = creator + self.sponsor = sponsor + self.packageupload = packageupload + @property def format(self): # XXX cjwatson 2022-04-04: Remove once this column has been backfilled. @@ -359,22 +398,22 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): Store.of(self) .find( BinaryPackagePublishingHistory, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, - BinaryPackagePublishingHistory.archiveID == self.archiveID, + BinaryPackagePublishingHistory.archive == self.archive_id, BinaryPackagePublishingHistory.pocket == self.pocket, BinaryPackageBuild.id == BinaryPackageRelease.buildID, BinaryPackageBuild.source_package_release_id - == self.sourcepackagereleaseID, - DistroArchSeries.distroseriesID == self.distroseriesID, + == self.sourcepackagerelease_id, + DistroArchSeries.distroseriesID == self.distroseries_id, ) .order_by(Desc(BinaryPackagePublishingHistory.id)) ) # Preload attached BinaryPackageReleases. - bpr_ids = {pub.binarypackagereleaseID for pub in binary_publications} + bpr_ids = {pub.binarypackagerelease_id for pub in binary_publications} list( Store.of(self).find( BinaryPackageRelease, BinaryPackageRelease.id.is_in(bpr_ids) @@ -662,7 +701,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): LibraryFileContent.id == LibraryFileAlias.contentID, LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id, SourcePackageReleaseFile.sourcepackagerelease - == self.sourcepackagereleaseID, + == self.sourcepackagerelease_id, ) source_urls = proxied_source_urls( [source for source, _ in sources], self @@ -746,21 +785,23 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase): @implementer(IBinaryPackagePublishingHistory) -class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): +class BinaryPackagePublishingHistory(StormBase, ArchivePublisherBase): """A binary package publishing record.""" - binarypackagename = ForeignKey( - foreignKey="BinaryPackageName", dbName="binarypackagename" - ) - binarypackagerelease = ForeignKey( - foreignKey="BinaryPackageRelease", dbName="binarypackagerelease" + __storm_table__ = "BinaryPackagePublishingHistory" + + id = Int(primary=True) + binarypackagename_id = Int(name="binarypackagename") + binarypackagename = Reference(binarypackagename_id, "BinaryPackageName.id") + binarypackagerelease_id = Int(name="binarypackagerelease") + binarypackagerelease = Reference( + binarypackagerelease_id, "BinaryPackageRelease.id" ) _binarypackageformat = DBEnum( name="binarypackageformat", enum=BinaryPackageFormat, allow_none=True ) - distroarchseries = ForeignKey( - foreignKey="DistroArchSeries", dbName="distroarchseries" - ) + distroarchseries_id = Int(name="distroarchseries") + distroarchseries = Reference(distroarchseries_id, "DistroArchSeries.id") # DB constraint: non-nullable for BinaryPackageFormat.{DEB,UDEB,DDEB}. component_id = Int(name="component", allow_none=True) component = Reference(component_id, "Component.id") @@ -772,43 +813,80 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): name="priority", enum=PackagePublishingPriority, allow_none=True ) status = DBEnum(name="status", enum=PackagePublishingStatus) - phased_update_percentage = IntCol( - dbName="phased_update_percentage", notNull=False, default=None + phased_update_percentage = Int( + name="phased_update_percentage", allow_none=True, default=None ) - scheduleddeletiondate = UtcDateTimeCol(default=None) - creator = ForeignKey( - dbName="creator", - foreignKey="Person", - storm_validator=validate_public_person, - notNull=False, + scheduleddeletiondate = DateTime(default=None, tzinfo=timezone.utc) + creator_id = Int( + name="creator", + validator=validate_public_person, + allow_none=True, default=None, ) - datepublished = UtcDateTimeCol(default=None) - datecreated = UtcDateTimeCol(default=UTC_NOW) - datesuperseded = UtcDateTimeCol(default=None) - supersededby = ForeignKey( - foreignKey="BinaryPackageBuild", dbName="supersededby", default=None - ) - datemadepending = UtcDateTimeCol(default=None) - dateremoved = UtcDateTimeCol(default=None) + creator = Reference(creator_id, "Person.id") + datepublished = DateTime(default=None, tzinfo=timezone.utc) + datecreated = DateTime(default=UTC_NOW, tzinfo=timezone.utc) + datesuperseded = DateTime(default=None, tzinfo=timezone.utc) + supersededby_id = Int(name="supersededby", default=None) + supersededby = Reference(supersededby_id, "BinaryPackageBuild.id") + datemadepending = DateTime(default=None, tzinfo=timezone.utc) + dateremoved = DateTime(default=None, tzinfo=timezone.utc) pocket = DBEnum(name="pocket", enum=PackagePublishingPocket) _channel = JSON(name="channel", allow_none=True) - archive = ForeignKey(dbName="archive", foreignKey="Archive", notNull=True) - copied_from_archive = ForeignKey( - dbName="copied_from_archive", foreignKey="Archive", notNull=False - ) - removed_by = ForeignKey( - dbName="removed_by", - foreignKey="Person", - storm_validator=validate_public_person, - default=None, - ) - removal_comment = StringCol(dbName="removal_comment", default=None) - sourcepackagename = ForeignKey( - foreignKey="SourcePackageName", - dbName="sourcepackagename", - notNull=False, + archive_id = Int(name="archive", allow_none=False) + archive = Reference(archive_id, "Archive.id") + copied_from_archive_id = Int(name="copied_from_archive", allow_none=True) + copied_from_archive = Reference(copied_from_archive_id, "Archive.id") + removed_by_id = Int( + name="removed_by", validator=validate_public_person, default=None ) + removed_by = Reference(removed_by_id, "Person.id") + removal_comment = Unicode(name="removal_comment", default=None) + sourcepackagename_id = Int(name="sourcepackagename", allow_none=True) + sourcepackagename = Reference(sourcepackagename_id, "SourcePackageName.id") + + def __init__( + self, + binarypackagename, + binarypackagerelease, + binarypackageformat, + distroarchseries, + pocket, + status, + archive, + sourcepackagename, + component=None, + section=None, + priority=None, + phased_update_percentage=None, + scheduleddeletiondate=None, + creator=None, + datepublished=None, + datecreated=None, + dateremoved=None, + channel=None, + copied_from_archive=None, + ): + super().__init__() + self.binarypackagename = binarypackagename + self.binarypackagerelease = binarypackagerelease + self._binarypackageformat = binarypackageformat + self.distroarchseries = distroarchseries + self.pocket = pocket + self.status = status + self.archive = archive + self.sourcepackagename = sourcepackagename + self.component = component + self.section = section + self.priority = priority + self.phased_update_percentage = phased_update_percentage + self.scheduleddeletiondate = scheduleddeletiondate + self.creator = creator + self.datepublished = datepublished + self.datecreated = datecreated + self.dateremoved = dateremoved + self._channel = channel + self.copied_from_archive = copied_from_archive @property def binarypackageformat(self): @@ -961,7 +1039,7 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): BinaryPackagePublishingHistory.status.is_in( active_publishing_status ), - BinaryPackagePublishingHistory.distroarchseriesID.is_in( + BinaryPackagePublishingHistory.distroarchseries_id.is_in( available_architectures ), binarypackagerelease=self.binarypackagerelease, @@ -1130,7 +1208,7 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): BinaryPackagePublishingHistory( binarypackagename=debug.binarypackagename, binarypackagerelease=debug.binarypackagerelease, - _binarypackageformat=debug.binarypackageformat, + binarypackageformat=debug.binarypackageformat, distroarchseries=debug.distroarchseries, status=PackagePublishingStatus.PENDING, datecreated=UTC_NOW, @@ -1141,15 +1219,15 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): creator=creator, archive=debug.archive, phased_update_percentage=new_phased_update_percentage, - _channel=removeSecurityProxy(debug)._channel, + channel=removeSecurityProxy(debug)._channel, sourcepackagename=debug.sourcepackagename, ) # Append the modified package publishing entry - return BinaryPackagePublishingHistory( + bpph = BinaryPackagePublishingHistory( binarypackagename=bpr.binarypackagename, binarypackagerelease=bpr, - _binarypackageformat=bpr.binpackageformat, + binarypackageformat=bpr.binpackageformat, distroarchseries=self.distroarchseries, status=PackagePublishingStatus.PENDING, datecreated=UTC_NOW, @@ -1160,13 +1238,15 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): archive=self.archive, creator=creator, phased_update_percentage=new_phased_update_percentage, - _channel=self._channel, + channel=self._channel, sourcepackagename=( bpr.build.source_package_name if bpr.build is not None else None ), ) + IStore(bpph).flush() + return bpph def copyTo(self, distroseries, pocket, archive): """See `BinaryPackagePublishingHistory`.""" @@ -1257,7 +1337,7 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase): LibraryFileContent.id == LibraryFileAlias.contentID, LibraryFileAlias.id == BinaryPackageFile.libraryfile_id, BinaryPackageFile.binarypackagerelease - == self.binarypackagereleaseID, + == self.binarypackagerelease_id, ) binary_urls = proxied_urls( [binary for binary, _ in binaries], self.archive @@ -1351,10 +1431,10 @@ class PublishingSet: # conflicting binaries from other sources. def make_package_condition(archive, das, bpr): return And( - BinaryPackagePublishingHistory.archiveID == archive.id, - BinaryPackagePublishingHistory.distroarchseriesID == das.id, - BinaryPackagePublishingHistory.binarypackagenameID - == bpr.binarypackagenameID, + BinaryPackagePublishingHistory.archive == archive, + BinaryPackagePublishingHistory.distroarchseries == das, + BinaryPackagePublishingHistory.binarypackagename + == bpr.binarypackagename, Cast(BinaryPackageRelease.version, "text") == bpr.version, ) @@ -1366,7 +1446,7 @@ class PublishingSet: IPrimaryStore(BinaryPackagePublishingHistory) .find( ( - BinaryPackagePublishingHistory.distroarchseriesID, + BinaryPackagePublishingHistory.distroarchseries_id, BinaryPackageRelease.binarypackagenameID, BinaryPackageRelease.version, ), @@ -1381,7 +1461,7 @@ class PublishingSet: active_publishing_status ), BinaryPackageRelease.id - == BinaryPackagePublishingHistory.binarypackagereleaseID, + == BinaryPackagePublishingHistory.binarypackagerelease_id, Or(*candidates), ) .config(distinct=True) @@ -1610,7 +1690,7 @@ class PublishingSet: archive=archive, sourcepackagename=sourcepackagerelease.sourcepackagename, sourcepackagerelease=sourcepackagerelease, - _format=sourcepackagerelease.format, + format=sourcepackagerelease.format, component=get_component(archive, distroseries, component), section=section, status=PackagePublishingStatus.PENDING, @@ -1619,7 +1699,7 @@ class PublishingSet: creator=creator, sponsor=sponsor, packageupload=packageupload, - _channel=channel, + channel=channel, ) DistributionSourcePackage.ensure(pub) @@ -1655,9 +1735,9 @@ class PublishingSet: # We'll be looking for builds in the same distroseries as the # SPPH for the same release. builds_for_distroseries_expr = ( - SourcePackagePublishingHistory.distroseriesID + SourcePackagePublishingHistory.distroseries_id == BinaryPackageBuild.distro_series_id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == BinaryPackageBuild.source_package_release_id, SourcePackagePublishingHistory.id.is_in(source_publication_ids), DistroArchSeries.id == BinaryPackageBuild.distro_arch_series_id, @@ -1669,7 +1749,7 @@ class PublishingSet: BinaryPackageBuild, builds_for_distroseries_expr, ( - SourcePackagePublishingHistory.archiveID + SourcePackagePublishingHistory.archive_id == BinaryPackageBuild.archive_id ), *extra_exprs, @@ -1682,11 +1762,11 @@ class PublishingSet: BinaryPackageBuild, builds_for_distroseries_expr, ( - SourcePackagePublishingHistory.archiveID + SourcePackagePublishingHistory.archive_id != BinaryPackageBuild.archive_id ), BinaryPackagePublishingHistory.archive - == SourcePackagePublishingHistory.archiveID, + == SourcePackagePublishingHistory.archive_id, BinaryPackagePublishingHistory.binarypackagerelease == BinaryPackageRelease.id, BinaryPackageRelease.build == BinaryPackageBuild.id, @@ -1768,20 +1848,20 @@ class PublishingSet: ): """Return the join linking sources with binaries.""" join = [ - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == BinaryPackageBuild.source_package_release_id, BinaryPackageRelease.build == BinaryPackageBuild.id, BinaryPackageRelease.binarypackagenameID == BinaryPackageName.id, - SourcePackagePublishingHistory.distroseriesID + SourcePackagePublishingHistory.distroseries_id == DistroArchSeries.distroseriesID, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, BinaryPackagePublishingHistory.binarypackagerelease == BinaryPackageRelease.id, BinaryPackagePublishingHistory.pocket == SourcePackagePublishingHistory.pocket, - BinaryPackagePublishingHistory.archiveID - == SourcePackagePublishingHistory.archiveID, + BinaryPackagePublishingHistory.archive_id + == SourcePackagePublishingHistory.archive_id, SourcePackagePublishingHistory.id.is_in(source_publication_ids), ] @@ -1852,12 +1932,12 @@ class PublishingSet: LibraryFileAlias.id == BinaryPackageFile.libraryfile_id, BinaryPackageFile.binarypackagerelease == BinaryPackageRelease.id, BinaryPackageRelease.buildID == BinaryPackageBuild.id, - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == BinaryPackageBuild.source_package_release_id, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, - BinaryPackagePublishingHistory.archiveID - == SourcePackagePublishingHistory.archiveID, + BinaryPackagePublishingHistory.archive_id + == SourcePackagePublishingHistory.archive_id, SourcePackagePublishingHistory.id.is_in(source_publication_ids), ) @@ -1879,7 +1959,7 @@ class PublishingSet: LibraryFileContent.id == LibraryFileAlias.contentID, LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id, SourcePackageReleaseFile.sourcepackagerelease - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, SourcePackagePublishingHistory.id.is_in(source_publication_ids), ) @@ -1953,10 +2033,10 @@ class PublishingSet: BinaryPackageBuild.source_package_release_id == sourcepackagerelease.id, BinaryPackageRelease.build == BinaryPackageBuild.id, - BinaryPackagePublishingHistory.binarypackagereleaseID + BinaryPackagePublishingHistory.binarypackagerelease_id == BinaryPackageRelease.id, - BinaryPackagePublishingHistory.archiveID == archive.id, - BinaryPackagePublishingHistory.distroarchseriesID + BinaryPackagePublishingHistory.archive == archive, + BinaryPackagePublishingHistory.distroarchseries_id == DistroArchSeries.id, DistroArchSeries.distroseriesID == distroseries.id, BinaryPackagePublishingHistory.pocket == pocket, @@ -1998,7 +2078,7 @@ class PublishingSet: # build_source_stanza_fields. bulk.load_related(Section, spphs, ["section_id"]) sprs = bulk.load_related( - SourcePackageRelease, spphs, ["sourcepackagereleaseID"] + SourcePackageRelease, spphs, ["sourcepackagerelease_id"] ) bulk.load_related(SourcePackageName, sprs, ["sourcepackagenameID"]) spr_ids = set(map(attrgetter("id"), sprs)) @@ -2057,7 +2137,7 @@ class PublishingSet: # build_binary_stanza_fields. bulk.load_related(Section, bpphs, ["section_id"]) bprs = bulk.load_related( - BinaryPackageRelease, bpphs, ["binarypackagereleaseID"] + BinaryPackageRelease, bpphs, ["binarypackagerelease_id"] ) bpbs = bulk.load_related(BinaryPackageBuild, bprs, ["buildID"]) sprs = bulk.load_related( @@ -2107,7 +2187,7 @@ class PublishingSet: PackageUploadSource.sourcepackagerelease == SourcePackageRelease.id, SourcePackageRelease.id - == SourcePackagePublishingHistory.sourcepackagereleaseID, + == SourcePackagePublishingHistory.sourcepackagerelease_id, SourcePackagePublishingHistory.id.is_in(source_publication_ids), ) @@ -2259,7 +2339,7 @@ class PublishingSet: affected_pubs.set( status=PackagePublishingStatus.DELETED, datesuperseded=UTC_NOW, - removed_byID=removed_by_id, + removed_by_id=removed_by_id, removal_comment=removal_comment, ) @@ -2277,7 +2357,7 @@ class PublishingSet: ).set( status=PackagePublishingStatus.DELETED, datesuperseded=UTC_NOW, - removed_byID=removed_by_id, + removed_by_id=removed_by_id, removal_comment=removal_comment, ) @@ -2290,11 +2370,11 @@ class PublishingSet: deb_bpph, Join( BinaryPackageRelease, - deb_bpph.binarypackagereleaseID == BinaryPackageRelease.id, + deb_bpph.binarypackagerelease_id == BinaryPackageRelease.id, ), Join( debug_bpph, - debug_bpph.binarypackagereleaseID + debug_bpph.binarypackagerelease_id == BinaryPackageRelease.debug_packageID, ), ] @@ -2305,8 +2385,8 @@ class PublishingSet: debug_bpph, deb_bpph.id.is_in(ids), debug_bpph.status.is_in(active_publishing_status), - deb_bpph.archiveID == debug_bpph.archiveID, - deb_bpph.distroarchseriesID == debug_bpph.distroarchseriesID, + deb_bpph.archive_id == debug_bpph.archive_id, + deb_bpph.distroarchseries_id == debug_bpph.distroarchseries_id, deb_bpph.pocket == debug_bpph.pocket, deb_bpph.component_id == debug_bpph.component_id, deb_bpph.section_id == debug_bpph.section_id, @@ -2393,10 +2473,10 @@ def get_current_source_releases( series_clauses = [] for context, package_names in context_sourcepackagenames.items(): clause = And( - SourcePackagePublishingHistory.sourcepackagenameID.is_in( + SourcePackagePublishingHistory.sourcepackagename_id.is_in( map(attrgetter("id"), package_names) ), - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( archive_ids_func(context) ), package_clause_func(context), @@ -2409,7 +2489,7 @@ def get_current_source_releases( IStore(SourcePackageRelease) .find( (SourcePackageRelease, key_col), - SourcePackagePublishingHistory.sourcepackagereleaseID + SourcePackagePublishingHistory.sourcepackagerelease_id == SourcePackageRelease.id, SourcePackagePublishingHistory.status.is_in( active_publishing_status diff --git a/lib/lp/soyuz/model/queue.py b/lib/lp/soyuz/model/queue.py index 7b55896..fd7b594 100644 --- a/lib/lp/soyuz/model/queue.py +++ b/lib/lp/soyuz/model/queue.py @@ -1891,9 +1891,9 @@ def prefill_packageupload_caches(uploads, puses, pubs, pucs, logs): load_related(Component, sprs, ["component_id"]) load_related(LibraryFileAlias, uploads, ["changes_file_id"]) publications = load_referencing( - SourcePackagePublishingHistory, sprs, ["sourcepackagereleaseID"] + SourcePackagePublishingHistory, sprs, ["sourcepackagerelease_id"] ) - load_related(Archive, publications, ["archiveID"]) + load_related(Archive, publications, ["archive_id"]) diffs = getUtility(IPackageDiffSet).getDiffsToReleases( sprs, preload_for_display=True ) diff --git a/lib/lp/soyuz/model/sourcepackagerelease.py b/lib/lp/soyuz/model/sourcepackagerelease.py index c3b7ed3..8c27732 100644 --- a/lib/lp/soyuz/model/sourcepackagerelease.py +++ b/lib/lp/soyuz/model/sourcepackagerelease.py @@ -39,11 +39,7 @@ from lp.services.database.decoratedresultset import DecoratedResultSet from lp.services.database.enumcol import DBEnum from lp.services.database.interfaces import IStore from lp.services.database.sqlbase import SQLBase, cursor, sqlvalues -from lp.services.database.sqlobject import ( - ForeignKey, - SQLMultipleJoin, - StringCol, -) +from lp.services.database.sqlobject import ForeignKey, StringCol from lp.services.librarian.model import LibraryFileAlias, LibraryFileContent from lp.services.propertycache import cachedproperty, get_property_cache from lp.soyuz.interfaces.archive import MAIN_ARCHIVE_PURPOSES @@ -143,13 +139,6 @@ class SourcePackageRelease(SQLBase): dsc_format = StringCol(dbName="dsc_format") dsc_binaries = StringCol(dbName="dsc_binaries") - # MultipleJoins - publishings = SQLMultipleJoin( - "SourcePackagePublishingHistory", - joinColumn="sourcepackagerelease", - orderBy="-datecreated", - ) - _user_defined_fields = StringCol(dbName="user_defined_fields") def __init__(self, *args, **kwargs): @@ -281,12 +270,36 @@ class SourcePackageRelease(SQLBase): def title(self): return "%s - %s" % (self.sourcepackagename.name, self.version) + @property + def publishings(self): + # Circular import. + from lp.soyuz.model.publishing import SourcePackagePublishingHistory + + return ( + IStore(self) + .find( + SourcePackagePublishingHistory, + SourcePackagePublishingHistory.sourcepackagerelease == self, + ) + .order_by(Desc(SourcePackagePublishingHistory.datecreated)) + ) + @cachedproperty def published_archives(self): - archives = { - pub.archive for pub in self.publishings.prejoin(["archive"]) - } - return sorted(archives, key=operator.attrgetter("id")) + # Circular imports. + from lp.soyuz.model.archive import Archive + from lp.soyuz.model.publishing import SourcePackagePublishingHistory + + return list( + IStore(self) + .find( + Archive, + SourcePackagePublishingHistory.sourcepackagerelease == self, + SourcePackagePublishingHistory.archive == Archive.id, + ) + .config(distinct=True) + .order_by(Archive.id) + ) def addFile(self, file, filetype=None): """See ISourcePackageRelease.""" diff --git a/lib/lp/soyuz/scripts/expire_archive_files.py b/lib/lp/soyuz/scripts/expire_archive_files.py index 13af377..2a2e2bc 100755 --- a/lib/lp/soyuz/scripts/expire_archive_files.py +++ b/lib/lp/soyuz/scripts/expire_archive_files.py @@ -115,13 +115,13 @@ class ArchiveExpirer(LaunchpadCronScript): eligible_clauses.extend( [ BPF.libraryfile == LFA.id, - BPF.binarypackagerelease == BPPH.binarypackagereleaseID, + BPF.binarypackagerelease == BPPH.binarypackagerelease_id, BPPH.archive == Archive.id, ] ) denied_clauses.extend( [ - BPF.binarypackagerelease == BPPH.binarypackagereleaseID, + BPF.binarypackagerelease == BPPH.binarypackagerelease_id, BPPH.archive == Archive.id, ] ) @@ -133,13 +133,13 @@ class ArchiveExpirer(LaunchpadCronScript): eligible_clauses.extend( [ SPRF.libraryfile == LFA.id, - SPRF.sourcepackagerelease == SPPH.sourcepackagereleaseID, + SPRF.sourcepackagerelease == SPPH.sourcepackagerelease_id, SPPH.archive == Archive.id, ] ) denied_clauses.extend( [ - SPRF.sourcepackagerelease == SPPH.sourcepackagereleaseID, + SPRF.sourcepackagerelease == SPPH.sourcepackagerelease_id, SPPH.archive == Archive.id, ] ) diff --git a/lib/lp/soyuz/scripts/gina/handlers.py b/lib/lp/soyuz/scripts/gina/handlers.py index a595340..fd62506 100644 --- a/lib/lp/soyuz/scripts/gina/handlers.py +++ b/lib/lp/soyuz/scripts/gina/handlers.py @@ -1038,7 +1038,7 @@ class BinaryPackagePublisher: BinaryPackagePublishingHistory( binarypackagerelease=binarypackage.id, binarypackagename=binarypackage.binarypackagename, - _binarypackageformat=binarypackage.binpackageformat, + binarypackageformat=binarypackage.binpackageformat, component=component.id, section=section.id, priority=priority, @@ -1047,10 +1047,6 @@ class BinaryPackagePublisher: datecreated=UTC_NOW, datepublished=UTC_NOW, pocket=self.pocket, - datesuperseded=None, - supersededby=None, - datemadepending=None, - dateremoved=None, archive=archive, sourcepackagename=binarypackage.build.source_package_name, ) diff --git a/lib/lp/soyuz/scripts/packagecopier.py b/lib/lp/soyuz/scripts/packagecopier.py index 2e1557d..a09270a 100644 --- a/lib/lp/soyuz/scripts/packagecopier.py +++ b/lib/lp/soyuz/scripts/packagecopier.py @@ -163,12 +163,14 @@ def check_copy_permissions( if len(sources) > 1: # Bulk-load the data we'll need from each source publication. - load_related(SourcePackageRelease, sources, ["sourcepackagereleaseID"]) + load_related( + SourcePackageRelease, sources, ["sourcepackagerelease_id"] + ) if move: # Bulk-load at least some of the data we'll need for permission # checks on each source archive. Not all of this is currently # preloadable. - archives = load_related(Archive, sources, ["archiveID"]) + archives = load_related(Archive, sources, ["archive_id"]) load_related(Person, archives, ["ownerID"]) # If there is a requester, check that they have upload permission into diff --git a/lib/lp/soyuz/scripts/tests/test_copypackage.py b/lib/lp/soyuz/scripts/tests/test_copypackage.py index b2bb41c..5e867fa 100644 --- a/lib/lp/soyuz/scripts/tests/test_copypackage.py +++ b/lib/lp/soyuz/scripts/tests/test_copypackage.py @@ -1434,7 +1434,7 @@ class TestDoDirectCopy(BaseDoCopyTests, TestCaseWithFactory): archive=target_archive, binarypackagename=bin_i386.binarypackagename, binarypackagerelease=bin_i386.binarypackagerelease, - _binarypackageformat=bin_i386.binarypackageformat, + binarypackageformat=bin_i386.binarypackageformat, distroarchseries=nobby["i386"], pocket=bin_i386.pocket, component=bin_i386.component, diff --git a/lib/lp/soyuz/scripts/tests/test_obsoletedistroseries.py b/lib/lp/soyuz/scripts/tests/test_obsoletedistroseries.py index 7151a9d..54e193c 100644 --- a/lib/lp/soyuz/scripts/tests/test_obsoletedistroseries.py +++ b/lib/lp/soyuz/scripts/tests/test_obsoletedistroseries.py @@ -119,7 +119,7 @@ class TestObsoleteDistroseries(TestCaseWithFactory): SourcePackagePublishingHistory.distroseries == distroseries, SourcePackagePublishingHistory.status == PackagePublishingStatus.PUBLISHED, - SourcePackagePublishingHistory.archiveID.is_in( + SourcePackagePublishingHistory.archive_id.is_in( self.main_archive_ids ), ) @@ -130,7 +130,7 @@ class TestObsoleteDistroseries(TestCaseWithFactory): DistroArchSeries.distroseries == distroseries, BinaryPackagePublishingHistory.status == PackagePublishingStatus.PUBLISHED, - BinaryPackagePublishingHistory.archiveID.is_in( + BinaryPackagePublishingHistory.archive_id.is_in( self.main_archive_ids ), ) diff --git a/lib/lp/soyuz/tests/test_hasbuildrecords.py b/lib/lp/soyuz/tests/test_hasbuildrecords.py index b0b8e8c..948089d 100644 --- a/lib/lp/soyuz/tests/test_hasbuildrecords.py +++ b/lib/lp/soyuz/tests/test_hasbuildrecords.py @@ -274,7 +274,7 @@ class TestSourcePackageHasBuildRecords(TestHasBuildRecordsInterface): removeSecurityProxy(spr).sourcepackagename = gedit_name IStore(SourcePackagePublishingHistory).find( SourcePackagePublishingHistory, sourcepackagerelease=spr - ).set(sourcepackagenameID=gedit_name.id) + ).set(sourcepackagename_id=gedit_name.id) # Set them as successfully built for build in self.builds: diff --git a/lib/lp/soyuz/tests/test_publishing.py b/lib/lp/soyuz/tests/test_publishing.py index e9cede9..c3c5d9e 100644 --- a/lib/lp/soyuz/tests/test_publishing.py +++ b/lib/lp/soyuz/tests/test_publishing.py @@ -43,6 +43,7 @@ from lp.registry.interfaces.sourcepackagename import ISourcePackageNameSet from lp.services.channels import channel_string_to_list from lp.services.config import config from lp.services.database.constants import UTC_NOW +from lp.services.database.interfaces import IStore from lp.services.librarian.interfaces import ILibraryFileAliasSet from lp.services.log.logger import BufferLogger, DevNullLogger from lp.soyuz.enums import ( @@ -340,7 +341,7 @@ class SoyuzTestPublisher: distroseries=distroseries, sourcepackagerelease=spr, sourcepackagename=spr.sourcepackagename, - _format=spr.format, + format=spr.format, component=spr.component, section=spr.section, status=status, @@ -351,7 +352,7 @@ class SoyuzTestPublisher: pocket=pocket, archive=archive, creator=creator, - _channel=channel, + channel=channel, ) return spph @@ -642,7 +643,7 @@ class SoyuzTestPublisher: distroarchseries=arch, binarypackagerelease=binarypackagerelease, binarypackagename=binarypackagerelease.binarypackagename, - _binarypackageformat=binarypackagerelease.binpackageformat, + binarypackageformat=binarypackagerelease.binpackageformat, component=binarypackagerelease.component, section=binarypackagerelease.section, priority=binarypackagerelease.priority, @@ -653,7 +654,7 @@ class SoyuzTestPublisher: pocket=pocket, archive=archive, phased_update_percentage=phased_update_percentage, - _channel=channel, + channel=channel, sourcepackagename=( binarypackagerelease.build.source_package_name ), @@ -1010,7 +1011,7 @@ class TestNativePublishing(TestNativePublishingBase): self.layer.commit() foo_name = "%s/main/f/foo/foo_666.dsc" % self.pool_dir - pub_source.sync() + IStore(pub_source).flush() self.assertEqual(pub_source.status, PackagePublishingStatus.PUBLISHED) with open(foo_name) as foo: self.assertEqual(foo.read().strip(), "foo is happy") @@ -1022,7 +1023,7 @@ class TestNativePublishing(TestNativePublishingBase): pub_source2.publish(self.disk_pool, self.logger) self.layer.commit() - pub_source2.sync() + IStore(pub_source2).flush() self.assertEqual(pub_source2.status, PackagePublishingStatus.PENDING) with open(foo_name) as foo: self.assertEqual(foo.read().strip(), "foo is happy") @@ -1041,7 +1042,7 @@ class TestNativePublishing(TestNativePublishingBase): bar_name = "%s/main/b/bar/bar_666.dsc" % self.pool_dir with open(bar_name) as bar: self.assertEqual(bar.read().strip(), "bar is good") - pub_source.sync() + IStore(pub_source).flush() self.assertEqual(pub_source.status, PackagePublishingStatus.PUBLISHED) pub_source2 = self.getPubSource( @@ -1049,7 +1050,7 @@ class TestNativePublishing(TestNativePublishingBase): ) pub_source2.publish(self.disk_pool, self.logger) self.layer.commit() - pub_source2.sync() + IStore(pub_source2).flush() self.assertEqual(pub_source2.status, PackagePublishingStatus.PUBLISHED) def testPublishingSymlink(self): @@ -1068,8 +1069,8 @@ class TestNativePublishing(TestNativePublishingBase): pub_source2.publish(self.disk_pool, self.logger) self.layer.commit() - pub_source.sync() - pub_source2.sync() + IStore(pub_source).flush() + IStore(pub_source2).flush() self.assertEqual(pub_source.status, PackagePublishingStatus.PUBLISHED) self.assertEqual(pub_source2.status, PackagePublishingStatus.PUBLISHED) @@ -1089,7 +1090,7 @@ class TestNativePublishing(TestNativePublishingBase): pub_source3.publish(self.disk_pool, self.logger) self.layer.commit() - pub_source3.sync() + IStore(pub_source3).flush() self.assertEqual(pub_source3.status, PackagePublishingStatus.PENDING) def testPublishInAnotherArchive(self): @@ -1113,7 +1114,7 @@ class TestNativePublishing(TestNativePublishingBase): pub_source.publish(test_disk_pool, self.logger) self.layer.commit() - pub_source.sync() + IStore(pub_source).flush() self.assertEqual(pub_source.status, PackagePublishingStatus.PUBLISHED) self.assertEqual( pub_source.sourcepackagerelease.upload_archive, cprov.archive diff --git a/lib/lp/translations/model/vpoexport.py b/lib/lp/translations/model/vpoexport.py index 33111ff..bca71df 100644 --- a/lib/lp/translations/model/vpoexport.py +++ b/lib/lp/translations/model/vpoexport.py @@ -59,7 +59,7 @@ class VPOExportSet: SourcePackagePublishingHistory.distroseries == series, SourcePackagePublishingHistory.component == Component.id, POTemplate.sourcepackagename - == SourcePackagePublishingHistory.sourcepackagenameID, + == SourcePackagePublishingHistory.sourcepackagename_id, Component.name == component, SourcePackagePublishingHistory.dateremoved == None, SourcePackagePublishingHistory.archive diff --git a/lib/lp/translations/scripts/copy_distroseries_translations.py b/lib/lp/translations/scripts/copy_distroseries_translations.py index 81a66eb..78e6526 100644 --- a/lib/lp/translations/scripts/copy_distroseries_translations.py +++ b/lib/lp/translations/scripts/copy_distroseries_translations.py @@ -131,8 +131,8 @@ def copy_distroseries_translations( status=active_publishing_status, ) .config(distinct=True) - .order_by(SourcePackagePublishingHistory.sourcepackagenameID) - .values(SourcePackagePublishingHistory.sourcepackagenameID), + .order_by(SourcePackagePublishingHistory.sourcepackagename_id) + .values(SourcePackagePublishingHistory.sourcepackagename_id), ) else: spns = None
_______________________________________________ Mailing list: https://launchpad.net/~launchpad-reviewers Post to : launchpad-reviewers@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-reviewers More help : https://help.launchpad.net/ListHelp