Merge lp:~wgrant/launchpad/avoid-dscsigningkey into lp:launchpad

Proposed by William Grant
Status: Merged
Merged at revision: 18174
Proposed branch: lp:~wgrant/launchpad/avoid-dscsigningkey
Merge into: lp:launchpad
Diff against target: 188 lines (+12/-36)
10 files modified
lib/lp/registry/browser/tests/test_distroseries.py (+2/-5)
lib/lp/soyuz/configure.zcml (+0/-1)
lib/lp/soyuz/doc/publishing.txt (+0/-1)
lib/lp/soyuz/interfaces/sourcepackagerelease.py (+2/-1)
lib/lp/soyuz/mail/binarypackagebuild.py (+4/-4)
lib/lp/soyuz/model/archive.py (+0/-8)
lib/lp/soyuz/model/publishing.py (+1/-3)
lib/lp/soyuz/model/sourcepackagerelease.py (+0/-9)
lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt (+3/-3)
lib/lp/soyuz/tests/test_build_notify.py (+0/-1)
To merge this branch: bzr merge lp:~wgrant/launchpad/avoid-dscsigningkey
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+301459@code.launchpad.net

Commit message

Avoid SourcePackageRelease.dscsigningkey when we just need signing_key_owner.

Description of the change

Avoid SourcePackageRelease.dscsigningkey when we just need signing_key_owner.

