Merge ~cjwatson/launchpad:stormify-package-files into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 919ae1629fe04722bf7c50c05830c2ec7df6b9c1
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:stormify-package-files
Merge into: launchpad:master
Diff against target: 638 lines (+118/-87)
18 files modified
lib/lp/archivepublisher/artifactory.py (+2/-2)
lib/lp/archivepublisher/deathrow.py (+2/-2)
lib/lp/archivepublisher/model/ftparchive.py (+4/-4)
lib/lp/registry/doc/distribution-mirror.rst (+7/-2)
lib/lp/registry/model/distributionmirror.py (+1/-1)
lib/lp/services/librarian/model.py (+11/-11)
lib/lp/soyuz/browser/queue.py (+3/-3)
lib/lp/soyuz/doc/build-files.rst (+1/-1)
lib/lp/soyuz/doc/gina.rst (+4/-2)
lib/lp/soyuz/interfaces/files.py (+3/-3)
lib/lp/soyuz/model/archive.py (+16/-16)
lib/lp/soyuz/model/binarypackagebuild.py (+4/-4)
lib/lp/soyuz/model/files.py (+39/-17)
lib/lp/soyuz/model/packagediff.py (+2/-2)
lib/lp/soyuz/model/publishing.py (+15/-13)
lib/lp/soyuz/model/sourcepackagerelease.py (+2/-2)
lib/lp/soyuz/scripts/expire_archive_files.py (+1/-1)
lib/lp/soyuz/scripts/gina/handlers.py (+1/-1)
Reviewer Review Type Date Requested Status
Guruprasad Approve
Review via email: mp+436063@code.launchpad.net

Commit message

Convert SourcePackageReleaseFile/BinaryPackageFile to Storm

To post a comment you must log in.
Revision history for this message
Guruprasad (lgp171188) wrote :

