[01:00] <bigjools> yo thumper
[01:11] <thumper> hi bigjools
[01:11] <bigjools> you wanted me earlier?
[01:12] <thumper> yeah, perhaps chat about maas
[01:12] <thumper> but I need to shower first
[01:14] <thumper> hmm... my magic change hasn't worked
[01:14] <thumper> I think I know why it failed...
[01:14] <thumper> but need more investigation
[01:22] <wallyworld_> thumper: i'd like a catch up too
[01:34] <thumper> wallyworld_: give me 5 minutes to grab these log files.
[01:35] <wallyworld_> ok
[01:46] <thumper> ok, ready
[01:46] <thumper> but confused
[01:46] <thumper> wallyworld_: shall I start a hangout?
[01:46] <wallyworld_> ok
[01:46] <thumper> https://plus.google.com/hangouts/_/98238f3ad80fb6e5ea1e7c6e53442bef8dd68df6?hl=en
[02:00] <bigjools> davecheney: "i can tell that you and I are going to get on like a house on fire in BNE" - is it ok if I laugh a lot?
[02:01] <davecheney> yes
[02:01] <davecheney> that would break the ice
[02:01] <bigjools> :)
[02:01] <davecheney> opp
[02:01] <davecheney> changing host
[02:01] <davecheney> two secs
[02:03] <davecheney> aaaand, back
[02:03] <davecheney> wifi, how does it even work /
[02:03] <davecheney> ?
[02:03] <bigjools> it uses the tears of developers
[02:04] <davecheney> apparently not enough tears in my house today
[02:04] <bigjools> also pixie dust
[02:04] <davecheney> and unicorn vomit
[02:04] <davecheney> -- that is what someone described the plague of frozen yoghut stores that are springing up in Sydney
[02:05]  * bigjools lives in the boonies so doesn't see that kind of nonsense
[02:05] <bigjools> everyone here complained when McDonalds got planning permission
[02:06] <davecheney> isn't that just what australian's do ?
[02:06] <bigjools> whinge?  oh yes
[02:07] <davecheney> we don't want airports, freeways, desalination plants, or mcdonalds' in our backyards
[02:08] <bigjools> hey wallyworld_, I found out that the big empty space next to Coles here is going to get a huge department store and a Woolies!
[02:08] <bigjools> the locals will go nuts :)
[02:09] <wallyworld_> great
[02:09] <bigjools> wallyworld_: and the phuqers put speed humps on that incline so I can't take you over it in the air any more
[02:10] <wallyworld_> :-(
[02:10]  * bigjools considers  going monster truck stylee
[02:11] <davecheney> oh you kids, with your monster trucks and airborne shenanigans
[02:13] <bigjools> davecheney: you made a series called 1.12 from a tag called 1.11.4?
[02:14] <davecheney> yessir i did
[02:14] <bigjools> how do you plan to work now, are you pushing revisions from trunk back to 1.12 or something else?
[02:14] <davecheney> select revisions
[02:14] <davecheney> possibly none
[02:15] <bigjools> you plan on branching a new series from trunk at some point?
[02:15] <davecheney> the reason for a stable tag is to give something to james page so that we can try to push that into backports for all series
[02:15] <bigjools> ok
[02:15] <davecheney> at the moment the devel versions are only going into aucys
[02:15] <davecheney> saucy
[02:15] <davecheney> ffs lag
[02:16] <davecheney> the next stable will be 1.14, and I understand that a better local provider is the headline feature for that release
[02:16] <bigjools> and azure
[02:16] <davecheney> bigjools: yeah, i didn't want to overstep in my email
[02:17] <bigjools> it's in our best interests to get Azure done ASAP
[02:17] <davecheney> as I wasn't sure of the plan, but azure in 1.14 sounds good to me
[02:17] <davecheney> right-o
[02:17] <bigjools> and I'll be doing a handover when you're all in BNE
[02:17] <davecheney> bigjools: so you know something about this sprint ?
[02:17] <bigjools> since Red are moving to maas pastures
[02:18] <bigjools> davecheney: I know that it's planned, and that's about it :)  Trying to get mramm to get it organised etc etc
[02:18] <davecheney> ok, things are going about as smoothly as usual then
[02:18] <davecheney> anyone know what date ?
[02:19] <bigjools> I heard same week as IoM sprint
[02:19] <bigjools> but I don't recall from whom that came
[02:20] <davecheney> bigjools: that's arse backwards
[02:20] <davecheney> thumper: must be there
[02:20] <davecheney> otherwise itt's a waste of time
[02:20] <thumper> I don't entirely agree with that
[02:20]  * bigjools shrugs
[02:21] <bigjools> as much as I'd like to spend time with thumper
[02:21]  * thumper deputises wallyworld_
[02:22] <davecheney> thumper: axw is your boss
[02:22] <davecheney> he should get to meet you in person sometime this year :)
[02:22] <bigjools> guffaw
[02:22] <axw> wat
[02:22] <thumper> davecheney: you get that the right way round?
[02:22] <axw> :)
[02:22] <thumper> davecheney: and I thought that it was mramm, not me
[02:22] <thumper> anyway...
[02:22] <davecheney> on noes, not the not double negative
[02:22] <davecheney> thumper: you need to study the org chart more closely
[02:23] <bigjools> trololol
[02:23] <thumper> bigjools: https://plus.google.com/hangouts/_/98238f3ad80fb6e5ea1e7c6e53442bef8dd68df6?hl=en plz join
[02:23]  * thumper pokes the directory
[02:23] <bigjools> thumper: eek, hang on
[02:23] <bigjools> 2 mins
[02:24] <thumper> davecheney: look at axw in the directory, manager mramm
[02:25] <davecheney> thumper: who do I report to ?
[02:25] <davecheney> if it says mramm
[02:25] <davecheney> it's wront
[02:25] <davecheney> it's wrong
[02:25] <thumper> davecheney: arosales
[02:25] <davecheney> ok, i guess it's correct
[02:25] <thumper> :)
[02:25] <thumper> this is what I expected anyway
[02:26]  * axw is not sure where he's meant to be placed
[02:27] <axw> davecheney: did you see my comment on the warning log change, regarding transient errors?
[02:28] <davecheney> axw: i sort of did
[02:28] <davecheney> i threw some code at you
[02:28] <davecheney> i tried to fix the problem from the other end
[02:28] <davecheney> i hoped that there would be a middle group
[02:28] <davecheney> ground
[02:28] <axw> *looks*
[02:30] <axw> same sort of thing
[02:31] <axw> the problem I realised later is that there may be ERROR logs that don't result in a command failure
[02:31] <axw> I was playing with the local provider yesterday, and got a bunch of ERROR logs about not being able to connect to port... then after a while it connects and succeeds
[02:33] <axw> I suppose those could be changed to be not-errors though, except for the final one if it gives up retrying.
[03:19] <davecheney> meeting agenda for tonight, https://docs.google.com/a/canonical.com/document/d/1eeHzbtyt_4dlKQMof-vRfplMWMrClBx32k6BFI-77MI/edit#
[03:21] <jtv> wallyworld_: now, about simplestreams...
[03:23] <wallyworld_> jtv: otp to bigjools, give me a sec
[03:40] <wallyworld_> jtv: you rang?
[03:43] <jtv> wallyworld_: otp to bigjools, give me aq sec
[03:43] <bigjools> heh
[03:43] <wallyworld_> lol
[04:01] <jtv> wallyworld_: off the phone now.  I don't know who this bigjools thinks he is, keeping us all from getting work done like that.
[04:01] <wallyworld_> indeed
[04:01] <bigjools> it's a rare skill I have
[04:03] <wallyworld_> jtv: so what bit of my limited knowledge did you want me to share?
[04:03] <jtv> wallyworld_: don't worry, he doesn't mean the skill is rare.  He means it's rare for him to have a skill.
[04:03] <wallyworld_> pwned
[04:03] <jtv> I'm trying to invite you to a hangout, but your name is just too common...
[04:04]  * bigjools bends over
[04:05]  * wallyworld_ unzips
[04:05] <bigjools>  /everyone screams
[04:05] <wallyworld_> bigjools screams loudest
[04:06]  * bigjools loves the family channel atmosphere
[04:06] <jtv> Good thing you two are alone on a separate continent.  Now all we need to do is seal the exits and let you fight it out.
[04:07] <wallyworld_> bigjools: you started it
[04:07] <bigjools> wallyworld_: and you're going to finish it... oh wait you already did
[04:07] <bigjools> ;)
[04:15] <thumper> wallyworld_: hmm... don't really want to use host network
[04:15] <thumper> wallyworld_: weird shit happens
[04:15] <wallyworld_> thumper: otp to jtv
[04:15] <thumper> wallyworld_: I had a container with that config, didn't really start properly, and worse than that, when I did lxc-shutdown, it shut down the host
[04:16] <thumper> as in, my laptop
[04:17] <bigjools> haha
[04:22] <thumper> bigjools: I lost those links you pasted before
[04:22] <thumper> bigjools: got them handy?
[04:23] <bigjools> thumper: http://bj0z.wordpress.com/2011/08/19/howto-build-a-base-lxc-container-in-ubuntu-11-04/
[04:23] <bigjools> thumper: http://unix.stackexchange.com/questions/50201/how-to-configure-external-ip-addresses-for-lxc-guests
[04:36] <jtv> thumper: I let wallyworld_ go, so you can have him now.
[04:36] <wallyworld_> thumper: funny that your laptop shut down
[04:36] <wallyworld_> well, funny for me :-D
[05:18] <wallyworld_> thumper: well that sucks
[05:19] <thumper> wallyworld_: I'm sending an email out
[05:19] <thumper> end of day lack of progress email
[05:19] <wallyworld_> thumper: ni, i have a new peroblem
[05:19] <thumper> which is? trouble spelling?
[05:19] <wallyworld_> it seems you can't bridge to a wireless interface
[05:19] <wallyworld_> typing
[05:20] <wallyworld_> and when i tried doing it to my eth nic which is disconnected, it killed my connectivity
[05:20] <thumper> heh
[05:20] <wallyworld_> and i don't have a wired connection that is easily accessible :-(
[05:21] <wallyworld_> i mean, it's 2013 after all
[05:23] <thumper> :)
[05:23]  * thumper signs off until the meeting
[07:34] <TheMue> dimitern: you've seen, I handled your review yesterday evening
[07:34] <TheMue> dimitern: morning btw
[07:38] <dimitern> TheMue: morning :)
[07:38] <dimitern> TheMue: yeah, except one suggestion about table based tests
[07:39] <rogpeppe> mornin' all
[07:39] <dimitern> rogpeppe: moin
[07:39] <dimitern> TheMue: https://codereview.appspot.com/11588043/diff/6001/environs/sync/sync_test.go#newcode85
[07:42] <TheMue> dimitern: yep, they haven't been table driven in the old original synctools code. this cl is intended to only move the logic with as less changes as possible.
[07:43] <TheMue> rogpeppe: morning, reviewed your ...4045 yesterday
[07:43] <axw> morning
[07:43] <rogpeppe> TheMue: yup, saw that, thanks a lot! branch is landing now.
[07:43] <rogpeppe> axw: hiya
[07:44] <dimitern> TheMue: so don't you think converting them to a table-based test will improve the code, and reduce it a lot?
[07:45] <dimitern> axw: hey
[07:46] <TheMue> dimitern: maybe in another cl, but i dislike mixing two intentions in one cl
[07:47] <TheMue> dimitern: but i'm also no real fan of table-driven tests. here you often need extra effort to follow failing tests, e.g. add the output of an index or description to see which of the tests is failing
[07:48] <dimitern> TheMue: well, instead of like 6 tests which are almost identical, you can have a 6-element table and a single case testing all cases
[07:48] <dimitern> TheMue: but anyway, please at least add a TODO about that
[07:50] <TheMue> dimitern: shouldn't it be a CANDO? ;)
[07:51] <dimitern> TheMue: well, you asked me for a review :P
[07:52] <dimitern> TheMue: i think it should be done, not necessarily by you
[07:52] <dimitern> TheMue: but having a TODO at the right place is helpful to remember
[07:54] <TheMue> dimitern: will change it to TDT so you've got your peace. but I still have the opinion that they are worse readable and followable in case of a fail. the only positive part is writing less code.
[07:55] <dimitern> TheMue: let's agree to disagree then :)
[07:55] <TheMue> dimitern: and btw, SetUpTest and TearDownTest have to be moved inside the loop this way. instead using the mechanisms of all mature test frameworks
[07:56] <dimitern> TheMue: when I have some time, I'll do it and show you how better it looks ;)
[07:57] <rogpeppe> TheMue: FWIW i agree strongly with dimitern in this case
[07:57] <rogpeppe> TheMue: with the non-table test I have to scan very carefully for subtle differences between the test cases
[07:57] <dimitern> rogpeppe: I knew you would
[07:57] <dimitern> rogpeppe: that block there is almost 1-1 ready for a table
[07:58] <rogpeppe> TheMue: whereas if it was a table i could look at one single piece of code, and then look at the changing data independently
[07:58] <davecheney> evening
[07:58] <dimitern> davecheney: morning :)
[07:59] <rogpeppe> TheMue: for the setup/teardown thing, you can call SetUpTest and TearDownTest within the test itself, which can work (i usually define Reset as {Teardown; Setup})
[07:59] <rogpeppe> davecheney: hey boss
[07:59] <TheMue> rogpeppe: but i have to identify the test data that caused the fail. often enough found tests where i had to count tests myself instead just reading the source
[07:59] <rogpeppe> TheMue: that's why we usually put an "about" field in the table
[07:59] <rogpeppe> TheMue: and log it
[08:00] <dimitern> +1
[08:00] <thumper> rogpeppe: that sounds terrible
[08:00] <thumper> rogpeppe: why not just have an independent test?
[08:00] <TheMue> thumper: +1
[08:00] <TheMue> :D
[08:00] <dimitern> gents, meeting time
[08:01] <rogpeppe> thumper: because in this case there are 110 almost-duplicated and non-trivial lines of test code
[08:01] <rogpeppe> thumper: which could probably be reduced to a single function with a static data table
[08:01] <rogpeppe> thumper: personally i think that's a win
[08:04] <rogpeppe> axw: ping
[08:04] <dimitern> axw: https://plus.google.com/hangouts/_/bf3f4cfe715017bf60521d59b0628e5873f2a1d3
[08:04] <thumper> axw: https://plus.google.com/hangouts/_/bf3f4cfe715017bf60521d59b0628e5873f2a1d3
[08:05] <axw> ?
[08:05] <axw> brt
[08:05] <rogpeppe> axw: team meeting
[08:05] <axw> ah
[08:05] <thumper> axw: yeah, but no one invited you :)
[08:07] <davecheney> https://docs.google.com/a/canonical.com/document/d/1eeHzbtyt_4dlKQMof-vRfplMWMrClBx32k6BFI-77MI/edit#
[08:13] <davecheney> mramm: hey there
[08:14] <davecheney> we're having a meetiong
[08:14] <davecheney> wanna come ?
[08:14] <mramm> hey
[08:14] <mramm> trying for the last bit
[08:57] <wallyworld> thumper: got 5?
[08:57] <thumper> wallyworld: for you, maybe even six
[08:57] <thumper> wallyworld: hangout or irc?
[08:57] <wallyworld> rejoin thehangout
[08:58] <rogpeppe> i'm looking for a review of this, please: https://codereview.appspot.com/11800044/
[08:58] <dimitern> rogpeppe: on it
[08:58] <rogpeppe> dimitern: thanks
[09:14] <dimitern> rogpeppe: reviewed
[09:15] <rogpeppe> dimitern: thanks
[09:31] <rogpeppe> looking for a second review of https://codereview.appspot.com/11800044/ if anyone cares to take a look
[09:42] <fwereade> rogpeppe, https://codereview.appspot.com/11800044/ reviewed, just one question
[09:44] <rogpeppe> fwereade: no particular reason other than it doesn't seem like it's necessary for state to define every possible interface that a client might use
[09:44] <rogpeppe> fwereade: but i'll move it the interface to state if you'd prefer
[09:45] <fwereade> rogpeppe, I agree that it's not quite right as it stands, but I'd be happiest if we at least kept those bits all together
[09:46] <fwereade> rogpeppe, LGTM with that then
[09:46] <rogpeppe> fwereade: thanks
[09:46] <jtv> Damn, I was about to approve that one.  :)
[09:46] <jtv> fwereade: you wanted a chat about instance-type selection in Azure?
[10:07] <axw> night folks
[10:11] <fwereade> jtv, yeah, sorry -- I was just wondering whether anything sprang to mind re possible unifications of the various don't-deploy-worthless-instances implementations
[10:11] <fwereade> jtv, IIRC there's something in openstack and ec2, as well as azure now
[10:12] <fwereade> jtv, (this is not a request for you to do more work, just a quick check to see if there's stuff in your brain that should maybe also be in mine)
[10:12] <jtv> What do you mean by worthless?
[10:12] <jtv> You mean, for setting a minimal baseline spec?
[10:12] <fwereade> jtv, unlikely to be useful
[10:12] <fwereade> jtv, yeah
[10:12] <jtv> Hmm...
[10:12] <jtv> That does look as if it ought to be the same story for every cloud, doesn't it?
[10:13] <fwereade> jtv, it does rather
[10:13] <jtv> It seems like a simple problem technically...  Just one function that everyone could call.
[10:13] <fwereade> jtv, and I have a feeling that at least one of them tries with the baseline and then falls back to whatever-it-can-get rather than just refusing
[10:14] <fwereade> jtv, yeah -- I don't intend to schedule anything now, just to remember it as something to bear in mind
[10:14] <fwereade> jtv, would you add a tech-debt bug please? and link it in the CL?
[10:21] <jtv> OK
[10:23] <TheMue> dimitern: the CL just landed again with table driven tests. ;) you can take a look?
[10:23] <dimitern> TheMue: which one was it?
[10:24] <TheMue> dimitern: https://codereview.appspot.com/11588043
[10:24] <m_3> davecheney: hey man, you around?
[10:27] <dimitern> TheMue: that's great, but my comment was not about cmd/juju/synctools_test.go, but about environs/sync/sync_test.go :)
[10:27] <jtv> fwereade: I filed bug 1204851 — now how do I link it to the CL?
[10:27] <_mup_> Bug #1204851: Different providers set different baseline instance constraints <tech-debt> <juju-core:New> <https://launchpad.net/bugs/1204851>
[10:27] <fwereade> jtv, sorry, I just mean to mention it in there somewhere
[10:27] <dimitern> jtv: from LP's MP directly
[10:27] <TheMue> dimitern: so next round ;)
[10:28] <TheMue> dimitern: but why didn't mentioned you that for synctools_test? :P
[10:28] <dimitern> TheMue: because they were less and not so obviously similar
[10:28] <fwereade> dimitern, I don't think that's quite right, this CL doesn't actually address it -- it's just the thing that caused us to think "yeah, this should exist"
[10:29] <dimitern> fwereade: sorry?
[10:30] <TheMue> dimitern: they are even more similar than in sync_test
[10:30] <fwereade> dimitern, I don't think it's very useful to have the bug linked to the CL, because the CL doesn't address the bug; but IME it *is* useful to be able to look back at a CL and see that it spawned a bug
[10:30] <dimitern> TheMue: so good that you did them as well, no?
[10:30] <dimitern> fwereade: ah, I don't really know, I was just answering jtv's question, I think
[10:31] <TheMue> dimitern: please rephrase
[10:31] <fwereade> dimitern, yeah, you were just missing a spot of context
[10:31] <dimitern> fwereade: most likely
[10:31] <dimitern> TheMue: i meant "it was good that you've seen the similarity there and found a way to refactor them into a table-based test"
[10:32] <TheMue> dimitern: ah, ack
[10:33] <jtv> Argh.  Can we get another gwacl update on the build machine?
[10:43] <dimitern> jtv: on it
[10:43] <jtv> Thanks.  I'll send the email.
[10:44] <dimitern> jtv: thanks
[10:44] <dimitern> jtv: oops :)
[10:44] <dimitern> jtv: i meant "done"
[10:44] <jtv> Then thank you too.  :))
[10:44] <dimitern> jtv: np
[11:30] <dimitern> mgz, rogpeppe, TheMue, fwereade: standup
[11:31] <mgz> ta
[11:34] <dimitern> rogpeppe: standup
[11:41] <mgz> hm, Addresses in state/open.go currently uses st.db.Session.LiveServers()... what's that do exactly? I'd want machine ids to get detailed address info
[12:08] <benji> gary_poster: not that I'm aware of
[12:09] <benji> pffe
[12:14] <dimitern> fwereade: I cannot use StateInfo in apiserver
[12:39] <dimitern> rogpeppe: any idea for a workaround getting the addresses?
[12:39] <rogpeppe> dimitern: why can't you use StateInfo in apiserver?
[12:40] <dimitern> rogpeppe: it needs a bootstrapped environment
[12:40] <rogpeppe> dimitern: isn't the environment bootstrapped by the time the api server starts?
[12:40] <dimitern> rogpeppe: provider-config file in the bucket
[12:40] <dimitern> rogpeppe: and moreover, it's a client api
[12:41] <dimitern> rogpeppe: it's not supposed to be run on the server
[12:41] <dimitern> rogpeppe: how to test it?
[12:41] <rogpeppe> dimitern: it'll still work though, as a temporary hack, won't it?
[12:42] <rogpeppe> dimitern: how are any of the api server calls which use an Environ tested?
[12:42] <dimitern> rogpeppe: http://paste.ubuntu.com/5911031/
[12:42] <dimitern> rogpeppe: none of apiserver calls use the environ, except for the upgrader
[12:42] <rogpeppe> dimitern: i thought deploy did
[12:43] <dimitern> rogpeppe: no
[12:44] <rogpeppe> dimitern: Client.ServiceDeploy definitely does
[12:44] <dimitern> rogpeppe: let me see
[12:46] <rogpeppe> dimitern: hmm, i *think* it should work
[12:46] <dimitern> rogpeppe: no, it doesn't
[12:46] <dimitern> rogpeppe: not StateInfo or anything provider specific at least
[12:46] <dimitern> rogpeppe: and that's what I need
[12:47] <rogpeppe> dimitern: i don't see why
[12:47] <rogpeppe> dimitern: can't you call NewConnFromState?
[12:47] <dimitern> rogpeppe: why do I need that?
[12:48] <rogpeppe> dimitern: because a Conn contains an Environ
[12:48] <dimitern> rogpeppe: NewConnFromState essentially calls environs.New(cfg)
[12:48] <rogpeppe> dimitern: yes
[12:48] <dimitern> rogpeppe: I'm doing this:
[12:49] <rogpeppe> dimitern: the api server doesn't have environ credentials when it first bootstraps, so the StateAddresses call will fail until the credentials are pushed, but i don't *think* that's a problem because we won't be using StateAddresses until the first connection has been made. this is my only concern.
[12:49] <dimitern> rogpeppe: http://paste.ubuntu.com/5911043/
[12:49] <dimitern> rogpeppe: and StateInfo fails with "provider-config" not found
[12:49] <dimitern> rogpeppe: which happens at bootstrap time
[12:49] <rogpeppe> dimitern: oh god, StateInfo is non-provider-specific now
[12:50] <rogpeppe> dimitern: that's broken
[12:50] <dimitern> rogpeppe: why?
[12:50] <rogpeppe> dimitern: because the local provider doesn't store anything in the private bucket
[12:50] <dimitern> rogpeppe: I don't see how this matters
[12:51] <rogpeppe> dimitern: you're using StateInfo wrong
[12:51] <rogpeppe> dimitern: you need to call env.StateInfo()
[12:51] <dimitern> rogpeppe: I'll try
[12:51] <rogpeppe> dimitern: environs.StateInfo is just a way for providers to implement Environ.StateInfo
[12:54] <dimitern> rogpeppe: now only APIAddresses test fails
[12:54] <dimitern> rogpeppe: and each time the port is different, as reported by StateInfo
[12:55] <rogpeppe> dimitern: that's expected, i think
[12:55] <dimitern> rogpeppe: actually I think State.APIAddresses is too lazy
[12:55] <dimitern> rogpeppe: it just replaces the port
[12:55] <rogpeppe> dimitern: oh yes, that's true
[12:55] <dimitern> rogpeppe: and returns the same host as the state address
[12:55] <dimitern> rogpeppe: I can hack it a bit to get the actual port
[12:55] <rogpeppe> dimitern: where the dummy provider starts the API server on a random port
[12:58] <rogpeppe> dimitern: i think we should actually store the API addresses in the state
[12:59] <dimitern> rogpeppe: yeah, perhaps, but until then I need a workaround
[12:59] <rogpeppe> dimitern: i'm not sure there is one
[12:59] <rogpeppe> dimitern: how can the state know what port number has been allocated by the dummy provider?
[13:00] <rogpeppe> dimitern: isn't it quite trivial to add a State.SetAPIAddresses method?
[13:01] <dimitern> rogpeppe: I did it
[13:01] <rogpeppe> dimitern: cool!
[13:01] <dimitern> rogpeppe: using JujuConn.APIInfo() in the test
[13:01] <dimitern> rogpeppe: instead of s.State.APIAddresses
[13:01] <rogpeppe> dimitern: i thought the test was testing APIAddresses...
[13:01] <dimitern> rogpeppe: it was, but not anymore
[13:02] <dimitern> rogpeppe: it's testing what's in the api info, the same as reported back
[13:02] <dimitern> rogpeppe: will live test it now and see
[13:02] <rogpeppe> dimitern: i'll reserve judgement until i see the CL :-)
[13:21] <TheMue> dimitern: so, more table driven testing
[13:23] <dimitern> rogpeppe: live tests work!
[13:23] <dimitern> TheMue: will take a look soon
[13:24] <TheMue> dimitern: thx
[13:25] <rogpeppe> dimitern: cool. am at lunch BTW
[13:33] <dimitern> TheMue: reviewed
[13:37] <dimitern> rogpeppe, fwereade: https://codereview.appspot.com/11800045/
[13:41] <TheMue> dimitern: thx
[14:20] <dimitern> fwereade: ping
[14:21] <fwereade> dimitern, pong
[14:21] <dimitern> fwereade: can you take a look please? ^^
[14:22] <fwereade> dimitern, ah, sorry
[14:22] <dimitern> rogpeppe: you as well, after lunch?
[14:23] <rogpeppe> dimitern: looking
[14:23] <dimitern> thanks guys
[14:30] <dimitern> ok, mu mouse officially acts weird lately - a single click is frequently a double click and it drops while dragging and still holding the left button... hmm need a screw driver
[14:32] <mgz> I find drag and drop harder with a screwdriver than a mouse
[14:32] <dimitern> lol
[14:41]  * TheMue dcc's dimitern his BT mouse, isn't needed anymore
[14:47]  * dimitern bbi1h
[14:51] <dimitern> (or so.. dentist)
[14:54] <fwereade> dimitern, you'll have a review waiting when yuo return
[14:57] <fwereade> does anyone recall the justification for CanDeploy?
[15:07] <rogpeppe> dimitern: you have a review
[15:08] <rogpeppe> fwereade: i remember the justification for CanDeploy
[15:09] <fwereade> rogpeppe, oh yes?
[15:09] <rogpeppe> fwereade: it's because if we implemented AssignedMachineId(unitTag) in API (which is what the deployer previously used) it's a bit of a security leak
[15:09] <fwereade> rogpeppe, but CanDeploy itself doesn't need to exist AFAICS
[15:09] <rogpeppe> fwereade: because it means any machine agent can ask for the assigned id of any unit
[15:10] <rogpeppe> fwereade: well yes, i was puzzling over why we checked AssignedMachineId in the first place
[15:10] <fwereade> rogpeppe, what does CanDeploy do that isn't already done with UnauthorizedErrors?
[15:11]  * rogpeppe checks
[15:11] <fwereade> rogpeppe, it's just a big copy of the deployer's authfunc as far as I can see
[15:11] <fwereade> rogpeppe, it's just really well obfuscated ;p
[15:11] <rogpeppe> fwereade: the deployer's authfunc?
[15:12] <fwereade> rogpeppe, deployer.go:53
[15:13]  * rogpeppe looks in api*server*/deployer/deployer.go:53 :-)
[15:13] <fwereade> rogpeppe, ha, sorry
[15:13] <rogpeppe> fwereade: no, it's different to that
[15:13] <fwereade> rogpeppe, ah, ok, which units will be handled differently?
[15:14] <rogpeppe> fwereade: i *think* the case it's dealing with is when we get told about a unit by the watcher but that unit is no longer assigned to this machine
[15:15] <fwereade> rogpeppe, we'll get an unauthorized out of Life in that case
[15:15] <rogpeppe> fwereade: oh sorry, i didn't read far enough
[15:17] <rogpeppe> fwereade: wow, that getAuthFunc does quite a lot of work
[15:18] <fwereade> rogpeppe, the theory is that watchers are cheap
[15:19] <fwereade> rogpeppe, if not, getAllUnits can be tuned on its own
[15:22] <rogpeppe> fwereade: i suspect that making a set from the results of getAllUnits is vast premature optimisation, but i take your point
[15:22] <rogpeppe> fwereade: yes, i don't see any point in CanDeploy
[15:23] <fwereade> rogpeppe, I think it's more about clarity of expression than runtime optimization
[15:23] <fwereade> rogpeppe, cool, thanks
[15:26] <rogpeppe> fwereade: personally i think it's just as clear (+ shorter + more correct) this way, but YMMV. http://paste.ubuntu.com/5911521/
[15:29] <fwereade> rogpeppe, I think it's maybe implemented a little awkwardly -- would be nicer to build the set from units directly -- but I can't generally ever get very enthusiastic about replacing N map lookups with N linear searches
[15:29] <fwereade> rogpeppe, not to say it's never justified
[15:30] <rogpeppe> fwereade: the thing is currently N=1
[15:30] <rogpeppe> fwereade: so we lose out by building the set
[15:31] <fwereade> rogpeppe, I'd rather pay the fixed costs now and have something that stays sane as N grows
[15:31] <fwereade> rogpeppe, if the fixed costs become a problem we can revisit it ;p
[15:32] <rogpeppe> fwereade: seems like premature optimisation to me but there y'go
[15:32] <rogpeppe> fwereade: it's never gonna be a bottleneck
[17:03]  * rogpeppe is off for a bit of bouldering
[17:03] <rogpeppe> see y'all tomorrow
[17:13]  * fwereade is off too
[21:15] <sidnei> oh, wow. got a panic!
[21:16] <thumper> panic!
[21:16] <thumper> panic!
[21:16] <thumper> that type?
[21:17] <sidnei> panic: runtime error: comparing uncomparable type map[string]interface {}
[21:17] <sidnei> thumper: https://pastebin.canonical.com/95058/
[21:18] <thumper> sidnei: what were you doing?
[21:18] <sidnei> thumper: juju set u1-public-gallery general.environment_name=staging -e local
[21:19] <thumper> hmm... local provider
[21:19] <thumper> ?
[21:19] <thumper> can I get you to file a bug with as much info as possible?
[21:19] <sidnei> thumper: was about to :)
[21:23] <sidnei> thumper: https://bugs.launchpad.net/juju-core/+bug/1205112
[21:23] <_mup_> Bug #1205112: panic while setting a config value <juju-core:New> <https://launchpad.net/bugs/1205112>
[21:23] <thumper> ta
[21:24] <sidnei> thumper: somewhat related, seems like positional arguments are not supported for juju get?
[21:24] <thumper> sidnei: what do you mean?
[21:25] <sidnei> $ juju get u1-public-gallery general.environment_name -e local
[21:25] <sidnei> error: unrecognized args: ["general.environment_name"]
[21:25] <sidnei> to get a single setting
[21:27] <thumper> hmm...
[21:27] <thumper> seems like a reasonable request
[21:27] <thumper> file a bug :-)
[21:32] <sidnei> so, deploying the services needed to run a tiny part of u1 takes 18G of disk space
[21:33] <sidnei> fun
[21:34] <thumper> haha
[21:34] <thumper> wow
[21:35] <thumper> why so much?
[21:35] <sidnei> 16 containers
[21:35] <sidnei> i guess none of this uses overlays
[21:36] <sidnei> right? each container is a full base install?
[21:37] <thumper> yeah
[21:38] <thumper> I think there may be plans to use overlays later
[21:38] <thumper> once we get the basics working
[21:39] <sidnei> or ephemeral containers yeah
[21:44] <sidnei> thumper: did you talk to any of the tsuru guys?
[21:44] <thumper> no I haven't
[21:45] <sidnei> they are using docker to snapshot things so that add-unit is instantaneous
[21:45] <sidnei> not hooked up to juju, but working around it
[21:46] <sidnei> iiuc they start a unit directly with docker stab a charm into it then snapshot it
[21:47] <thumper> so they are using charms, but not juju?
[21:48] <sidnei> thumper: they are using juju to provision machines in ec2/openstack but only the provisioning part, then they inject charms into those machines, iiuc
[21:49] <sidnei> still on pyjuju because they have a branch with vpc that they depend on
[21:49] <sidnei> im looking at getting it moved to gojuju using the api directly instead of shelling out, since it's all in go
[21:49] <sidnei> but the lack of vpc is a blocker
[21:50]  * thumper nods
[21:51] <sidnei> haven't looked into how much tied to docker they are, maybe local provider is good enough
[21:53]  * sidnei wonders if flaviami_ is around
[23:09] <wallyworld> thumper: z'up
[23:18] <thumper> hi wallyworld
[23:18] <thumper> trying stuff
[23:18] <wallyworld> any luck?
[23:20] <thumper> can't seem to log into it
[23:21] <wallyworld> :-(
[23:22] <wallyworld> i pissed my mp still hasn't been given the 2nd +1
[23:22] <thumper> which one
[23:22] <wallyworld> if you're going to hold it up, you need to be responsive to changes
[23:22] <wallyworld> the simple streams validation
[23:23] <thumper> no response from the other reviewer?
[23:23] <wallyworld> nope. i mentioned it on the standup too
[23:23] <thumper> ok, see if you can get a +1 from davecheney or jtv1 or bigjools
[23:23] <wallyworld> and made sure my latest changes were ready for looking at
[23:23] <thumper> failing that, I'd say land it and do a post landing review if needed
[23:23]  * wallyworld checks to see if there's enough beer
[23:24] <wallyworld> the remaining stuff is more bikeshed than critical
[23:25] <wallyworld> thumper: the latest lxc email - the suggested network config looks like the setup i used for bridging
[23:25] <wallyworld> with no luck
[23:28] <thumper> what was the problem with yours?
[23:31] <wallyworld> thumper: i just hung like yours did
[23:31] <wallyworld> lxc-attach worked
[23:32] <wallyworld> but i had no eth cable plugged in
[23:32] <wallyworld> not sure if it didn't like that
[23:33] <wallyworld> i've got access to the qa lab now though
[23:34] <wallyworld> but i need to check with mgz where i can ssh to
[23:34] <thumper> I have an ec2 instance up that I'm playing with manually
[23:34] <thumper> resetting the networking etc
[23:36] <wallyworld> you would need to reboot it after changing /etc/network/interfaces, no?
[23:36] <wallyworld> or just restart networking i guess
[23:36] <thumper> I just restarted networking
[23:36] <thumper> and the ssh connection stayed valid
[23:36] <thumper> so that is good I guess
[23:44] <thumper> wallyworld: I need to be away for a bit
[23:44] <thumper> mind needs to mull this over
[23:44] <thumper> also taking kids to a thing in tow
[23:44] <thumper> n
[23:44] <thumper> back later
[23:44] <wallyworld> ok
[23:45] <wallyworld> let's catch up when you get back