dscsigningkey can imply a call out to gpgservice nowadays.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/registry/browser/tests/test_distroseries.py'
--- lib/lp/registry/browser/tests/test_distroseries.py 2016-03-02 15:52:33 +0000
+++ lib/lp/registry/browser/tests/test_distroseries.py 2016-07-29 08:11:47 +0000
@@ -945,7 +945,6 @@
945 removeSecurityProxy(spr).signing_key_owner = key.owner945 removeSecurityProxy(spr).signing_key_owner = key.owner
946 removeSecurityProxy(spr).signing_key_fingerprint = (946 removeSecurityProxy(spr).signing_key_fingerprint = (
947 key.fingerprint)947 key.fingerprint)
948 del get_property_cache(spr).dscsigningkey
949948
950 def flush_and_render():949 def flush_and_render():
951 flush_database_caches()950 flush_database_caches()
@@ -1365,7 +1364,6 @@
1365 dsd.source_package_release.sourcepackagerelease)1364 dsd.source_package_release.sourcepackagerelease)
1366 naked_spr.signing_key_fingerprint = key.fingerprint1365 naked_spr.signing_key_fingerprint = key.fingerprint
1367 naked_spr.signing_key_owner = key.owner1366 naked_spr.signing_key_owner = key.owner
1368 del get_property_cache(naked_spr).dscsigningkey
1369 view = self.makeView(dsd.derived_series)1367 view = self.makeView(dsd.derived_series)
1370 root = html.fromstring(view())1368 root = html.fromstring(view())
1371 [creator_cell] = root.cssselect(1369 [creator_cell] = root.cssselect(
@@ -1373,7 +1371,7 @@
1373 matches = DocTestMatches(1371 matches = DocTestMatches(
1374 "... ago by %s (uploaded by %s)" % (1372 "... ago by %s (uploaded by %s)" % (
1375 dsd.source_package_release.creator.displayname,1373 dsd.source_package_release.creator.displayname,
1376 dsd.source_package_release.dscsigningkey.owner.displayname))1374 dsd.source_package_release.signing_key_owner.displayname))
1377 self.assertThat(creator_cell.text_content(), matches)1375 self.assertThat(creator_cell.text_content(), matches)
13781376
1379 def test_diff_row_links_to_parent_changelog(self):1377 def test_diff_row_links_to_parent_changelog(self):
@@ -2445,7 +2443,6 @@
2445 dsd.parent_source_package_release.sourcepackagerelease)2443 dsd.parent_source_package_release.sourcepackagerelease)
2446 naked_spr.signing_key_fingerprint = key.fingerprint2444 naked_spr.signing_key_fingerprint = key.fingerprint
2447 naked_spr.signing_key_owner = key.owner2445 naked_spr.signing_key_owner = key.owner
2448 del get_property_cache(naked_spr).dscsigningkey
2449 with person_logged_in(self.simple_user):2446 with person_logged_in(self.simple_user):
2450 view = create_initialized_view(2447 view = create_initialized_view(
2451 dsd.derived_series, '+missingpackages',2448 dsd.derived_series, '+missingpackages',
@@ -2457,7 +2454,7 @@
2457 matches = DocTestMatches(2454 matches = DocTestMatches(
2458 "... ago by %s (uploaded by %s)" % (2455 "... ago by %s (uploaded by %s)" % (
2459 parent_spr.creator.displayname,2456 parent_spr.creator.displayname,
2460 parent_spr.dscsigningkey.owner.displayname))2457 parent_spr.signing_key_owner.displayname))
2461 self.assertThat(creator_cell.text_content(), matches)2458 self.assertThat(creator_cell.text_content(), matches)
24622459
24632460
24642461
=== modified file 'lib/lp/soyuz/configure.zcml'
--- lib/lp/soyuz/configure.zcml 2016-06-10 09:26:31 +0000
+++ lib/lp/soyuz/configure.zcml 2016-07-29 08:11:47 +0000
@@ -75,7 +75,6 @@
75 class="lp.soyuz.model.sourcepackagerelease.SourcePackageRelease">75 class="lp.soyuz.model.sourcepackagerelease.SourcePackageRelease">
76 <allow76 <allow
77 interface="lp.soyuz.interfaces.sourcepackagerelease.ISourcePackageRelease"/>77 interface="lp.soyuz.interfaces.sourcepackagerelease.ISourcePackageRelease"/>
78 <allow attributes="signing_key_fingerprint signing_key_owner" />
79 <!-- changelog needs to be updated when unembargoing -->78 <!-- changelog needs to be updated when unembargoing -->
80 <require79 <require
81 permission="launchpad.Edit"80 permission="launchpad.Edit"
8281
=== modified file 'lib/lp/soyuz/doc/publishing.txt'
--- lib/lp/soyuz/doc/publishing.txt 2016-03-02 15:52:33 +0000
+++ lib/lp/soyuz/doc/publishing.txt 2016-07-29 08:11:47 +0000
@@ -91,7 +91,6 @@
91 >>> from lp.services.propertycache import get_property_cache91 >>> from lp.services.propertycache import get_property_cache
92 >>> spph.sourcepackagerelease.signing_key_owner = None92 >>> spph.sourcepackagerelease.signing_key_owner = None
93 >>> spph.sourcepackagerelease.signing_key_fingerprint = None93 >>> spph.sourcepackagerelease.signing_key_fingerprint = None
94 >>> del get_property_cache(spph.sourcepackagerelease).dscsigningkey
95 >>> print spph.package_signer94 >>> print spph.package_signer
96 None95 None
9796
9897
=== modified file 'lib/lp/soyuz/interfaces/sourcepackagerelease.py'
--- lib/lp/soyuz/interfaces/sourcepackagerelease.py 2016-03-03 18:41:27 +0000
+++ lib/lp/soyuz/interfaces/sourcepackagerelease.py 2016-07-29 08:11:47 +0000
@@ -35,7 +35,8 @@
35 version = Attribute("A version string")35 version = Attribute("A version string")
36 dateuploaded = Attribute("Date of Upload")36 dateuploaded = Attribute("Date of Upload")
37 urgency = Attribute("Source Package Urgency")37 urgency = Attribute("Source Package Urgency")
38 dscsigningkey = Attribute("DSC Signing Key")38 signing_key_owner = Attribute("Signing key owner")
39 signing_key_fingerprint = Attribute("Signing key fingerprint")
39 component = Attribute("Source Package Component")40 component = Attribute("Source Package Component")
40 format = Attribute("The Source Package Format")41 format = Attribute("The Source Package Format")
41 changelog = Attribute("LibraryFileAlias containing debian/changelog.")42 changelog = Attribute("LibraryFileAlias containing debian/changelog.")
4243
=== modified file 'lib/lp/soyuz/mail/binarypackagebuild.py'
--- lib/lp/soyuz/mail/binarypackagebuild.py 2015-08-23 22:53:55 +0000
+++ lib/lp/soyuz/mail/binarypackagebuild.py 2016-07-29 08:11:47 +0000
@@ -107,12 +107,12 @@
107 reason = BinaryPackageBuildRecipientReason.forCreator(107 reason = BinaryPackageBuildRecipientReason.forCreator(
108 creator, recipient)108 creator, recipient)
109 recipients[recipient] = reason109 recipients[recipient] = reason
110 dsc_key = build.source_package_release.dscsigningkey110 signer = build.source_package_release.signing_key_owner
111 if dsc_key:111 if signer:
112 for recipient in get_recipients(dsc_key.owner):112 for recipient in get_recipients(signer):
113 if recipient not in recipients:113 if recipient not in recipients:
114 reason = BinaryPackageBuildRecipientReason.forSigner(114 reason = BinaryPackageBuildRecipientReason.forSigner(
115 dsc_key.owner, recipient)115 signer, recipient)
116 recipients[recipient] = reason116 recipients[recipient] = reason
117117
118 if not build.archive.is_ppa:118 if not build.archive.is_ppa:
119119
=== modified file 'lib/lp/soyuz/model/archive.py'
--- lib/lp/soyuz/model/archive.py 2016-07-14 16:06:01 +0000
+++ lib/lp/soyuz/model/archive.py 2016-07-29 08:11:47 +0000
@@ -701,14 +701,6 @@
701 ids.discard(None)701 ids.discard(None)
702 if ids:702 if ids:
703 list(getUtility(IPersonSet).getPrecachedPersonsFromIDs(ids))703 list(getUtility(IPersonSet).getPrecachedPersonsFromIDs(ids))
704 keys = {
705 key.fingerprint: key for key in
706 getUtility(IGPGKeySet).getByFingerprints(
707 set(map(attrgetter('signing_key_fingerprint'), releases))
708 - set([None]))}
709 for spr in releases:
710 get_property_cache(spr).dscsigningkey = keys.get(
711 spr.signing_key_fingerprint)
712 return DecoratedResultSet(resultset, pre_iter_hook=eager_load)704 return DecoratedResultSet(resultset, pre_iter_hook=eager_load)
713705
714 def getSourcesForDeletion(self, name=None, status=None, distroseries=None):706 def getSourcesForDeletion(self, name=None, status=None, distroseries=None):
715707
=== modified file 'lib/lp/soyuz/model/publishing.py'
--- lib/lp/soyuz/model/publishing.py 2016-06-14 12:40:30 +0000
+++ lib/lp/soyuz/model/publishing.py 2016-07-29 08:11:47 +0000
@@ -379,9 +379,7 @@
379 @property379 @property
380 def package_signer(self):380 def package_signer(self):
381 """See `ISourcePackagePublishingHistory`."""381 """See `ISourcePackagePublishingHistory`."""
382 if self.sourcepackagerelease.dscsigningkey is not None:382 return self.sourcepackagerelease.signing_key_owner
383 return self.sourcepackagerelease.dscsigningkey.owner
384 return None
385383
386 @cachedproperty384 @cachedproperty
387 def newer_distroseries_version(self):385 def newer_distroseries_version(self):
388386
=== modified file 'lib/lp/soyuz/model/sourcepackagerelease.py'
--- lib/lp/soyuz/model/sourcepackagerelease.py 2016-03-14 23:42:45 +0000
+++ lib/lp/soyuz/model/sourcepackagerelease.py 2016-07-29 08:11:47 +0000
@@ -173,15 +173,6 @@
173 "UPDATE sourcepackagerelease SET copyright=%s WHERE id=%s",173 "UPDATE sourcepackagerelease SET copyright=%s WHERE id=%s",
174 (content, self.id))174 (content, self.id))
175175
176 @cachedproperty
177 def dscsigningkey(self):
178 if self.signing_key_fingerprint is not None:
179 # Stripping proxy as some tests expect this former FK to
180 # hold an unsecured object. self is always proxied by things
181 # that hold it, so no issue here.
182 return removeSecurityProxy(getUtility(IGPGKeySet).getByFingerprint(
183 self.signing_key_fingerprint))
184
185 @property176 @property
186 def user_defined_fields(self):177 def user_defined_fields(self):
187 """See `IBinaryPackageRelease`."""178 """See `IBinaryPackageRelease`."""
188179
=== modified file 'lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt'
--- lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2011-12-08 22:41:00 +0000
+++ lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2016-07-29 08:11:47 +0000
@@ -39,10 +39,10 @@
39 </td>39 </td>
40 <td tal:condition="context/archive/owner/is_team"40 <td tal:condition="context/archive/owner/is_team"
41 tal:define="spr context/sourcepackagerelease;41 tal:define="spr context/sourcepackagerelease;
42 signer spr/dscsigningkey/owner|nothing">42 signer spr/signing_key_owner|nothing">
43 <tal:has_signer condition="signer">43 <tal:has_signer condition="signer">
44 <a tal:attributes="href spr/dscsigningkey/owner/fmt:url"44 <a tal:attributes="href spr/signing_key_owner/fmt:url"
45 tal:content="spr/dscsigningkey/owner/name"></a>45 tal:content="spr/signing_key_owner/name"></a>
46 </tal:has_signer>46 </tal:has_signer>
47 <tal:no_signer condition="not: signer">47 <tal:no_signer condition="not: signer">
48 no signer48 no signer
4949
=== modified file 'lib/lp/soyuz/tests/test_build_notify.py'
--- lib/lp/soyuz/tests/test_build_notify.py 2016-03-14 23:42:45 +0000
+++ lib/lp/soyuz/tests/test_build_notify.py 2016-07-29 08:11:47 +0000
@@ -438,7 +438,6 @@
438 # Push past the security proxy438 # Push past the security proxy
439 removeSecurityProxy(spr).signing_key_owner = key.owner439 removeSecurityProxy(spr).signing_key_owner = key.owner
440 removeSecurityProxy(spr).signing_key_fingerprint = key.fingerprint440 removeSecurityProxy(spr).signing_key_fingerprint = key.fingerprint
441 del get_property_cache(spr).dscsigningkey
442 with dbuser(config.builddmaster.dbuser):441 with dbuser(config.builddmaster.dbuser):
443 build.notify()442 build.notify()
444 expected_reasons = [443 expected_reasons = [