[00:03] <StevenK>          BugSubscriptionFilterInformationType.information_type ==
[00:03] <StevenK>              bug.information_type,
[00:03] <StevenK> -        BugSubscriptionFilterStatus.status == None))
[00:03] <StevenK> +        BugSubscriptionFilterInformationType.information_type == None))
[00:03] <StevenK> wgrant: ^ Spot the error.
[00:04]  * StevenK puts a brown paper bag over his head
[00:06] <wgrant> Heh
[00:12] <wgrant> StevenK: Does that fix everything?
[00:36] <StevenK> wgrant: Yup
[00:36] <wgrant> StevenK: Excellent.
[00:36] <wgrant> StevenK: Is it in devel yet?
[00:37] <StevenK> wgrant: No, I'll be lp-landing it in a few moments.
[00:37] <wgrant> Great.
[00:42] <StevenK> wgrant: r15739
[00:44] <wgrant> Indeed.
[00:56] <StevenK> Hmm,     [action.label for action in bug_edit.view.actions]
[00:56] <StevenK> Is [] rather than ['Change']
[00:58] <wgrant> StevenK: There are some issues with inheritance of actions
[00:58] <wgrant> I don't know details, but I've seen workarounds.
[00:58] <StevenK> I'm waiting for make run so I can poke
[01:00] <StevenK> Hahaha, there is no button
[01:00] <wgrant> bin/run -r librarian -i development
[02:06] <StevenK> wgrant, wallyworld_: https://code.launchpad.net/~stevenk/launchpad/destroy-getusedbugtags/+merge/118024
[02:06] <wgrant> StevenK: Already there
[02:07] <wgrant> +15/-287 is what I like to see
[02:07] <wgrant> StevenK: Why'd you remove the wasRedirected check on line 164 of the diff?
[02:08] <wgrant> It may be legit.
[02:09] <StevenK> The test failed with it in
[02:09] <wgrant> Right, but it probably shouldn't have.
[02:11] <StevenK> Why? That was the screwy redirect back to ourselves if the tags need confirming?
[02:11] <wgrant> That would be a non-redirect
[02:11] <wgrant> The redirect is back to BugTask:+index
[02:12] <wgrant> The form seems to work fine, but that test should probably pass
[02:16] <StevenK>     bug_edit.wasRedirected()
[02:16] <StevenK>     - True
[02:16] <StevenK>     + False
[02:19] <wgrant> StevenK: Oh
[02:19] <wgrant> Look at that block of the test
[02:19] <wgrant> It needs to die
[02:19] <wgrant> And you want to rewrite the prose in that whole section
[02:20] <wgrant> 658-672 of that file can probably just be deleted
[02:20] <wgrant> And the prose before that mentions adding a new tag
[02:20] <wgrant> Which isn't special any more
[02:23] <StevenK> http://pastebin.ubuntu.com/1126322/
[02:26] <wgrant> StevenK: You have a blank line where there should not be a blank line, but otherwise good
[02:42] <StevenK> wgrant: Any other comments?
[03:02] <lifeless> wallyworld_: / wgrant: bug https://bugs.launchpad.net/launchpad/+bug/971144
[03:02] <_mup_> Bug #971144: Remove direct sharee on sharing audit page should show any remaining team access <disclosure> <sharing> <ui> <Launchpad itself:Won't Fix by wallyworld> < https://launchpad.net/bugs/971144 >
[03:03] <lifeless> it claims there *is* a sharing audit page now, and that it expands teams.
[03:03] <wallyworld_> there was but it was removed ages ago
[03:03] <lifeless> On the call you guys said that there was no such thing.
[03:03] <lifeless> ah, wontfix. I see (I was blind. bah).
[03:03] <lifeless> thanks
[03:03] <wallyworld_> np
[03:05] <wgrant> Well
[03:05] <wgrant> There was a page
[03:05] <wgrant> It was never finished
[03:05] <wgrant> And didn't live for long
[03:15] <wgrant> StevenK: r=me, thanks
[03:45] <StevenK> wgrant: Finally tossed at ec2, thanks
[03:48] <wallyworld_> lifeless: in canonical_url, why do we only allow specifying the rootsite when request is None? In the case where a request comes in from code.lp.net and you want to get a bug url, it is not possible since the result starts with "code.lp..."
[03:50] <lifeless> I don't know
[03:50] <lifeless> I haven't looked at that in a year o rso
[03:50] <lifeless> there should be tests with attached rationale
[03:50] <StevenK> canonical_url() is useful, but horrible
[03:51] <wallyworld_> ok, will poke around
[03:53] <wgrant> wallyworld_: Why're you passing in a request?
[03:53] <wgrant> Oh, to get a webservice base?
[03:53] <wallyworld_> yes
[03:53] <wallyworld_> i want to get self_link for a bug
[03:53] <wgrant> wallyworld_: That's not really what you want to do.
[03:54] <wgrant> wallyworld_: since cross-domain AJAX requests == boom
[03:54] <wgrant> The problem is that you *are* getting a bugs URL
[03:54] <wgrant> You need to not get one
[03:54] <wallyworld_> but i want one
[03:54] <wgrant> You might want one for the web_link
[03:54] <wgrant> But I don't see why you'd want one for self_link
[03:55] <wallyworld_> i need it to pass back to the client
[03:55] <wallyworld_> so the client can invoke an api on the bug
[03:55] <wgrant> The JS client can't use a self_link that's on another domain
[03:56] <wallyworld_> it does now i think
[03:56] <wgrant> Nope
[03:56] <wgrant> Same-origin ensures that it can't
[03:56] <wallyworld_> ah, it passes it in as a param
[03:57] <wallyworld_> so i need the self_link to pass as a param so that lazr restful knows how to unmarhsall it as a bug
[03:58] <wallyworld_> the js client now makes an extrs xhr call to get this info
[03:58] <wgrant> You need to either use the path (eg. '/bugs/1234', or the path prefixed with the webservice root that the method is on
[03:58] <_mup_> Bug #1234: Gina is an unmaintainable mess of command line options, environment variables and shell scripts <lp-foundations> <Launchpad itself:Fix Released by debonzi> < https://launchpad.net/bugs/1234 >
[03:58] <wgrant> You can't normally pass a bugs.launchpad.net URL into a method call on code.launchpad.net
[03:59] <wallyworld_> it does now in some form, i'll check exactly what is passed
[04:02] <wallyworld_> huh, so atm we issue a GET to http://code.lp.net/api/devel/bugs/1235
[04:02] <_mup_> Bug #1235: When batch_start is >= the number of bugs shown, an error is raised <lp-foundations> <oops> <Launchpad itself:Fix Released by spiv> < https://launchpad.net/bugs/1235 >
[04:02] <wallyworld_> and the result has all the api links starting with code.
[04:03] <wgrant> Right.
[04:03] <wallyworld_> which seems wrong but anyway
[04:03] <wgrant> Domain doesn't matter in terms of API interpretation
[04:03] <wgrant> It only exists on the webapp subdomains to work around same-origin
[04:03] <wgrant> s/It/The API/
[04:03] <wallyworld_> ok
[04:04] <wgrant> Yes, it is hideous, that's why I one-domainified LP in November :)
[04:05] <wallyworld_> so what happened to stop deploying it?
[04:06] <wgrant> Probably a combination of politics, leave, and teams being reassigned elsewhere.
[04:07] <wallyworld_> that's a shame
[04:07] <lifeless> wgrant: was it ready to action ?
[04:08] <wgrant> lifeless: There's one minor remaining technical issue: Product:+code-index is subtly different from Product:+branches in ways that confuse users and prevent trivially merging of them
[04:08] <wgrant> Everything else was ready to land.
[04:22] <lifeless> stub: hi, skype ?
[04:22] <stub> lifeless: sure
[04:22] <stub> its firing up, finding my mike
[04:48] <lifeless>  I want to be like mike
[07:47] <adeuring> good morning
[08:58] <lifeless> wgrant: https://launchpad.net/anonymiseip
[09:00] <wgrant> lifeless: brb, rainbow table
[09:00] <lifeless> wgrant: acknowledged in the README
[09:01] <lifeless> wgrant: you don't need one, its only 32 bits.
[09:01] <wgrant> Ah, in the middle of a 12 line paragraph
[09:02] <wgrant> lifeless: Meh, still more efficient if I want to steal all your users' IPs
[09:02] <lifeless> well yeah.
[09:02] <lifeless> So, if when we get ipv6, will need a deeper algorithm. But at that point it might actually be worth it.
[09:02] <lifeless> 32 bit, anything deterministic is brute forcable if you can get a chosen plaintext through it.
[09:02] <lifeless> E.g. hit a bad url from your own ip
[09:04] <wgrant> Hmm? A salt would work fine unless you want to bruteforce via the webservice.
[09:06] <lifeless> you toss your chosen plaintext in and grab back the anonymised log entry matching the chosen URL
[09:06] <lifeless> that gives you the salted output for your ip
[09:06] <wgrant> How does that help you?
[09:06] <wgrant> It's salted.
[09:07] <lifeless> bruteforce that - only 16 million to check
[09:07] <wgrant> That's a pretty shitty salt
[09:07] <lifeless> huh, its the output modulus that matters
[09:07] <lifeless> doesn't matter how big the salt
[09:08] <lifeless> if its going through a fairly flat function like w.g. sha1, then the bit reduction means you're not going to be far off of 2^32 before you find a hit
[09:11] <wgrant> I'm still not seeing the attack that you describe.
[09:11] <wgrant> But food calls.
[10:07] <cjwatson> lifeless: I'd appreciate a more detailed pointer regarding https://code.launchpad.net/~cjwatson/launchpad/archive-getallpermissions/+merge/117606, if you have time - in particular, I'm not sure where/if invisible teams are magically filtered out of the returned collection right now
[10:07] <cjwatson> It seems most sensible to push it down into the query; but it is odd that Person._teamPrivacyQuery is a private method (well, insofar as Python has those), since that looks like the ideal thing to call
[11:13] <cjwatson> Could somebody allocate me a DB patch number for the new job table at the end of bug 745799, if they think it's reasonable in principle?  A summary could just be "Create ProcessAcceptedBugsJob table."
[11:13] <_mup_> Bug #745799: DistroSeries:+queue Timeout accepting packages (bug structural subscriptions) <timeout> <Launchpad itself:Triaged> < https://launchpad.net/bugs/745799 >
[12:11] <bac> hi frankban
[12:53] <czajkowski> jml: did you get my reply to the list
[12:54] <czajkowski> mails from me seem to be taking forever and a day to go to lists :/
[12:54] <jml> czajkowski: yep
[12:54] <jml> czajkowski: wait... you replied directly to me
[12:54] <jml> czajkowski: as well as to the list
[12:54] <czajkowski> I replied to the list
[12:54] <czajkowski> not to you I always reply to lists
[12:55] <jml> oh quite right.
[12:55] <jml> then yes, I got it.
[12:55]  * jml is so used to Reply To All 
[12:55] <czajkowski> any reason you were wondering :)
[13:03] <jml> czajkowski: yes, actually
[13:04] <jml> czajkowski: james_w overheard on #launchpad-ops that there's downtime scheduled for Aug 17. I was wondering whether that was a further rescheduling of the cocoplum downtime that happened yesterday
[13:05] <czajkowski> different..
[13:05] <jml> czajkowski: yeah, so I gather.
[13:06] <jml> czajkowski: other, less vigilant stakeholders would probably appreciate an email to the list about it.
[13:06] <wgrant> I imagine everyone will be getting details about it soon
[13:06] <czajkowski> jml: I'm sure we will when they are ready
[13:06] <wgrant> We don't know specifics yet
[13:07] <jml> wgrant, czajkowski: glad to hear it. thanks.
[13:47] <rick_h_> jcsackett: morning, off the stand up so ping when you're ready to chat.
[13:53] <jcsackett> rick_h_: ping.
[13:53] <rick_h_> jcsackett: pong
[13:54] <jcsackett> rick_h_: g+?
[13:54] <rick_h_> jcsackett: yea, starting one up now
[15:38] <jcsackett> bac: could you look at https://code.launchpad.net/~jcsackett/launchpad/info-type-from-main-host/+merge/118128
[15:40] <bac> jcsackett: done
[15:42] <jcsackett> thanks, bac.
[15:43] <bac> jcsackett: hope it wasn't too verbose
[15:43] <jcsackett> bac: just right.
[19:55] <jcsackett> rick_h_: ping me when you're available to chat. i'm free now.
[19:59] <rick_h_> jcsackett: awesome, I'll set it up