[02:31] <lifeless> hmm, running out of yak shaving time
[02:31] <lifeless> Anyone care to land an approved branch for me ?
[02:38] <lifeless> StevenK: ping
[02:41] <poolie> i got a tcp timeout connecting to bugs.edge...
[02:42] <lifeless> !
[02:43] <poolie> just once
[02:43] <poolie> no other pages failed
[02:43] <poolie> bug 600000
[02:43] <_mup_> Bug #600000: missing dependency on Bazaar <hitchhiker (Ubuntu):Fix Released> <hitchhiker (Debian):New> <https://launchpad.net/bugs/600000>
[02:43] <poolie> big round numbers yay :)
[02:43] <lifeless> thats really weird as the front end is all load balanced etc
[02:43] <poolie> exactly
[02:53] <poolie> lifeless: i realize we can redirect but i wonder if we want to
[02:53] <poolie> probably
[03:07] <lifeless> http://www.paulhammond.org/2010/06/trunk/ <- relevant to lp
[03:07] <lifeless> (mailing the list now)
[04:44] <lifeless> StevenK: ping
[06:07] <StevenK> lifeless: pong
[06:22] <lifeless> StevenK: hi
[06:22] <lifeless> StevenK: I have two patches I would like to land
[06:22] <lifeless> but I'm not setup for ec2
[06:23] <lifeless> StevenK: I'm hioping you can help me
[06:25] <StevenK> lifeless: Okay, we can either setup ec2, or I can throw them at ec2
[06:26] <lifeless> please toss em :)
[06:26] <lifeless> https://code.edge.launchpad.net/~lifeless/launchpad/lsprof/+merge/28583 is one
[06:26] <lifeless> and https://code.edge.launchpad.net/~lifeless/launchpad/lognamer
[06:26] <lifeless> sorry
[06:27] <lifeless> https://code.edge.launchpad.net/~lifeless/launchpad/lognamer/+merge/28574
[06:27] <lifeless> the lognamer one should go first
[06:31] <StevenK> lifeless: You should also fix your e-mail address for bzr, it's 'robertc@lpdev'
[06:36] <lifeless> ugh
[06:36] <lifeless> danke
[06:37] <lifeless> I'll add that to the VM set info
[06:38] <lifeless> fixed for future work
[06:39] <lifeless> and fixed on the wiki
[07:23] <adeuring> good morning
[07:26] <StevenK> lifeless: I finally have your lognamer branch, can you set a commit message in the MP?
[07:29] <lifeless> done
[08:01] <lifeless> StevenK: thanks
[08:01] <lifeless> StevenK: I'll be online later.
[11:02] <deryck> Morning, all.
[12:44] <jml> writing about code makes me want to write code instead :(
[12:45] <lifeless> :)
[12:45] <lifeless> jml: I've had that intensely this week
[12:46] <lifeless> jml: though I've also closed off a bunch of bzrloom things, so not as badly as I expect you're going through
[12:46] <jml> heh.
[12:46] <jml> my top priority out-of-work hacking task is releasing Twisted
[12:46] <lifeless> \o/
[12:46] <jml> which doesn't involve coding
[12:47] <lifeless> does it have the fixed issue with subunit and fake errors ?
[12:47] <lifeless> you could release testtools if you want
[12:47] <lifeless> oh right, coding
[12:48] <jml> 10.1 has the subunit fix, yes.
[12:49] <lifeless> what would you like to write code on
[12:52] <jml> lots of LP stuff; twisted release automation; a couple of testtools fixes I have in mind; some tweaks for my graphing thing
[13:00] <lifeless> cool
[13:09] <lifeless> ngight all
[13:19] <bigjools> jml: don't know if you saw my message yesterday, at least I don't remember seeing a reply.  Are you going to be able to look at those buildd-manager changes?
[13:19] <jml> not soon, no.
[13:40] <mwhudson> bigjools: is this twisted-y stuff?
[13:40] <bigjools> mwhudson: very much so
[13:41] <mwhudson> bigjools: i might be able to have a look, although my brain is made of cotton wool today
[13:42] <bigjools> mwhudson: it's best if I take you through it, the buildd-manager is a, err, special piece of code
[13:43] <bigjools> but it'll have to wait until next week if that's ok?
[13:43] <mwhudson> bigjools: next week should be fine
[13:43] <mwhudson> and yes, i've looked at buildd-manager before
[13:43]  * mwhudson rubs the mental scar tissue
[13:44] <bigjools> I still have bits of fingernail in my eyes
[13:45] <bigjools> it was only after I started re-writing bits of code that I realised a lot of the crap in there is explicitly for tests
[13:48] <mwhudson> bigjools: what are you working on?  just generally improving the sanity level?
[13:49] <bigjools> mwhudson: when it was developed its design was influenced too much by the old scanner than did one massive scan over the whole farm.  I changed the behaviour so that I've got separate Deferred threads for each builder in the farm, so that when the scan fails it doesn't blow out the scan of the whole farm.
[13:50] <bigjools> and it's a lot faster generally with that approach as it can do more stuff in parallel
[13:50] <mwhudson> bigjools: sounds good
[13:50] <bigjools> however, this has completely broken the existing tests of course :)  I need advice on how to write some sane tests.
[13:50] <mwhudson> although 'developed' is perhaps an insufficiently perjorative term? :)
[13:51] <bigjools> you are indeed the master of understatement
[13:52] <bigjools> mwhudson: if you want to take an advanced look, the branch is here:   https://code.edge.launchpad.net/~julian-edwards/launchpad/buildd-manager-parallel-scan
[13:52] <bigjools> now, I need fud
[15:27] <jtv> danilos: you may still be too busy for this, but I made a few tweaks to the decision matrix we worked out for setCurrentTranslation.
[15:29] <danilos> jtv, it's wrong, totally wroooong!
[15:29] <jtv> uh-oh
[15:29] <danilos> jtv, I'll take a look
[15:30] <jtv> and _then_ tell me it's all wroooong.  :-)
[15:47] <danilos> jtv, btw, I should look at the wiki page or code?
[15:47] <jtv> danilos: wiki page would be easier I think, though the code should match it pretty closely
[17:33] <leonardr> salgado-lunch or flacoste_afk, i have a launchpad/web service problem that you might be able to help with when you return
[18:17] <salgado> hi leonardr
[18:17] <james_w> hmm, got an ec2 run that is failing every test
[18:17] <james_w> "Warning: 'with' will become a reserved keyword in Python 2.6"
[18:17] <james_w> and then failing with syntax error when it tries to use "with"
[18:17] <leonardr> salgado: this problem has to do with navigation
[18:17] <james_w> running with 2.4 python?
[18:18] <jml> james_w, is the test failing locally?
[18:18] <leonardr> i am publishing ~{user}/oauth_access_tokens as a collection of IOauthAccessToken objects
[18:18] <james_w> jml: no
[18:18] <james_w> jml: *every* test is failing in ec2
[18:18] <leonardr> the problem is that IOAuthAccessToken objects are not currently published on the website. so they have no canonical_url and there is no way to navigate to them
[18:18] <jml> james_w, oh.
[18:18] <leonardr> i hacked in a canonical_url but i can't figure out how to make navigation work
[18:19] <leonardr> is this something you can help with?
[18:19] <jml> james_w, I saw a patch for something similar sounding fly by today
[18:19] <james_w> jml: ah yeah, thanks, I'll try merging that
[18:21] <leonardr> salgado: once i get the navigation working there is another problem with permissions and oauth access levels but we'll deal with that later
[18:22] <salgado> leonardr, IIUC, what you want is a traversal so that you can get to the OAuth token?
[18:22] <leonardr> salgado: right
[18:22] <leonardr> i was trying to make /~leonardr/oauth_access_tokens/{key} work, but that wasn't working
[18:23] <leonardr> i looked at other deeply-nested objects like bug messages, and i didn't see any way of recreating their complex navigation code for something that was 1. part of the main application rather than malone, and 2. published only in the web service
[18:23] <salgado> leonardr, so, something similar to what we do for email addresses?
[18:24] <salgado>     @stepthrough('+email')
[18:24] <salgado>     def traverse_email(self, email):
[18:24] <salgado>         """Traverse to this person's emails on the webservice layer."""
[18:24] <salgado>         email = getUtility(IEmailAddressSet).getByEmail(email)
[18:24] <salgado>         if email is None or email.personID != self.context.id:
[18:24] <salgado>             return None
[18:24] <salgado>         return email
[18:24] <leonardr> that is promising! where's that code?
[18:24] <salgado> lib/lp/registry/browser/person.py
[18:24] <jml> leonardr, salgado: not necessary, but it would be nice to have a short howto / checklist put up somewhere as a result of this conversation.
[18:24] <leonardr> jml: yeah, i know it's come up before
[18:25] <salgado> indeed
[18:26] <jml> glad you agree :)
[18:27] <salgado> leonardr, note you'll have to use a different path segment than the one you use for the collection (e.g. +oauth-access-tokens)
[18:27] <leonardr> right
[18:27] <leonardr> should it be singular or plural? i see singulars here
[18:27] <salgado> singular
[18:28] <james_w> https://dev.launchpad.net/Web/URLTraversal
[18:29] <jml> oh look there's a thing :)
[18:29] <jml> james_w, thanks.
[18:29] <james_w> np
[18:31] <salgado> leonardr, you might want to give that wiki page a try and update it in case you find anything else
[18:36] <leonardr> salgado: "Traverse to this person's emails on the webservice layer." is that "webservice layer" part enforced at all?
[18:36] <salgado> leonardr, I don't think so
[18:37] <leonardr> ok
[18:37] <salgado> it's not indeed -- one can traverse to an email address on the web app
[18:38] <sinzui> oh sweet
[18:39] <sinzui> I can do the same searching /people/ by email address, but that is kind of secret and definitely slower than API
[19:05] <james_w> jml: may I move FileIsADirectory from lp.codehosting.sftp to lp.services.sshserver?
[19:05] <james_w> jml: or a better place?
[19:24] <leonardr> salgado: now that we've resolved that, i'd like your advice on implementing a new OAuth access level and the permissions that go with it
[19:24] <leonardr> http://pastebin.ubuntu.com/457940/
[19:25] <leonardr> i can create the access level itself easily enough (#1) but i'm not sure how the very specific permission control we need for it can work given our existing permission system
[19:36] <salgado> leonardr, I think you'll need to special case IOAuth* objects in LaunchpadSecurityPolicy.checkPermission() because the security adapters don't have access to the oauth token used to authenticate, so they can't see if the access level is GRANT_PERMISSIONS or not
[19:36] <salgado> leonardr, but you should talk to gary/flacoste before going forward with that, because it's a bit of a hack
[19:37] <leonardr> salgado: agreed. this design is one i came up with with gary, but i don't know if he knows about that implication
[19:37] <salgado> leonardr, another (even more hacky, although less intrusive) option would be to use get_current_browser_request() in your security adapter to have access to the oauth token
[19:38] <leonardr> salgado: security adapter for IOAuthAccessToken? can you point me to a similar example?
[19:38] <salgado> leonardr, lib/canonical/launchpad/security.py
[19:39] <salgado> leonardr, these are called by LaunchpadSecurityPolicy.checkPermission(), but they're only given the logged in user and the object to check permission on
[19:40] <leonardr> i think that might be a better solution
[19:54] <salgado> leonardr, btw, do you have a few minutes to help me with lazr.restful?
[19:54] <leonardr> salgado, sure
[19:56] <salgado> leonardr, AIUI, the way lazr.restful exports things is by annotating the interfaces and their methods/attributes and later scanning them to generate the wadl to describe the service. is that correct?
[19:56] <leonardr> salgado: yes
[19:58] <salgado> leonardr, and how does the web app maps the requests back to say, method calls, later?
[19:59] <leonardr> salgado: the scanning process actually generates a set of adapter classes (adapting the various data model classes to IEntry)
[19:59] <leonardr> those adapter classes are used to generate the wadl and also to turn http requests into operations on the data model objects
[19:59] <salgado> oh, right, I'd forgotten about the adapters
[20:02] <salgado> leonardr, cool, I think I know enough to move forward now.  I'm doing a proof of concept for exporting things that are not directly provided by a given class but can be provided through an adapter (like what james_w described in that Adapters & API thread
[21:58] <thumper> morning
[22:02] <lifeless> hiya