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
1=== modified file 'lib/lp/registry/browser/tests/test_distroseries.py'
2--- lib/lp/registry/browser/tests/test_distroseries.py 2016-03-02 15:52:33 +0000
3+++ lib/lp/registry/browser/tests/test_distroseries.py 2016-07-29 08:11:47 +0000
4@@ -945,7 +945,6 @@
5 removeSecurityProxy(spr).signing_key_owner = key.owner
6 removeSecurityProxy(spr).signing_key_fingerprint = (
7 key.fingerprint)
8- del get_property_cache(spr).dscsigningkey
9
10 def flush_and_render():
11 flush_database_caches()
12@@ -1365,7 +1364,6 @@
13 dsd.source_package_release.sourcepackagerelease)
14 naked_spr.signing_key_fingerprint = key.fingerprint
15 naked_spr.signing_key_owner = key.owner
16- del get_property_cache(naked_spr).dscsigningkey
17 view = self.makeView(dsd.derived_series)
18 root = html.fromstring(view())
19 [creator_cell] = root.cssselect(
20@@ -1373,7 +1371,7 @@
21 matches = DocTestMatches(
22 "... ago by %s (uploaded by %s)" % (
23 dsd.source_package_release.creator.displayname,
24- dsd.source_package_release.dscsigningkey.owner.displayname))
25+ dsd.source_package_release.signing_key_owner.displayname))
26 self.assertThat(creator_cell.text_content(), matches)
27
28 def test_diff_row_links_to_parent_changelog(self):
29@@ -2445,7 +2443,6 @@
30 dsd.parent_source_package_release.sourcepackagerelease)
31 naked_spr.signing_key_fingerprint = key.fingerprint
32 naked_spr.signing_key_owner = key.owner
33- del get_property_cache(naked_spr).dscsigningkey
34 with person_logged_in(self.simple_user):
35 view = create_initialized_view(
36 dsd.derived_series, '+missingpackages',
37@@ -2457,7 +2454,7 @@
38 matches = DocTestMatches(
39 "... ago by %s (uploaded by %s)" % (
40 parent_spr.creator.displayname,
41- parent_spr.dscsigningkey.owner.displayname))
42+ parent_spr.signing_key_owner.displayname))
43 self.assertThat(creator_cell.text_content(), matches)
44
45
46
47=== modified file 'lib/lp/soyuz/configure.zcml'
48--- lib/lp/soyuz/configure.zcml 2016-06-10 09:26:31 +0000
49+++ lib/lp/soyuz/configure.zcml 2016-07-29 08:11:47 +0000
50@@ -75,7 +75,6 @@
51 class="lp.soyuz.model.sourcepackagerelease.SourcePackageRelease">
52 <allow
53 interface="lp.soyuz.interfaces.sourcepackagerelease.ISourcePackageRelease"/>
54- <allow attributes="signing_key_fingerprint signing_key_owner" />
55 <!-- changelog needs to be updated when unembargoing -->
56 <require
57 permission="launchpad.Edit"
58
59=== modified file 'lib/lp/soyuz/doc/publishing.txt'
60--- lib/lp/soyuz/doc/publishing.txt 2016-03-02 15:52:33 +0000
61+++ lib/lp/soyuz/doc/publishing.txt 2016-07-29 08:11:47 +0000
62@@ -91,7 +91,6 @@
63 >>> from lp.services.propertycache import get_property_cache
64 >>> spph.sourcepackagerelease.signing_key_owner = None
65 >>> spph.sourcepackagerelease.signing_key_fingerprint = None
66- >>> del get_property_cache(spph.sourcepackagerelease).dscsigningkey
67 >>> print spph.package_signer
68 None
69
70
71=== modified file 'lib/lp/soyuz/interfaces/sourcepackagerelease.py'
72--- lib/lp/soyuz/interfaces/sourcepackagerelease.py 2016-03-03 18:41:27 +0000
73+++ lib/lp/soyuz/interfaces/sourcepackagerelease.py 2016-07-29 08:11:47 +0000
74@@ -35,7 +35,8 @@
75 version = Attribute("A version string")
76 dateuploaded = Attribute("Date of Upload")
77 urgency = Attribute("Source Package Urgency")
78- dscsigningkey = Attribute("DSC Signing Key")
79+ signing_key_owner = Attribute("Signing key owner")
80+ signing_key_fingerprint = Attribute("Signing key fingerprint")
81 component = Attribute("Source Package Component")
82 format = Attribute("The Source Package Format")
83 changelog = Attribute("LibraryFileAlias containing debian/changelog.")
84
85=== modified file 'lib/lp/soyuz/mail/binarypackagebuild.py'
86--- lib/lp/soyuz/mail/binarypackagebuild.py 2015-08-23 22:53:55 +0000
87+++ lib/lp/soyuz/mail/binarypackagebuild.py 2016-07-29 08:11:47 +0000
88@@ -107,12 +107,12 @@
89 reason = BinaryPackageBuildRecipientReason.forCreator(
90 creator, recipient)
91 recipients[recipient] = reason
92- dsc_key = build.source_package_release.dscsigningkey
93- if dsc_key:
94- for recipient in get_recipients(dsc_key.owner):
95+ signer = build.source_package_release.signing_key_owner
96+ if signer:
97+ for recipient in get_recipients(signer):
98 if recipient not in recipients:
99 reason = BinaryPackageBuildRecipientReason.forSigner(
100- dsc_key.owner, recipient)
101+ signer, recipient)
102 recipients[recipient] = reason
103
104 if not build.archive.is_ppa:
105
106=== modified file 'lib/lp/soyuz/model/archive.py'
107--- lib/lp/soyuz/model/archive.py 2016-07-14 16:06:01 +0000
108+++ lib/lp/soyuz/model/archive.py 2016-07-29 08:11:47 +0000
109@@ -701,14 +701,6 @@
110 ids.discard(None)
111 if ids:
112 list(getUtility(IPersonSet).getPrecachedPersonsFromIDs(ids))
113- keys = {
114- key.fingerprint: key for key in
115- getUtility(IGPGKeySet).getByFingerprints(
116- set(map(attrgetter('signing_key_fingerprint'), releases))
117- - set([None]))}
118- for spr in releases:
119- get_property_cache(spr).dscsigningkey = keys.get(
120- spr.signing_key_fingerprint)
121 return DecoratedResultSet(resultset, pre_iter_hook=eager_load)
122
123 def getSourcesForDeletion(self, name=None, status=None, distroseries=None):
124
125=== modified file 'lib/lp/soyuz/model/publishing.py'
126--- lib/lp/soyuz/model/publishing.py 2016-06-14 12:40:30 +0000
127+++ lib/lp/soyuz/model/publishing.py 2016-07-29 08:11:47 +0000
128@@ -379,9 +379,7 @@
129 @property
130 def package_signer(self):
131 """See `ISourcePackagePublishingHistory`."""
132- if self.sourcepackagerelease.dscsigningkey is not None:
133- return self.sourcepackagerelease.dscsigningkey.owner
134- return None
135+ return self.sourcepackagerelease.signing_key_owner
136
137 @cachedproperty
138 def newer_distroseries_version(self):
139
140=== modified file 'lib/lp/soyuz/model/sourcepackagerelease.py'
141--- lib/lp/soyuz/model/sourcepackagerelease.py 2016-03-14 23:42:45 +0000
142+++ lib/lp/soyuz/model/sourcepackagerelease.py 2016-07-29 08:11:47 +0000
143@@ -173,15 +173,6 @@
144 "UPDATE sourcepackagerelease SET copyright=%s WHERE id=%s",
145 (content, self.id))
146
147- @cachedproperty
148- def dscsigningkey(self):
149- if self.signing_key_fingerprint is not None:
150- # Stripping proxy as some tests expect this former FK to
151- # hold an unsecured object. self is always proxied by things
152- # that hold it, so no issue here.
153- return removeSecurityProxy(getUtility(IGPGKeySet).getByFingerprint(
154- self.signing_key_fingerprint))
155-
156 @property
157 def user_defined_fields(self):
158 """See `IBinaryPackageRelease`."""
159
160=== modified file 'lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt'
161--- lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2011-12-08 22:41:00 +0000
162+++ lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-detailed.pt 2016-07-29 08:11:47 +0000
163@@ -39,10 +39,10 @@
164 </td>
165 <td tal:condition="context/archive/owner/is_team"
166 tal:define="spr context/sourcepackagerelease;
167- signer spr/dscsigningkey/owner|nothing">
168+ signer spr/signing_key_owner|nothing">
169 <tal:has_signer condition="signer">
170- <a tal:attributes="href spr/dscsigningkey/owner/fmt:url"
171- tal:content="spr/dscsigningkey/owner/name"></a>
172+ <a tal:attributes="href spr/signing_key_owner/fmt:url"
173+ tal:content="spr/signing_key_owner/name"></a>
174 </tal:has_signer>
175 <tal:no_signer condition="not: signer">
176 no signer
177
178=== modified file 'lib/lp/soyuz/tests/test_build_notify.py'
179--- lib/lp/soyuz/tests/test_build_notify.py 2016-03-14 23:42:45 +0000
180+++ lib/lp/soyuz/tests/test_build_notify.py 2016-07-29 08:11:47 +0000
181@@ -438,7 +438,6 @@
182 # Push past the security proxy
183 removeSecurityProxy(spr).signing_key_owner = key.owner
184 removeSecurityProxy(spr).signing_key_fingerprint = key.fingerprint
185- del get_property_cache(spr).dscsigningkey
186 with dbuser(config.builddmaster.dbuser):
187 build.notify()
188 expected_reasons = [