[09:29] <xnox> cjwatson, juliank - downloaded SKS webserver source code, to browse what it supports.... And I think everything what we need already exists
[09:30] <xnox> https://keyserver.ubuntu.com/pks/lookup?op=get&exact=on&search=0x2d9df1e22f3416238d46f49f157951fe4031d287
[09:30] <xnox> bah wrong url
[09:30] <xnox> https://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&exact=on&search=0x2d9df1e22f3416238d46f49f157951fe4031d287
[09:30] <xnox> downlaods ASC armored public key, with exact match on the fingerprint.
[09:31] <xnox> it's not clean, but it's perfectly usable by the new enough apt.
[09:31] <xnox> (in the web-browser that gets downloaded as gpgkey.asc)
[10:06] <cjwatson> xnox: I mean, we could, but I'd rather just use the existing interfaces that LP already uses.
[10:06] <cjwatson> i.e. retrieve the key in the usual way (which is op=get&exact=on) and then format it ourselves
[10:07] <cjwatson> that way we can cache it using our existing strategies
[10:07] <xnox> as in launchpad.net to proxy the results for that.
[10:08] <xnox> without 'options=mp' one gets and html page with header bar; with 'options=mp' one gets plain text, armored key
[10:08] <xnox> so if you are adding code in launchpad to fetch keys, 'options=mp' is useful.
[10:09] <cjwatson> We already have code in Launchpad to fetch keys
[10:09] <cjwatson> lib/lp/services/gpg/handler.py
[10:09]  * xnox looks
[10:09] <cjwatson> So I'd rather fetch the key in the usual way we already do, and then use gpgme to armor it
[10:10] <cjwatson> Because that way the same keyserver result can be cached locally and has a better chance of being useful for other requests
[10:11] <xnox> ack
[10:13] <cjwatson> In fact we already have all the necessary code.
[10:13] <cjwatson> PymeKey.export will do it
[10:14] <cjwatson> (Because PymeKey._getContext sets armor = True
[10:14] <cjwatson> )
[10:15] <cjwatson> So it should literally be just handler = getUtility(IGPGHandler); pub_key = handler.retrieveKey(fingerprint); key_text = pub_key.export()
[10:15] <cjwatson> Sorry, I didn't realise you thought we thought we'd need any special keyserver support for this.
[10:15] <cjwatson> Could have saved you the bother.
[20:43] <cjwatson> wgrant: Could you re-review https://code.launchpad.net/~cjwatson/launchpad/job-oops-timeline/+merge/341554, please?  I added some gadgetry to avoid BranchScanJob producing giant timelines, since that seems likely to be the worst offender.
[21:35] <wgrant> cjwatson: Ah, clever.
[22:08] <cjwatson> Thanks.
[22:08] <cjwatson> Also, if you reference any kind of model object from your timeline then the resulting reference cycles are *hell* to debug.
[22:09] <cjwatson> I tried using objgraph which sort of vaguely helped a little but also produced enormous output.