LGTM 👍

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/lib/lp/archivepublisher/artifactory.py b/lib/lp/archivepublisher/artifactory.py
index 5e81ee6..041e73e 100644
--- a/lib/lp/archivepublisher/artifactory.py
+++ b/lib/lp/archivepublisher/artifactory.py
@@ -142,11 +142,11 @@ class ArtifactoryPoolEntry:
142 """142 """
143 if ISourcePackageReleaseFile.providedBy(pub_file):143 if ISourcePackageReleaseFile.providedBy(pub_file):
144 return "source:{:d}".format(144 return "source:{:d}".format(
145 pub_file.sourcepackagereleaseID145 pub_file.sourcepackagerelease_id
146 ) # type: ignore146 ) # type: ignore
147 elif IBinaryPackageFile.providedBy(pub_file):147 elif IBinaryPackageFile.providedBy(pub_file):
148 return "binary:{:d}".format(148 return "binary:{:d}".format(
149 pub_file.binarypackagereleaseID149 pub_file.binarypackagerelease_id
150 ) # type: ignore150 ) # type: ignore
151 else:151 else:
152 raise AssertionError("Unsupported file: %r" % pub_file)152 raise AssertionError("Unsupported file: %r" % pub_file)
diff --git a/lib/lp/archivepublisher/deathrow.py b/lib/lp/archivepublisher/deathrow.py
index 2d885e9..80f463e 100644
--- a/lib/lp/archivepublisher/deathrow.py
+++ b/lib/lp/archivepublisher/deathrow.py
@@ -178,7 +178,7 @@ class DeathRow:
178 SourcePackagePublishingHistory.archive == self.archive,178 SourcePackagePublishingHistory.archive == self.archive,
179 SourcePackagePublishingHistory.dateremoved == None,179 SourcePackagePublishingHistory.dateremoved == None,
180 SourcePackagePublishingHistory.sourcepackagerelease180 SourcePackagePublishingHistory.sourcepackagerelease
181 == SourcePackageReleaseFile.sourcepackagereleaseID,181 == SourcePackageReleaseFile.sourcepackagerelease_id,
182 SourcePackageReleaseFile.libraryfile182 SourcePackageReleaseFile.libraryfile
183 == LibraryFileAlias.id,183 == LibraryFileAlias.id,
184 ]184 ]
@@ -189,7 +189,7 @@ class DeathRow:
189 BinaryPackagePublishingHistory.archive == self.archive,189 BinaryPackagePublishingHistory.archive == self.archive,
190 BinaryPackagePublishingHistory.dateremoved == None,190 BinaryPackagePublishingHistory.dateremoved == None,
191 BinaryPackagePublishingHistory.binarypackagerelease191 BinaryPackagePublishingHistory.binarypackagerelease
192 == BinaryPackageFile.binarypackagereleaseID,192 == BinaryPackageFile.binarypackagerelease_id,
193 BinaryPackageFile.libraryfile == LibraryFileAlias.id,193 BinaryPackageFile.libraryfile == LibraryFileAlias.id,
194 ]194 ]
195 )195 )
diff --git a/lib/lp/archivepublisher/model/ftparchive.py b/lib/lp/archivepublisher/model/ftparchive.py
index 710fee5..a891a85 100644
--- a/lib/lp/archivepublisher/model/ftparchive.py
+++ b/lib/lp/archivepublisher/model/ftparchive.py
@@ -671,11 +671,11 @@ class FTPArchiveHandler:
671 Component.name,671 Component.name,
672 )672 )
673 join_conditions = [673 join_conditions = [
674 SourcePackageReleaseFile.sourcepackagereleaseID674 SourcePackageReleaseFile.sourcepackagerelease_id
675 == SourcePackagePublishingHistory.sourcepackagereleaseID,675 == SourcePackagePublishingHistory.sourcepackagereleaseID,
676 SourcePackageName.id676 SourcePackageName.id
677 == SourcePackagePublishingHistory.sourcepackagenameID,677 == SourcePackagePublishingHistory.sourcepackagenameID,
678 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,678 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id,
679 Component.id == SourcePackagePublishingHistory.component_id,679 Component.id == SourcePackagePublishingHistory.component_id,
680 ]680 ]
681 select_conditions = [681 select_conditions = [
@@ -713,11 +713,11 @@ class FTPArchiveHandler:
713 join_conditions = [713 join_conditions = [
714 BinaryPackageRelease.id714 BinaryPackageRelease.id
715 == BinaryPackagePublishingHistory.binarypackagereleaseID,715 == BinaryPackagePublishingHistory.binarypackagereleaseID,
716 BinaryPackageFile.binarypackagereleaseID716 BinaryPackageFile.binarypackagerelease_id
717 == BinaryPackagePublishingHistory.binarypackagereleaseID,717 == BinaryPackagePublishingHistory.binarypackagereleaseID,
718 BinaryPackageBuild.id == BinaryPackageRelease.buildID,718 BinaryPackageBuild.id == BinaryPackageRelease.buildID,
719 SourcePackageName.id == BinaryPackageBuild.source_package_name_id,719 SourcePackageName.id == BinaryPackageBuild.source_package_name_id,
720 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,720 LibraryFileAlias.id == BinaryPackageFile.libraryfile_id,
721 DistroArchSeries.id721 DistroArchSeries.id
722 == BinaryPackagePublishingHistory.distroarchseriesID,722 == BinaryPackagePublishingHistory.distroarchseriesID,
723 Component.id == BinaryPackagePublishingHistory.component_id,723 Component.id == BinaryPackagePublishingHistory.component_id,
diff --git a/lib/lp/registry/doc/distribution-mirror.rst b/lib/lp/registry/doc/distribution-mirror.rst
index 412d2bc..5fd9798 100644
--- a/lib/lp/registry/doc/distribution-mirror.rst
+++ b/lib/lp/registry/doc/distribution-mirror.rst
@@ -682,8 +682,13 @@ so we need to skip that upload.
682 ... time_interval, deb_only=False682 ... time_interval, deb_only=False
683 ... )683 ... )
684684
685 >>> bpf = BinaryPackageFile.selectOneBy(685 >>> bpf = (
686 ... binarypackagereleaseID=upload.binarypackagerelease.id686 ... IStore(BinaryPackageFile)
687 ... .find(
688 ... BinaryPackageFile,
689 ... binarypackagerelease=upload.binarypackagerelease,
690 ... )
691 ... .one()
687 ... )692 ... )
688 >>> print(upload.binarypackagerelease.version)693 >>> print(upload.binarypackagerelease.version)
689 3.14156694 3.14156
diff --git a/lib/lp/registry/model/distributionmirror.py b/lib/lp/registry/model/distributionmirror.py
index 317d440..7e350cf 100644
--- a/lib/lp/registry/model/distributionmirror.py
+++ b/lib/lp/registry/model/distributionmirror.py
@@ -981,7 +981,7 @@ class MirrorDistroArchSeries(StormBase, _MirrorSeriesMixIn):
981 clauses.extend(981 clauses.extend(
982 [982 [
983 BinaryPackagePublishingHistory.binarypackagereleaseID983 BinaryPackagePublishingHistory.binarypackagereleaseID
984 == BinaryPackageFile.binarypackagereleaseID,984 == BinaryPackageFile.binarypackagerelease_id,
985 BinaryPackageFile.filetype == BinaryPackageFileType.DEB,985 BinaryPackageFile.filetype == BinaryPackageFileType.DEB,
986 ]986 ]
987 )987 )
diff --git a/lib/lp/services/librarian/model.py b/lib/lp/services/librarian/model.py
index 210ffcf..7aaf5de 100644
--- a/lib/lp/services/librarian/model.py
+++ b/lib/lp/services/librarian/model.py
@@ -16,7 +16,7 @@ from urllib.parse import urlparse
1616
17import pytz17import pytz
18from lazr.delegates import delegate_to18from lazr.delegates import delegate_to
19from storm.locals import Date, Desc, Int, Reference, Store19from storm.locals import Date, Desc, Int, Reference, ReferenceSet, Store
20from zope.component import adapter, getUtility20from zope.component import adapter, getUtility
21from zope.interface import Interface, implementer21from zope.interface import Interface, implementer
2222
@@ -88,11 +88,11 @@ class LibraryFileAlias(SQLBase):
88 intermediateTable="ProductReleaseFile",88 intermediateTable="ProductReleaseFile",
89 )89 )
9090
91 sourcepackages = SQLRelatedJoin(91 sourcepackages = ReferenceSet(
92 "SourcePackageRelease",92 "id",
93 joinColumn="libraryfile",93 "SourcePackageReleaseFile.libraryfile_id",
94 otherColumn="sourcepackagerelease",94 "SourcePackageReleaseFile.sourcepackagerelease_id",
95 intermediateTable="SourcePackageReleaseFile",95 "SourcePackageRelease.id",
96 )96 )
9797
98 @property98 @property
@@ -206,11 +206,11 @@ class LibraryFileAlias(SQLBase):
206 intermediateTable="ProductReleaseFile",206 intermediateTable="ProductReleaseFile",
207 )207 )
208208
209 sourcepackages = SQLRelatedJoin(209 sourcepackages = ReferenceSet(
210 "SourcePackageRelease",210 "id",
211 joinColumn="libraryfile",211 "SourcePackageReleaseFile.libraryfile_id",
212 otherColumn="sourcepackagerelease",212 "SourcePackageReleaseFile.sourcepackagerelease_id",
213 intermediateTable="SourcePackageReleaseFile",213 "SourcePackageRelease.id",
214 )214 )
215215
216 @property216 @property
diff --git a/lib/lp/soyuz/browser/queue.py b/lib/lp/soyuz/browser/queue.py
index 2fbcc60..7f12bd3 100644
--- a/lib/lp/soyuz/browser/queue.py
+++ b/lib/lp/soyuz/browser/queue.py
@@ -225,13 +225,13 @@ class QueueItemsView(LaunchpadView):
225 bpbs = load_related(BinaryPackageBuild, pubs, ["build_id"])225 bpbs = load_related(BinaryPackageBuild, pubs, ["build_id"])
226 bprs = load_referencing(BinaryPackageRelease, bpbs, ["buildID"])226 bprs = load_referencing(BinaryPackageRelease, bpbs, ["buildID"])
227 source_files = load_referencing(227 source_files = load_referencing(
228 SourcePackageReleaseFile, source_sprs, ["sourcepackagereleaseID"]228 SourcePackageReleaseFile, source_sprs, ["sourcepackagerelease_id"]
229 )229 )
230 binary_files = load_referencing(230 binary_files = load_referencing(
231 BinaryPackageFile, bprs, ["binarypackagereleaseID"]231 BinaryPackageFile, bprs, ["binarypackagerelease_id"]
232 )232 )
233 file_lfas = load_related(233 file_lfas = load_related(
234 LibraryFileAlias, source_files + binary_files, ["libraryfileID"]234 LibraryFileAlias, source_files + binary_files, ["libraryfile_id"]
235 )235 )
236 load_related(LibraryFileContent, file_lfas, ["contentID"])236 load_related(LibraryFileContent, file_lfas, ["contentID"])
237237
diff --git a/lib/lp/soyuz/doc/build-files.rst b/lib/lp/soyuz/doc/build-files.rst
index a73a7d8..554f85a 100644
--- a/lib/lp/soyuz/doc/build-files.rst
+++ b/lib/lp/soyuz/doc/build-files.rst
@@ -79,6 +79,6 @@ We can also retrieve the corresponding BinaryPackageFile:
7979
80 >>> bpf = build.getBinaryPackageFileByName("test_1.0_all.deb")80 >>> bpf = build.getBinaryPackageFileByName("test_1.0_all.deb")
81 >>> bpf81 >>> bpf
82 <BinaryPackageFile ...>82 <...BinaryPackageFile object ...>
83 >>> bpf.libraryfile == deb83 >>> bpf.libraryfile == deb
84 True84 True
diff --git a/lib/lp/soyuz/doc/gina.rst b/lib/lp/soyuz/doc/gina.rst
index 9d78622..5d5f0c9 100644
--- a/lib/lp/soyuz/doc/gina.rst
+++ b/lib/lp/soyuz/doc/gina.rst
@@ -328,8 +328,10 @@ And check that its files actually ended up in the librarian (these sha1sums
328were calculated directly on the files):328were calculated directly on the files):
329329
330 >>> from lp.soyuz.model.files import SourcePackageReleaseFile330 >>> from lp.soyuz.model.files import SourcePackageReleaseFile
331 >>> files = SourcePackageReleaseFile.selectBy(331 >>> files = (
332 ... sourcepackagereleaseID=cap.id, orderBy="libraryfile"332 ... IStore(SourcePackageReleaseFile)
333 ... .find(SourcePackageReleaseFile, sourcepackagerelease=cap)
334 ... .order_by("libraryfile")
333 ... )335 ... )
334 >>> for f in files:336 >>> for f in files:
335 ... print(f.libraryfile.content.sha1)337 ... print(f.libraryfile.content.sha1)
diff --git a/lib/lp/soyuz/interfaces/files.py b/lib/lp/soyuz/interfaces/files.py
index 033afd9..85c7d37 100644
--- a/lib/lp/soyuz/interfaces/files.py
+++ b/lib/lp/soyuz/interfaces/files.py
@@ -24,7 +24,7 @@ class IPackageReleaseFile(Interface):
2424
25 id = Int(title=_("ID"), required=True, readonly=True)25 id = Int(title=_("ID"), required=True, readonly=True)
2626
27 libraryfileID = Int(27 libraryfile_id = Int(
28 title=_("The LibraryFileAlias id for this file"),28 title=_("The LibraryFileAlias id for this file"),
29 required=True,29 required=True,
30 readonly=True,30 readonly=True,
@@ -52,7 +52,7 @@ class IBinaryPackageFile(IPackageReleaseFile):
52 readonly=False,52 readonly=False,
53 )53 )
5454
55 binarypackagereleaseID = Int(55 binarypackagerelease_id = Int(
56 title=_("ID of the binary package release being published"),56 title=_("ID of the binary package release being published"),
57 required=True,57 required=True,
58 readonly=False,58 readonly=False,
@@ -69,7 +69,7 @@ class ISourcePackageReleaseFile(IPackageReleaseFile):
69 readonly=False,69 readonly=False,
70 )70 )
7171
72 sourcepackagereleaseID = Int(72 sourcepackagerelease_id = Int(
73 title=_("ID of the source package release being published"),73 title=_("ID of the source package release being published"),
74 required=True,74 required=True,
75 readonly=False,75 readonly=False,
diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py
index c04e77f..b74321f 100644
--- a/lib/lp/soyuz/model/archive.py
+++ b/lib/lp/soyuz/model/archive.py
@@ -870,8 +870,8 @@ class Archive(SQLBase):
870 SourcePackagePublishingHistory.archive == self.id,870 SourcePackagePublishingHistory.archive == self.id,
871 SourcePackagePublishingHistory.dateremoved == None,871 SourcePackagePublishingHistory.dateremoved == None,
872 SourcePackagePublishingHistory.sourcepackagereleaseID872 SourcePackagePublishingHistory.sourcepackagereleaseID
873 == SourcePackageReleaseFile.sourcepackagereleaseID,873 == SourcePackageReleaseFile.sourcepackagerelease_id,
874 SourcePackageReleaseFile.libraryfileID == LibraryFileAlias.id,874 SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id,
875 LibraryFileAlias.contentID == LibraryFileContent.id,875 LibraryFileAlias.contentID == LibraryFileContent.id,
876 )876 )
877877
@@ -1159,8 +1159,8 @@ class Archive(SQLBase):
1159 BinaryPackagePublishingHistory.archive == self.id,1159 BinaryPackagePublishingHistory.archive == self.id,
1160 BinaryPackagePublishingHistory.dateremoved == None,1160 BinaryPackagePublishingHistory.dateremoved == None,
1161 BinaryPackagePublishingHistory.binarypackagereleaseID1161 BinaryPackagePublishingHistory.binarypackagereleaseID
1162 == BinaryPackageFile.binarypackagereleaseID,1162 == BinaryPackageFile.binarypackagerelease_id,
1163 BinaryPackageFile.libraryfileID == LibraryFileAlias.id,1163 BinaryPackageFile.libraryfile_id == LibraryFileAlias.id,
1164 LibraryFileAlias.contentID == LibraryFileContent.id,1164 LibraryFileAlias.contentID == LibraryFileContent.id,
1165 )1165 )
1166 # See `IArchive.sources_size`.1166 # See `IArchive.sources_size`.
@@ -1952,15 +1952,15 @@ class Archive(SQLBase):
1952 clauses = (1952 clauses = (
1953 SourcePackagePublishingHistory.archive == self.id,1953 SourcePackagePublishingHistory.archive == self.id,
1954 SourcePackagePublishingHistory.sourcepackagereleaseID1954 SourcePackagePublishingHistory.sourcepackagereleaseID
1955 == SourcePackageReleaseFile.sourcepackagereleaseID,1955 == SourcePackageReleaseFile.sourcepackagerelease_id,
1956 SourcePackageReleaseFile.libraryfileID == LibraryFileAlias.id,1956 SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id,
1957 )1957 )
1958 elif re_isadeb.match(filename):1958 elif re_isadeb.match(filename):
1959 clauses = (1959 clauses = (
1960 BinaryPackagePublishingHistory.archive == self.id,1960 BinaryPackagePublishingHistory.archive == self.id,
1961 BinaryPackagePublishingHistory.binarypackagereleaseID1961 BinaryPackagePublishingHistory.binarypackagereleaseID
1962 == BinaryPackageFile.binarypackagereleaseID,1962 == BinaryPackageFile.binarypackagerelease_id,
1963 BinaryPackageFile.libraryfileID == LibraryFileAlias.id,1963 BinaryPackageFile.libraryfile_id == LibraryFileAlias.id,
1964 )1964 )
1965 elif filename.endswith(".changes"):1965 elif filename.endswith(".changes"):
1966 clauses = (1966 clauses = (
@@ -2013,8 +2013,8 @@ class Archive(SQLBase):
2013 SourcePackageName.name == name,2013 SourcePackageName.name == name,
2014 Cast(SourcePackageRelease.version, "text") == version,2014 Cast(SourcePackageRelease.version, "text") == version,
2015 SourcePackageRelease.id2015 SourcePackageRelease.id
2016 == SourcePackageReleaseFile.sourcepackagereleaseID,2016 == SourcePackageReleaseFile.sourcepackagerelease_id,
2017 SourcePackageReleaseFile.libraryfileID == LibraryFileAlias.id,2017 SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id,
2018 LibraryFileAlias.filename == filename,2018 LibraryFileAlias.filename == filename,
2019 LibraryFileAlias.content != None,2019 LibraryFileAlias.content != None,
2020 )2020 )
@@ -2061,7 +2061,7 @@ class Archive(SQLBase):
2061 BinaryPackageBuild.source_package_name2061 BinaryPackageBuild.source_package_name
2062 == SourcePackageName.id,2062 == SourcePackageName.id,
2063 BinaryPackagePublishingHistory.binarypackagerelease2063 BinaryPackagePublishingHistory.binarypackagerelease
2064 == BinaryPackageFile.binarypackagereleaseID,2064 == BinaryPackageFile.binarypackagerelease_id,
2065 ]2065 ]
2066 )2066 )
2067 else:2067 else:
@@ -2072,7 +2072,7 @@ class Archive(SQLBase):
2072 SourcePackagePublishingHistory.sourcepackagename2072 SourcePackagePublishingHistory.sourcepackagename
2073 == SourcePackageName.id,2073 == SourcePackageName.id,
2074 SourcePackagePublishingHistory.sourcepackagerelease2074 SourcePackagePublishingHistory.sourcepackagerelease
2075 == SourcePackageReleaseFile.sourcepackagereleaseID,2075 == SourcePackageReleaseFile.sourcepackagerelease_id,
2076 ]2076 ]
2077 )2077 )
2078 clauses.extend(2078 clauses.extend(
@@ -2120,9 +2120,9 @@ class Archive(SQLBase):
2120 IStore(BinaryPackageRelease)2120 IStore(BinaryPackageRelease)
2121 .find(2121 .find(
2122 BinaryPackageRelease,2122 BinaryPackageRelease,
2123 BinaryPackageFile.binarypackagereleaseID2123 BinaryPackageFile.binarypackagerelease_id
2124 == BinaryPackageRelease.id,2124 == BinaryPackageRelease.id,
2125 BinaryPackageFile.libraryfileID == LibraryFileAlias.id,2125 BinaryPackageFile.libraryfile_id == LibraryFileAlias.id,
2126 LibraryFileAlias.filename == filename,2126 LibraryFileAlias.filename == filename,
2127 BinaryPackagePublishingHistory.archive == self,2127 BinaryPackagePublishingHistory.archive == self,
2128 BinaryPackagePublishingHistory.binarypackagereleaseID2128 BinaryPackagePublishingHistory.binarypackagereleaseID
@@ -2855,8 +2855,8 @@ class Archive(SQLBase):
2855 (LibraryFileAlias.filename, LibraryFileContent.sha1),2855 (LibraryFileAlias.filename, LibraryFileContent.sha1),
2856 SourcePackagePublishingHistory.archive == self,2856 SourcePackagePublishingHistory.archive == self,
2857 SourcePackagePublishingHistory.sourcepackagerelease2857 SourcePackagePublishingHistory.sourcepackagerelease
2858 == SourcePackageReleaseFile.sourcepackagereleaseID,2858 == SourcePackageReleaseFile.sourcepackagerelease_id,
2859 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,2859 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id,
2860 LibraryFileAlias.filename.is_in(source_files),2860 LibraryFileAlias.filename.is_in(source_files),
2861 LibraryFileContent.id == LibraryFileAlias.contentID,2861 LibraryFileContent.id == LibraryFileAlias.contentID,
2862 )2862 )
diff --git a/lib/lp/soyuz/model/binarypackagebuild.py b/lib/lp/soyuz/model/binarypackagebuild.py
index a8d4352..5471460 100644
--- a/lib/lp/soyuz/model/binarypackagebuild.py
+++ b/lib/lp/soyuz/model/binarypackagebuild.py
@@ -436,8 +436,8 @@ class BinaryPackageBuild(PackageBuildMixin, SQLBase):
436 ),436 ),
437 BinaryPackageRelease.build == self,437 BinaryPackageRelease.build == self,
438 BinaryPackageRelease.id438 BinaryPackageRelease.id
439 == BinaryPackageFile.binarypackagereleaseID,439 == BinaryPackageFile.binarypackagerelease_id,
440 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,440 LibraryFileAlias.id == BinaryPackageFile.libraryfile_id,
441 LibraryFileContent.id == LibraryFileAlias.contentID,441 LibraryFileContent.id == LibraryFileAlias.contentID,
442 )442 )
443 return result.order_by(443 return result.order_by(
@@ -796,7 +796,7 @@ class BinaryPackageBuild(PackageBuildMixin, SQLBase):
796 BinaryPackageRelease.build == self.id,796 BinaryPackageRelease.build == self.id,
797 BinaryPackageFile.binarypackagerelease797 BinaryPackageFile.binarypackagerelease
798 == BinaryPackageRelease.id,798 == BinaryPackageRelease.id,
799 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,799 LibraryFileAlias.id == BinaryPackageFile.libraryfile_id,
800 LibraryFileAlias.filename == filename,800 LibraryFileAlias.filename == filename,
801 )801 )
802 .one()802 .one()
@@ -1576,7 +1576,7 @@ class BinaryPackageBuildMacaroonIssuer(MacaroonIssuerBase):
1576 clauses.extend(1576 clauses.extend(
1577 [1577 [
1578 BinaryPackageBuild.source_package_release_id1578 BinaryPackageBuild.source_package_release_id
1579 == SourcePackageReleaseFile.sourcepackagereleaseID,1579 == SourcePackageReleaseFile.sourcepackagerelease_id,
1580 SourcePackageReleaseFile.libraryfile == context,1580 SourcePackageReleaseFile.libraryfile == context,
1581 ]1581 ]
1582 )1582 )
diff --git a/lib/lp/soyuz/model/files.py b/lib/lp/soyuz/model/files.py
index a54a779..4145321 100644
--- a/lib/lp/soyuz/model/files.py
+++ b/lib/lp/soyuz/model/files.py
@@ -7,12 +7,12 @@ __all__ = [
7 "SourcePackageReleaseFile",7 "SourcePackageReleaseFile",
8]8]
99
10from storm.locals import Int, Reference
10from zope.interface import implementer11from zope.interface import implementer
1112
12from lp.registry.interfaces.sourcepackage import SourcePackageFileType13from lp.registry.interfaces.sourcepackage import SourcePackageFileType
13from lp.services.database.enumcol import DBEnum14from lp.services.database.enumcol import DBEnum
14from lp.services.database.sqlbase import SQLBase15from lp.services.database.stormbase import StormBase
15from lp.services.database.sqlobject import ForeignKey
16from lp.soyuz.enums import BinaryPackageFileType16from lp.soyuz.enums import BinaryPackageFileType
17from lp.soyuz.interfaces.files import (17from lp.soyuz.interfaces.files import (
18 IBinaryPackageFile,18 IBinaryPackageFile,
@@ -21,20 +21,29 @@ from lp.soyuz.interfaces.files import (
2121
2222
23@implementer(IBinaryPackageFile)23@implementer(IBinaryPackageFile)
24class BinaryPackageFile(SQLBase):24class BinaryPackageFile(StormBase):
25 """See IBinaryPackageFile"""25 """See IBinaryPackageFile"""
2626
27 _table = "BinaryPackageFile"27 __storm_table__ = "BinaryPackageFile"
2828
29 binarypackagerelease = ForeignKey(29 id = Int(primary=True)
30 dbName="binarypackagerelease",30 binarypackagerelease_id = Int(
31 foreignKey="BinaryPackageRelease",31 name="binarypackagerelease", allow_none=False
32 notNull=True,
33 )32 )
34 libraryfile = ForeignKey(33 binarypackagerelease = Reference(
35 dbName="libraryfile", foreignKey="LibraryFileAlias", notNull=True34 binarypackagerelease_id, "BinaryPackageRelease.id"
36 )35 )
37 filetype = DBEnum(name="filetype", enum=BinaryPackageFileType)36 libraryfile_id = Int(name="libraryfile", allow_none=False)
37 libraryfile = Reference(libraryfile_id, "LibraryFileAlias.id")
38 filetype = DBEnum(
39 name="filetype", enum=BinaryPackageFileType, allow_none=False
40 )
41
42 def __init__(self, binarypackagerelease, libraryfile, filetype):
43 super().__init__()
44 self.binarypackagerelease = binarypackagerelease
45 self.libraryfile = libraryfile
46 self.filetype = filetype
3847
3948
40class SourceFileMixin:49class SourceFileMixin:
@@ -51,13 +60,26 @@ class SourceFileMixin:
5160
5261
53@implementer(ISourcePackageReleaseFile)62@implementer(ISourcePackageReleaseFile)
54class SourcePackageReleaseFile(SourceFileMixin, SQLBase):63class SourcePackageReleaseFile(SourceFileMixin, StormBase):
55 """See ISourcePackageFile"""64 """See ISourcePackageFile"""
5665
57 sourcepackagerelease = ForeignKey(66 __storm_table__ = "SourcePackageReleaseFile"
58 foreignKey="SourcePackageRelease", dbName="sourcepackagerelease"67
68 id = Int(primary=True)
69 sourcepackagerelease_id = Int(
70 name="sourcepackagerelease", allow_none=False
59 )71 )
60 libraryfile = ForeignKey(72 sourcepackagerelease = Reference(
61 foreignKey="LibraryFileAlias", dbName="libraryfile"73 sourcepackagerelease_id, "SourcePackageRelease.id"
62 )74 )
63 filetype = DBEnum(enum=SourcePackageFileType)75 libraryfile_id = Int(name="libraryfile", allow_none=False)
76 libraryfile = Reference(libraryfile_id, "LibraryFileAlias.id")
77 filetype = DBEnum(
78 name="filetype", enum=SourcePackageFileType, allow_none=False
79 )
80
81 def __init__(self, sourcepackagerelease, libraryfile, filetype):
82 super().__init__()
83 self.sourcepackagerelease = sourcepackagerelease
84 self.libraryfile = libraryfile
85 self.filetype = filetype
diff --git a/lib/lp/soyuz/model/packagediff.py b/lib/lp/soyuz/model/packagediff.py
index 92677ef..1eb35fe 100644
--- a/lib/lp/soyuz/model/packagediff.py
+++ b/lib/lp/soyuz/model/packagediff.py
@@ -195,10 +195,10 @@ class PackageDiff(StormBase):
195 IStore(LibraryFileAlias)195 IStore(LibraryFileAlias)
196 .find(196 .find(
197 LibraryFileAlias.id,197 LibraryFileAlias.id,
198 SourcePackageReleaseFile.sourcepackagereleaseID.is_in(198 SourcePackageReleaseFile.sourcepackagerelease_id.is_in(
199 (self.from_source_id, self.to_source_id)199 (self.from_source_id, self.to_source_id)
200 ),200 ),
201 SourcePackageReleaseFile.libraryfileID == LibraryFileAlias.id,201 SourcePackageReleaseFile.libraryfile_id == LibraryFileAlias.id,
202 LibraryFileAlias.content == None,202 LibraryFileAlias.content == None,
203 )203 )
204 .count()204 .count()
diff --git a/lib/lp/soyuz/model/publishing.py b/lib/lp/soyuz/model/publishing.py
index 1df1fa6..b2f7a9d 100644
--- a/lib/lp/soyuz/model/publishing.py
+++ b/lib/lp/soyuz/model/publishing.py
@@ -385,7 +385,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):
385 bpfs = list(385 bpfs = list(
386 Store.of(self).find(386 Store.of(self).find(
387 BinaryPackageFile,387 BinaryPackageFile,
388 BinaryPackageFile.binarypackagereleaseID.is_in(bpr_ids),388 BinaryPackageFile.binarypackagerelease_id.is_in(bpr_ids),
389 )389 )
390 )390 )
391 bpfs_by_bpr = defaultdict(list)391 bpfs_by_bpr = defaultdict(list)
@@ -395,7 +395,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):
395 get_property_cache(bpr).files = bpfs_by_bpr[bpr]395 get_property_cache(bpr).files = bpfs_by_bpr[bpr]
396396
397 # Preload LibraryFileAliases.397 # Preload LibraryFileAliases.
398 lfa_ids = {bpf.libraryfileID for bpf in bpfs}398 lfa_ids = {bpf.libraryfile_id for bpf in bpfs}
399 list(399 list(
400 Store.of(self).find(400 Store.of(self).find(
401 LibraryFileAlias, LibraryFileAlias.id.is_in(lfa_ids)401 LibraryFileAlias, LibraryFileAlias.id.is_in(lfa_ids)
@@ -476,7 +476,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):
476 def files(self):476 def files(self):
477 """See `IPublishing`."""477 """See `IPublishing`."""
478 files = self.sourcepackagerelease.files478 files = self.sourcepackagerelease.files
479 lfas = bulk.load_related(LibraryFileAlias, files, ["libraryfileID"])479 lfas = bulk.load_related(LibraryFileAlias, files, ["libraryfile_id"])
480 bulk.load_related(LibraryFileContent, lfas, ["contentID"])480 bulk.load_related(LibraryFileContent, lfas, ["contentID"])
481 return files481 return files
482482
@@ -659,7 +659,7 @@ class SourcePackagePublishingHistory(SQLBase, ArchivePublisherBase):
659 sources = Store.of(self).find(659 sources = Store.of(self).find(
660 (LibraryFileAlias, LibraryFileContent),660 (LibraryFileAlias, LibraryFileContent),
661 LibraryFileContent.id == LibraryFileAlias.contentID,661 LibraryFileContent.id == LibraryFileAlias.contentID,
662 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,662 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id,
663 SourcePackageReleaseFile.sourcepackagerelease663 SourcePackageReleaseFile.sourcepackagerelease
664 == self.sourcepackagereleaseID,664 == self.sourcepackagereleaseID,
665 )665 )
@@ -834,7 +834,7 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase):
834 def files(self):834 def files(self):
835 """See `IPublishing`."""835 """See `IPublishing`."""
836 files = self.binarypackagerelease.files836 files = self.binarypackagerelease.files
837 lfas = bulk.load_related(LibraryFileAlias, files, ["libraryfileID"])837 lfas = bulk.load_related(LibraryFileAlias, files, ["libraryfile_id"])
838 bulk.load_related(LibraryFileContent, lfas, ["contentID"])838 bulk.load_related(LibraryFileContent, lfas, ["contentID"])
839 return files839 return files
840840
@@ -1254,7 +1254,7 @@ class BinaryPackagePublishingHistory(SQLBase, ArchivePublisherBase):
1254 binaries = Store.of(self).find(1254 binaries = Store.of(self).find(
1255 (LibraryFileAlias, LibraryFileContent),1255 (LibraryFileAlias, LibraryFileContent),
1256 LibraryFileContent.id == LibraryFileAlias.contentID,1256 LibraryFileContent.id == LibraryFileAlias.contentID,
1257 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,1257 LibraryFileAlias.id == BinaryPackageFile.libraryfile_id,
1258 BinaryPackageFile.binarypackagerelease1258 BinaryPackageFile.binarypackagerelease
1259 == self.binarypackagereleaseID,1259 == self.binarypackagereleaseID,
1260 )1260 )
@@ -1848,7 +1848,7 @@ class PublishingSet:
1848 LibraryFileContent,1848 LibraryFileContent,
1849 ),1849 ),
1850 LibraryFileContent.id == LibraryFileAlias.contentID,1850 LibraryFileContent.id == LibraryFileAlias.contentID,
1851 LibraryFileAlias.id == BinaryPackageFile.libraryfileID,1851 LibraryFileAlias.id == BinaryPackageFile.libraryfile_id,
1852 BinaryPackageFile.binarypackagerelease == BinaryPackageRelease.id,1852 BinaryPackageFile.binarypackagerelease == BinaryPackageRelease.id,
1853 BinaryPackageRelease.buildID == BinaryPackageBuild.id,1853 BinaryPackageRelease.buildID == BinaryPackageBuild.id,
1854 SourcePackagePublishingHistory.sourcepackagereleaseID1854 SourcePackagePublishingHistory.sourcepackagereleaseID
@@ -1876,7 +1876,7 @@ class PublishingSet:
1876 LibraryFileContent,1876 LibraryFileContent,
1877 ),1877 ),
1878 LibraryFileContent.id == LibraryFileAlias.contentID,1878 LibraryFileContent.id == LibraryFileAlias.contentID,
1879 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,1879 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id,
1880 SourcePackageReleaseFile.sourcepackagerelease1880 SourcePackageReleaseFile.sourcepackagerelease
1881 == SourcePackagePublishingHistory.sourcepackagereleaseID,1881 == SourcePackagePublishingHistory.sourcepackagereleaseID,
1882 SourcePackagePublishingHistory.id.is_in(source_publication_ids),1882 SourcePackagePublishingHistory.id.is_in(source_publication_ids),
@@ -2005,11 +2005,11 @@ class PublishingSet:
2005 IStore(SourcePackageReleaseFile)2005 IStore(SourcePackageReleaseFile)
2006 .find(2006 .find(
2007 SourcePackageReleaseFile,2007 SourcePackageReleaseFile,
2008 SourcePackageReleaseFile.sourcepackagereleaseID.is_in(2008 SourcePackageReleaseFile.sourcepackagerelease_id.is_in(
2009 spr_ids2009 spr_ids
2010 ),2010 ),
2011 )2011 )
2012 .order_by(SourcePackageReleaseFile.libraryfileID)2012 .order_by(SourcePackageReleaseFile.libraryfile_id)
2013 )2013 )
2014 file_map = defaultdict(list)2014 file_map = defaultdict(list)
2015 for sprf in sprfs:2015 for sprf in sprfs:
@@ -2017,7 +2017,7 @@ class PublishingSet:
2017 for spr, files in file_map.items():2017 for spr, files in file_map.items():
2018 get_property_cache(spr).files = files2018 get_property_cache(spr).files = files
2019 lfas = bulk.load_related(2019 lfas = bulk.load_related(
2020 LibraryFileAlias, sprfs, ["libraryfileID"]2020 LibraryFileAlias, sprfs, ["libraryfile_id"]
2021 )2021 )
2022 bulk.load_related(LibraryFileContent, lfas, ["contentID"])2022 bulk.load_related(LibraryFileContent, lfas, ["contentID"])
20232023
@@ -2063,14 +2063,16 @@ class PublishingSet:
2063 SourcePackageRelease, bpbs, ["source_package_release_id"]2063 SourcePackageRelease, bpbs, ["source_package_release_id"]
2064 )2064 )
2065 bpfs = bulk.load_referencing(2065 bpfs = bulk.load_referencing(
2066 BinaryPackageFile, bprs, ["binarypackagereleaseID"]2066 BinaryPackageFile, bprs, ["binarypackagerelease_id"]
2067 )2067 )
2068 file_map = defaultdict(list)2068 file_map = defaultdict(list)
2069 for bpf in bpfs:2069 for bpf in bpfs:
2070 file_map[bpf.binarypackagerelease].append(bpf)2070 file_map[bpf.binarypackagerelease].append(bpf)
2071 for bpr, files in file_map.items():2071 for bpr, files in file_map.items():
2072 get_property_cache(bpr).files = files2072 get_property_cache(bpr).files = files
2073 lfas = bulk.load_related(LibraryFileAlias, bpfs, ["libraryfileID"])2073 lfas = bulk.load_related(
2074 LibraryFileAlias, bpfs, ["libraryfile_id"]
2075 )
2074 bulk.load_related(LibraryFileContent, lfas, ["contentID"])2076 bulk.load_related(LibraryFileContent, lfas, ["contentID"])
2075 bulk.load_related(SourcePackageName, sprs, ["sourcepackagenameID"])2077 bulk.load_related(SourcePackageName, sprs, ["sourcepackagenameID"])
2076 bulk.load_related(BinaryPackageName, bprs, ["binarypackagenameID"])2078 bulk.load_related(BinaryPackageName, bprs, ["binarypackagenameID"])
diff --git a/lib/lp/soyuz/model/sourcepackagerelease.py b/lib/lp/soyuz/model/sourcepackagerelease.py
index 0dcd8da..9cb4baf 100644
--- a/lib/lp/soyuz/model/sourcepackagerelease.py
+++ b/lib/lp/soyuz/model/sourcepackagerelease.py
@@ -305,7 +305,7 @@ class SourcePackageRelease(SQLBase):
305 return list(305 return list(
306 Store.of(self)306 Store.of(self)
307 .find(SourcePackageReleaseFile, sourcepackagerelease=self)307 .find(SourcePackageReleaseFile, sourcepackagerelease=self)
308 .order_by(SourcePackageReleaseFile.libraryfileID)308 .order_by(SourcePackageReleaseFile.libraryfile_id)
309 )309 )
310310
311 def getFileByName(self, filename):311 def getFileByName(self, filename):
@@ -315,7 +315,7 @@ class SourcePackageRelease(SQLBase):
315 .find(315 .find(
316 SourcePackageReleaseFile,316 SourcePackageReleaseFile,
317 SourcePackageReleaseFile.sourcepackagerelease == self.id,317 SourcePackageReleaseFile.sourcepackagerelease == self.id,
318 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfileID,318 LibraryFileAlias.id == SourcePackageReleaseFile.libraryfile_id,
319 LibraryFileAlias.filename == filename,319 LibraryFileAlias.filename == filename,
320 )320 )
321 .one()321 .one()
diff --git a/lib/lp/soyuz/scripts/expire_archive_files.py b/lib/lp/soyuz/scripts/expire_archive_files.py
index ed91efc..ef82fef 100755
--- a/lib/lp/soyuz/scripts/expire_archive_files.py
+++ b/lib/lp/soyuz/scripts/expire_archive_files.py
@@ -126,7 +126,7 @@ class ArchiveExpirer(LaunchpadCronScript):
126 ),126 ),
127 )127 )
128 denied = Select(128 denied = Select(
129 xPF.libraryfileID,129 xPF.libraryfile_id,
130 where=And(130 where=And(
131 xPR_join,131 xPR_join,
132 xPPH.archive == Archive.id,132 xPPH.archive == Archive.id,
diff --git a/lib/lp/soyuz/scripts/gina/handlers.py b/lib/lp/soyuz/scripts/gina/handlers.py
index 1e0ff96..a595340 100644
--- a/lib/lp/soyuz/scripts/gina/handlers.py
+++ b/lib/lp/soyuz/scripts/gina/handlers.py
@@ -916,7 +916,7 @@ class BinaryPackageHandler:
916916
917 alias = getLibraryAlias(path, fname)917 alias = getLibraryAlias(path, fname)
918 BinaryPackageFile(918 BinaryPackageFile(
919 binarypackagerelease=binpkg.id,919 binarypackagerelease=binpkg,
920 libraryfile=alias,920 libraryfile=alias,
921 filetype=determine_binary_file_type(fname),921 filetype=determine_binary_file_type(fname),
922 )922 )

Subscribers

People subscribed via source and target branches

to status/vote changes: