davecheneystarting the release process now00:26
davecheneycan anyone tell me what the new release number shold be ?00:26
thumperhi davecheney00:27
thumperI thought we were going to release as 1.11.? and get it hammered by people00:27
thumperand if that was good, release the same thing as 1.1200:28
thumperso until we make the decision to go with 1.1200:28
thumperI'd increment whatever the third number is00:28
davecheneythumper: yes, that is what I understood00:28
davecheneywe'll release 1.11.1, bump to 1.11.200:28
davecheneythumper: will 1.11.1 become 1.12.0 ?00:31
davecheneyie, should I start a 1.12. branch ?00:31
thumperas long as we tag the 1.11.1 release revision, we don't need to start a 1.12 branch until we are ready to release it00:32
thumperand yes, if the release is good, 1.11.1 will be rebuilt as 1.12.000:32
thumperso branch off the 1.11.1 release tag, change the version number, rebuild00:32
thumperpush to lp:juju-core/1.1200:32
thumperprobably not00:32
thumperbut tag as 1.1200:32
thumpermerge into trunk00:33
thumperand bump to 1.13.000:33
thumperwe are then working on 1.13 in trunk00:33
thumperthat is how I'd do int00:33
thumperwe then have the 1.12 release tag in trunk, and working on 1.1300:34
thumperdavecheney: sound sane?00:34
* davecheney observes that tagging 1.11.1 is sort of pointless as we don't control the deps00:35
davecheneybut decides not to swallow that footgun00:35
davecheneythumper: here is what I am thinking00:39
davecheneytag release00:39
davecheneythen a script checks out the tag and all the other deps at thatpoint in time00:39
davecheneyand produces a tagball00:39
davecheneythat is what we push to lp00:39
thumperdavecheney: so effectively tarring up all the deps?00:40
thumperso go install with that tar ball is repeatable?00:41
thumperas long as we ignore the core libraries?00:41
davecheneythumper: effectively making a fake gopath, bzr branch the tag, go get -v ... << will fetch all the deps at that point in time, then tar that up00:41
thumperme nods00:42
* davecheney wonders if lbox can do tags ...01:01
davecheneyaaaah, my local apt mirror is offline01:08
davecheneyand the answer to the previous question01:17
davecheneylucky(~/src/launchpad.net/juju-core) % lbox propose01:17
davecheneyerror: Failed to run "bzr push": exit status 301:17
davecheneybzr: ERROR: These branches have diverged.  See "bzr help diverged-branches" for more information.01:17
davecheneythumper: https://code.launchpad.net/~dave-cheney/juju-core/122-tag-release-1.11.1/+merge/17194501:25
* thumper is back01:30
thumpersorry, was walking the dog01:30
davecheneylooks like lbox totally choken on a tag01:31
thumperdavecheney: how did you create the branch?01:31
davecheneymy first attempt ?01:31
davecheneyit was my trunk branch01:31
davecheneyit may not have been clean01:31
davecheneytry this fresh mp01:31
thumperis says the diff is empty01:34
thumperis it just a tag?01:34
davecheneythumper: https://codereview.appspot.com/10725044 << bump dev version to 1.11.201:40
davecheneythumper: question: if i'm writing a release script to build the full $GOPATH for a release01:41
davecheneywhy don't I just write it in a way to checkout all the deps at a specific revision01:41
thumperdavecheney: that would be great if you did that01:42
davecheneyjust becuase the go tool doesn't support that, doesn't mean we can't manage this ourselves01:42
* thumper nods01:42
davecheneythumper: understood01:42
thumperwe talked about having a requirements.txt in root of trunk01:42
thumperwhich listed revnos/hashes etc for dependencies01:42
davecheneyyeah, that never went anywaywhere01:42
davecheneythumper: will the bot process approcals/merges in order ?01:43
davecheneyor should I wait til the tag branch lands ?01:43
thumperI'm not actually sure on how it handles ordering01:43
thumperto be safer I'd wait01:43
* davecheney crickets01:58
davecheneyis the bot broken ? or just slow ?01:58
davecheneywallyworld_: thumper can someone check the bot02:09
davecheneyit's been an hour02:09
thumperdavecheney: did you set a commit message?02:10
thumperthat is the normal blocker02:10
* davecheney goes to set a commit message02:10
* thumper fixes some dumbness02:16
davecheneystill waiting ...02:21
thumperarse biscuits02:25
thumperdavecheney: I wonder if tarmac thinks that there is nothing to do.02:26
thumperdavecheney: you may want to do a pointless commit02:26
thumperdavecheney: 'bzr commit -m "Tag 1.11.1 release" --unchanged02:29
thumperdavecheney: then bzr push02:29
davecheneythird times a charm02:29
thumperthen go and reapprove to get the last revision02:29
thumperdavecheney: may want to move the tag to that revision too02:29
thumperto avoid confusion :-)02:29
thumperanyone else seen this? PANIC: server_test.go:550: StoreSuite.TestBlitzKey02:30
davecheneyi've seen a lot of panics02:31
davecheneythat one rings a bell02:31
thumperdavecheney: good call using the gofmt02:34
davecheneysemantic noop02:34
bigjoolsapparently Windows 8.1 has something called "charms" ...02:45
davecheneyohh err02:46
davecheneylets call ours Lucky Charms02:46
davecheneyoh, wait ...02:46
davecheneythumper: https://code.launchpad.net/~dave-cheney/juju-core/123-set-development-version-to-1.11.2/+merge/17194602:53
davecheney^ can I get an approver ?02:53
thumperbigjools: what do windows charms do?02:53
thumperdavecheney: what do you need?02:54
davecheneydunno, bot is still be a turd02:54
thumperdavecheney: you only approved it 6 minutes ago02:55
thumpersometimes the bot takes 10-1502:55
bigjoolsthumper: it's like PQM all over again02:55
thumperbigjools: slow tests is all02:55
thumperbut yes.02:55
davecheneyPQM ?02:55
bigjoolslanding bot for Launchpad02:56
bigjoolsLP's tests were 40 minutes when I started on LP, by the time I left they were ~5hours IIRC02:57
davecheneybigjools: atlassians' tests took longer than a work day to run03:00
davecheneycommitting fixes was an expontential time to completion03:00
bigjoolsthe ultimate "compiling?"03:00
wallyworld_davecheney: sorry, was eating, missed the ping. is everything resolved?03:01
davecheneywallyworld_: should be03:02
davecheneythanks mate03:02
davecheneyspeaking of eating03:02
davecheneyit is 13:00 local, time for carbohydrates03:02
bigjoolsliquid carbs?03:02
davecheneybigjools: oh my, is it friday already03:03
bigjoolsdavecheney: seems so.  I thought Friday was yesterday and was rather disappointed when I found out it wasn't03:03
* bigjools launches unity-webapps-plugin into the neighbour's yard03:04
wallyworld_thumper: maybe you could +1 this with the proviso i address the remaining couple of issues (which i am working on) and then william can +1 it tonight and i can land https://codereview.appspot.com/10447045/03:10
thumperwallyworld_: ok, I'll look in a few minutes03:10
wallyworld_no hurry. thanks03:10
davecheneywallyworld_: did you land the goose fix you mentioned on the call yesterday ?03:49
wallyworld_davecheney: sure did. i added the bug to the release notes at the same time03:49
davecheneywallyworld_: new command, create-machine ?04:01
davecheneywallyworld_: create machine doesn't appear to be part of the juju cli04:04
davecheneyjust wondering if I shuld call it out in the release notes04:04
davecheneythumper: would you be a dear and delete this https://code.launchpad.net/~thumper/+recipe/juju-core-daily04:14
davecheney^ it's no longer needed04:14
thumperdavecheney: done04:24
* thumper reviews wallyworld_'s branch again04:52
davecheneythe PPA recipe has been using hte old cgo based goayml04:56
wallyworld_davecheney: add-machine05:03
wallyworld_it was create machine but someone (forget who) asked it to be changed05:04
davecheneywallyworld_: no probs05:06
davecheneyadd-machine can be used to prepopulate an environment with blank machines ?05:07
wallyworld_yes, or containers05:07
wallyworld_add-machine /lxc05:07
wallyworld_creates a new instances with a lxc container on it05:07
wallyworld_add-machine 1:/lxc05:07
davecheneythumper: that tag didn05:07
wallyworld_adds a lxc container to machine 105:07
davecheneydidn't tag05:07
thumperI don't know why05:08
davecheneybzr tags is empty05:08
thumperdavecheney: I would ask jam, but he is working Sun->Thu now05:08
davecheneyor not empty05:08
thumperdavecheney: you could always poke on #bzr for some help05:09
davecheneyoh well, we'll tag it again another time05:09
davecheneythumper: what is the bzr word for tip ?05:09
davecheneybzr branch -r tip doens't do what I think05:09
thumperum.. by default it does tip05:10
thumperbzr branch foo bar # takes tip of foo05:10
thumper-r -1 refers to the last one05:10
davecheneythanks that'll do05:10
davecheney^ spot the problem with this build receipe05:12
davecheneyhit, tarmac05:12
thumperhah, not the right branch05:15
* thumper EOWs05:15
thumpersee ya people05:16
thumperwallyworld_: you have your review05:16
wallyworld_thumper: \o/05:16
thumperand I've put a few skeleton ones up for local provider05:16
wallyworld_have a good weekend05:16
davecheneygahhh, lp access is so slow05:39
davecheneyi'm having to run my scripts in the states05:39
wallyworld_sadly it has always been a bit slow from aus05:59
davecheneycheckout speeds are all over the shop today06:00
davecheneygoing to go home and try a different internet connection06:33
davecheneyLP is so slow i cannot download the debs from PPA06:33
=== tasdomas_afk is now known as tasdomas
TheMuefwereade_: ping08:21
mattywmorning folks, when I try to lbox submit this https://codereview.appspot.com/10683043/ I get a readonly transport error from bazaar, anyone seen something like this?08:28
fwereade_TheMue, pong08:38
fwereade_mattyw, we're using tarmac now08:38
fwereade_mattyw, set the commit message and approve it in LP08:38
mattywfwereade_, got it, thanks!08:38
mattywfwereade_, all I can do is set it needs review or merged in lp08:48
TheMuefwereade_: one moment, phone ;)08:53
fwereade_mattyw, ah, sorry, I'll approve it then08:53
mattywfwereade_, thanks :)08:54
fwereade_mattyw, done, it should land soonish08:54
mattywfwereade_, thanks very much08:54
TheMuefwereade_: aargh, half an hour administrative call *sigh*08:58
TheMuefwereade_: just pinged you because of a method in charm/config.go08:58
fwereade_TheMue, no worries :) which method?08:59
TheMuefwereade_: there is a FilterSettings(), which is only used in state/service.go changeCharmOps()08:59
fwereade_TheMue, yep08:59
fwereade_TheMue, what's the issue with it?09:00
TheMuefwereade_: I changed in config.go the ReadConfig() that it now allows a default with empty string09:00
TheMuefwereade_: tests are also fine (you can see it in the CL)09:01
TheMuefwereade_: but in the test of the FilterSettings() an input of an empty string filters that setting to nil09:01
fwereade_TheMue, as it should, you're just fixing the default bug today09:02
TheMuefwereade_: and I'm not sure if that's correct (dimiter pointed me to that behavior)09:02
fwereade_TheMue, if defaults are making it into FilterSettings I think we're Doing It Wrong somewhere09:02
TheMuefwereade_: ah, fine, than I interpreted it correctly09:02
fwereade_TheMue, cool09:02
TheMuefwereade_: so then the CL waits for your review *smile*09:03
fwereade_TheMue, when we figure out the nice way to promote "" to equality everywhere that stuff will have to change sometime09:03
fwereade_TheMue, cool; link please?09:03
TheMuefwereade_: https://codereview.appspot.com/10682043/09:03
* TheMue just downloads the whole stuff to OS X to build a client there09:10
=== ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: - | Bugs: 7 Critical, 84 High - https://bugs.launchpad.net/juju-core/
TheMueNow let's start the dependency hell ...09:30
fwereade_TheMue, LGTM, just drop the redundant/confusing test (and rearrange the logic if you think it looks like a good idea)09:32
TheMuefwereade_: thx. the one tests uses a pre-created .juju dir, the other not, that's the difference09:34
fwereade_TheMue, huh, sorry?09:34
fwereade_TheMue, why do we hit .juju in ReadConfig?09:34
fwereade_TheMue, or do I have the wrong context?09:35
TheMuefwereade_: aargh, no, I've mixed up two CLs09:36
TheMuefwereade_: ;)09:36
TheMuefwereade_: I should read your review before I say anything09:37
TheMuefwereade_: so, read it, thx for your review09:39
fwereade_TheMue, cool (btw which was the other one? should I take a look at that? rings a bell but it's a bit mixed up with all the other CLs in my mind)09:40
TheMuefwereade_: this one https://codereview.appspot.com/10507043/09:42
TheMueHuh, all deps seem to build fine on OS X.09:48
fwereade_TheMue, nice09:49
fwereade_TheMue, about that CL you just linked09:49
fwereade_TheMue, ISTM that the two tests you wrote could just as easily be one09:49
fwereade_TheMue, (that checks both dir and file permissions)09:49
fwereade_TheMue, but that you should have a test with a pre-existing file, and a surprising dir permission, and check that the dir permission stays (but is logged) but the file is rewritten with 060009:50
TheMuefwereade_: the one, where WriteEnvirons() creates the directory it will have 0700. otherwise it has what has been set before by the user09:51
fwereade_TheMue, quite so09:51
fwereade_TheMue, but that's not tested that I can see09:51
TheMuefwereade_: a pre-existing file will be overwritten09:52
fwereade_TheMue, yes, I think you're telling me what I told you..?09:52
fwereade_TheMue, the behaviour is fine but the tests don't exercise that path09:53
TheMuefwereade_: eh, no, i'm only wondering, because we never tested that a file is overwritten09:53
TheMuefwereade_: the tests only check the right, as this is the only changed feature09:53
fwereade_TheMue, I think that now we're messing with permissions we need to write tests that actually cover all the relevant cases09:54
TheMuefwereade_: what's indeed untested is the logging. have to see how this can be tested.09:54
fwereade_TheMue, pre-existing lack of coverage is an opportunity to improve, not a straitjacket ;)09:54
fwereade_TheMue, I'm pretty sure LoggingSuite will do the trick09:55
fwereade_TheMue, c.GetTestLog()09:55
TheMuefwereade_: ok, will change (even after your first lgtm *smile*)09:55
TheMueWill build now ...10:01
TheMueDa fuck *sorry*10:04
TheMuethe build is incredible fast (I spend it all 8 cores)10:05
rogpeppefwereade_, dimitern: ping10:14
fwereade_rogpeppe, heyhey, sorry I missed you last night10:14
dimiternrogpeppe: heyhey10:14
TheMuerogpeppe: hey, the norway guy10:14
TheMuerogpeppe: you shall relax and recreate10:14
dimiternrogpeppe: is it cold out there?10:14
rogpeppedimitern: not bad - about 18 degrees and reasonably sunny10:15
dimiternrogpeppe: nice!10:15
rogpeppeTheMue: i intend to - we head south to the coast and a hut tomorrow for a week10:15
TheMuebetter than the wet 13°  here10:15
rogpeppeTheMue: well "hut" - it's probably quite ok for modern conveniences...10:15
TheMuerogpeppe: as long as it has no network ;)10:16
rogpeppedimitern, fwereade_: did https://codereview.appspot.com/10684044 make some sort of sense?10:16
rogpeppeTheMue: indeed!10:16
dimiternrogpeppe: haven't looked yet; i'm deep in the amazon still, live testing :)10:17
dimiternrogpeppe: will take a look a bit later10:17
rogpeppedimitern: please do - i'll be able to ask questions today, but not later10:18
fwereade_rogpeppe, only just gave it the most cursory look, but it seems very nice, thanks10:19
rogpeppefwereade_: cool10:19
rogpeppefwereade_: hopefully someone can take it forward from there.10:19
dimiternrogpeppe: i looked through it, seems nice10:22
rogpeppedimitern: thanks.10:22
dimiternrogpeppe: how do i get a machiner client facade from the machineagent one?10:23
daniloshow would I best test in jujutest if NewConn is not failing? Calling Status() over API returns non-nil error even if "juju status" returns an error10:23
rogpeppedimitern: if you want, you can trivially implement a method on the client machineagent API that returns the machiner API10:23
rogpeppedimitern: i'm not entirely sure i'd bother though - not sure10:24
dimiternrogpeppe: well, because the agent connects to state and has a different facade from its tasks, and the tasks themselves need a different facade (to emulate st *state.State objects)10:25
rogpeppedimitern: the agent could keep the api.State around to fetch facades from10:25
rogpeppedimitern: because in general you don't need to fetch a facade from a facade (the machineagent case is possibly the only one)10:26
rogpeppedimitern: and unitagent, of course10:26
dimiternrogpeppe: ok, will have a closer look at that10:27
rogpeppedimitern: the api.State is kinda like the "facade facade" :-)10:27
dimiternrogpeppe: i'm thinking wrt the deployer facade i need to implement today10:28
rogpeppedimitern: you may well find it more convenient to add a Machiner method to MachineAgent, client-side10:28
dimiternrogpeppe: i see, yeah so far seems reasonable10:28
rogpeppedimitern: func (a *MachineAgent) Machiner() *machiner.Machiner {return machiner.NewState(a.state)}10:29
rogpeppedimitern: or something like that10:29
dimiternrogpeppe: yeah10:29
rogpeppedimitern: if you went that way, you'd probably need to add all the facade methods to Machine10:31
rogpeppeMachineAgent, sorry10:31
dimiternrogpeppe: hmm.. will see about this - we want to enforce encapsulation at the type level, as agreed10:32
dimiternrogpeppe: no extra methods callable from outside10:32
rogpeppedimitern: i wonder if it might be better just to make MachineAgent implement Call; then the client can just do machiner.NewState(machineagent) for any facade10:32
dimiternrogpeppe: at client-side?10:33
rogpeppedimitern: yes10:33
rogpeppedimitern: ISTM that machineagent (and unitagent) are special in that respect - it's ok for an agent to use any call appropriate for an agent, and it can use that to create facades specifically for individual workers.10:34
dimiternrogpeppe: but we'll still have only the needed methods at server-side, so you cannot call something you're not supposed to (and is used by a different worker on the same agent)10:34
rogpeppedimitern: i guess there are two levels of security here - connection security and type security10:36
dimiternrogpeppe: yes10:36
rogpeppedimitern: for connection security, theoretically any worker can call methods designed for any other worker10:36
dimiternrogpeppe: how so?10:36
rogpeppedimitern: because they're all sharing the same connection10:36
dimiternrogpeppe: ah, right, but that's ok i think10:37
rogpeppedimitern: for type security, we can make sure that, by not providing a Call method or the password to a worker, that a worker can't call any methods outside its facade10:37
dimiternrogpeppe: yeah10:37
* TheMue just deploys our standard sample - via OS X10:38
rogpeppedimitern: but the machineagent and unitagent facades are special in that they need to spawn workers themselves. so making them implement common.Caller seems like it might be a nice approach10:39
rogpeppedimitern: which avoids the client-side machineagent and unitagent packages depending on all the other facade packages10:39
dimiternrogpeppe: will look into it10:39
dimiternrogpeppe: won't that give the agents' facades too much knowledge? i mean from the agent you can somehow screw up a worker or something10:40
rogpeppedimitern: the agents can do anything anyway because they made the connection10:41
dimiternrogpeppe: by calling a method on the worker facade the agent is not supposed to10:41
rogpeppedimitern: the agents must be able to create worker facades10:41
rogpeppedimitern: so i don't think we'd be giving them any power they don't already have10:41
rogpeppedimitern: and it's not like there's malicious code living in cmd/jujud :-)10:42
dimiternrogpeppe: yeah, but i'm thinking of the future when we'd possiblly have external agents using the api just like ours10:42
rogpeppedimitern: i don't see the issue - if we have external agents, they have exactly the same capabilities, surely?10:43
dimiternrogpeppe: and we may very well need to think how to prevent malicious agents doing too much10:43
rogpeppedimitern: if we want to do that, we need to do it at the connection level, not the type level10:44
dimiternrogpeppe: anyway, this is a bit on the philosophical side for now10:44
rogpeppedimitern: what we're talking about here is type-level security, which is trivially circumventable by anyone that can make a direct websocket connection.10:44
rogpeppedimitern: and even at the type level, the difference is just: machiner := machiner.New(machineagent) vs machiner := machineagent.Machiner()10:45
dimiternrogpeppe: not really? do the agents use websockets as well as clients?10:45
rogpeppedimitern: yes, of course. what else would they use?10:45
dimiternrogpeppe: wasn't sure - i thought we only use WS for clients10:46
rogpeppedimitern: (we could of course use another more efficient protocol for agents, but for the time being we just use the same thing for everyone - the API is the API)10:46
dimiternrogpeppe: yeah, we could10:48
danilosdimitern, mgz: hi, do you perhaps want to have an early stand-up call? (I may need to go out at exactly that time, though maybe not); we can potentially have it later if that suits you better as well10:48
rogpeppedimitern: at some point i envisage possibly using encoding/gob and direct TCP connections - that would make things quite a bit more efficient, but we orient everything around json currently.10:49
dimiterndanilos: i'm up for later :)10:49
rogpeppedimitern: right, i'm off to lie in the sun :-)10:49
dimiternrogpeppe: would this lock us onto go-based agents only?10:49
dimiternrogpeppe: enjoy :)10:50
danilosdimitern, ok, I'll ping when I come back then :)10:50
* TheMue -> lunch10:51
rogpeppedimitern: we'd probably provide both protocols10:53
rogpeppedimitern: that's easy to do - just listen on two ports10:54
dimiternfwereade_: ping10:57
fwereade_dimitern, pong11:29
fwereade_dimitern, crap, sorry, I saw that ping but got distracted in between seeing it and answering it11:30
dimiternfwereade_: my bad :/ I realized my live testing yesterday wasn't done correctly11:30
fwereade_btw, would someone please do another review of jtv's https://codereview.appspot.com/10500043/ branch?11:30
fwereade_dimitern, bah, bad luck, what was wrong?11:31
dimiternfwereade_: i didn't pass --upload-tools to bootstrap (don't know how I thought it won't be necessary and will still use the latest source)11:31
fwereade_dimitern, haha11:31
fwereade_dimitern, for compatibility checking that's good though11:31
fwereade_dimitern, bootstrap plain11:31
dimiternfwereade_: i found out today when testing the deployer before and after the change and even after the change the upstart files where suspiciously the same :)11:31
fwereade_dimitern, deploy some units and subordinates11:32
fwereade_dimitern, juju upgrade-juju --upload-tools11:32
fwereade_dimitern, cross fingers11:32
dimiternfwereade_: now i'm testing on the proper version and the good news is the new deployer seems to work ok :)11:32
fwereade_dimitern, awesome11:33
fwereade_dimitern, is it live right now?11:33
* TheMue happily just bootstrapped, deployed, exposed and connected from OS X11:33
dimiternfwereade_: so the scenario is: revert to r1356 (or whatever before the change to deployer); build the scenario (wp+mysql+nrpe on machine 0); upgrade-juju - then what should I look for?11:33
dimiternfwereade_: it is11:33
fwereade_dimitern, if so you should be able to check compatibility by stopping the various upstart jobs, renaming a couple to the old format, and starting the jobs up again11:34
dimiternfwereade_: quick g+ perhaps?11:34
dimiterni never tried running upgrade-juju before11:35
fwereade_TheMue, nice!11:44
jtvThanks fwereade_12:01
hazmathave we verified of all our dependency licenses?12:11
hazmati just had a round with the gocurl author because there was no license specified (now apache2)12:11
mgzhazmat: nope12:12
danilosdimitern, mgz: I am still out and my laptop battery died: I've got CL up that I'd appreciate a review for :) i am on my phone now, so slow to type12:20
dimiterndanilos: ok, i'll take a look shortly12:20
danilosdimitern, thanks12:21
mgzokay :)12:22
fwereade_hey, wasn't there something that shortened the timeouts on the ec2 tests? that seems not to be working, I see what look suspiciously like a bunch of 5s waits12:26
=== wedgwood_away is now known as wedgwood
jtvCould anyone help me out with a review?  There's quite a lot of history to it now, so it may be best to read the discussion in-order before going into the diffs.  https://codereview.appspot.com/10500043/12:48
jtvallenap or rvba maybe?12:48
TheMuefwereade_: wonna see an interesting behavior: http://play.golang.org/p/XGf09f7F9v12:50
wallyworld_fwereade_: 1000th time lucky on that metadata in state branch? sorry for forgetting that client code accesses state.Machine directly. sigh12:50
fwereade_wallyworld_, bad luck, I hate writing that sort of code12:50
fwereade_TheMue, that's the nil/nil thing isn't it12:51
fwereade_TheMue, nastiest example I have yet encountered though12:51
allenapjtv: I'll give it a go.12:52
TheMuefwereade_: yeah, I wondered why a change doesn't work12:52
TheMuefwereade_: so I tried it isolated12:52
allenapTheMue: That's very surprising behaviour!12:52
dimiternTheMue: what's surprising about it?12:53
allenapTheMue: I misread, it's not surprising.12:53
ahasenackhi guys,12:53
ahasenackimports launchpad.net/juju-core/environs/local: import "launchpad.net/juju-core/environs/local": cannot find package12:53
ahasenackgot this while updating this morning12:53
ahasenackline got cut off, sorry12:53
allenapTheMue: I misread the err != nil as a test for err == nil.12:53
ahasenackhm, no, it's that12:54
dimiternahasenack: that was moved into environs/localstorage - if you pull trunk tip should be ok12:54
ahasenackI thought I was doing that12:54
TheMueallenap: oh, yes, a typo12:54
ahasenackgo get -v -u <stuff>12:54
ahasenackhm, now it has different output12:55
* ahasenack lets it run12:55
dimiternahasenack: or you can just: cd $GOPATH/src/launchpad.net/juju-core/ && bzr pull12:55
dimiternfwereade_: i have a question12:55
fwereade_dimitern, oh yes?12:56
dimiternfwereade_: as the simple context is written, it'll only return stuff which match the deployer tag12:56
fwereade_dimitern, yeah, I think that's the bit that needs fixing12:56
dimiternfwereade_: but it must return both new and old ones, right? i.e. unit-wordpress-0:unit-nrpe-0 and 0:unit-wordpress-0 in the new case12:57
dimiternfwereade_: or machine-0:unit-wordpress-0 in the old case12:57
fwereade_dimitern, yeah, the new version of list has to return anything on the machine deployed either by itself or an older version of juju12:58
dimiternfwereade_: ok12:58
fwereade_dimitern, just a sec though13:01
fwereade_dimitern, are you using the principal names in the subordinate conf names in the new version as well?13:01
fwereade_dimitern, or did I misread you ^^13:01
dimiternfwereade_: here's what I got from live tests: http://paste.ubuntu.com/5807731/13:04
fwereade_dimitern, you know, I'm seriously questioning the value of those `0:`s13:05
fwereade_dimitern, would we lose anything if we just forgot about identifying the deployer at all and just used the unit tag directly?13:05
fwereade_dimitern, would be muuuch nicer, I think13:05
dimiternfwereade_: you mean jujud-unit-mysql-0.conf instead?13:05
fwereade_dimitern, yeah13:06
dimiternfwereade_: how about if we have multiple deployers running on the same machine? or they'll be in containers?13:06
fwereade_dimitern, the idea is one per machine, full stop13:06
fwereade_dimitern, local provider won't be a problem because we won't be running uncontainerized units13:07
dimiternfwereade_: seems reasonable i think13:07
fwereade_dimitern, yeah, I think that if we end up with multiple machine agents ever running in the same instance the units will be the least of our worries13:07
dimiternfwereade_: so we can make them jujud-%s.conf where %s is the deployed unit's tag13:07
fwereade_dimitern, perfect13:07
* fwereade_ food13:07
dimiternfwereade_: cheers, will do13:08
fwereade_dimitern, whoa, is the branch without compatibility merged already?13:32
fwereade_dimitern, I think dave's going to cut a release shortly, we should have both changes or neither in there13:32
fwereade_dimitern, (I'm up for trying to get it in today if you think there's enough time)13:32
dimiternfwereade_: i think the release was short-lived anyway - there was some mail about it13:33
dimiternfwereade_: i'm mostly done anyway13:33
fwereade_dimitern, but .2 is coming :)13:33
fwereade_dimitern, cool13:33
dimiternI already *hate* SimpleToolsFixture!!14:02
=== danilos__ is now known as danilos
fwereade_dimitern, if it's shit, kill it14:04
dimiternfwereade_: it's written with one deployer in mind, I have to somehow convince it to create 2 separate fixtures for each one14:04
dimiternfwereade_: it assumes too much14:05
danilosdimitern, mgz: heya, if you want to have a (final) call, I am finally back :)14:05
dimiternfwereade_, TheMue: are doing kanban?14:06
fwereade_dimitern, yeah14:06
dimiternsorry, will join now14:06
danilosdimitern, ok, got the point :)14:07
dimiterndanilos: sorry, but just forgot we have kanban now14:07
danilosdimitern, no worries, ping me when you are done; I'd still appreciate a review for https://codereview.appspot.com/10733044/ while I am figuring out the livetest failure I am seeing14:08
dimiterndanilos: sure, once i have some time14:08
danilosdimitern, thanks14:09
frankbanhi dimitern, could you please take another look at https://codereview.appspot.com/10675043/ ?14:32
dimiternfrankban: will do a bit later14:32
dimiternfrankban: I have to land a patch first before the release14:32
frankbandimitern: cool, thank you14:32
mgzdanilo: answered a query in one of your mps14:47
mgzwill look at it in more detail later14:47
=== tasdomas is now known as tasdomas_afk
fwereade_danilos, reviewed14:56
danilosfwereade_, thanks, I was looking for something like Reset() (was even considering writing Unpoison) but on the storage, not on the provider itself14:57
fwereade_danilos, np14:57
danilosfwereade_, btw, do you mean I should isolate all the tests in the livetests as well? (not done for performance reasons, since bootstrapping takes such a long time, but I'd be happy to split them out if that's what you are suggesting)15:00
fwereade_danilos, sorry, no, just the unit tests15:00
danilosfwereade_, ack15:01
fwereade_danilos, our depending on the lack of isolation between the lives tests makes me eel somewhat grubby but it's practical15:01
danilosfwereade_, well, to be honest, my tests could cause trouble as well (I should probably restore bootstrap-verify to "expected contents", or the VerifyStorage live tests might start failing when the order of execution changes)15:03
danilosfwereade_, I had that code, but it seemed unwieldy (I was saving the existing contents of the file and then writing it back at the end of the test; perhaps it's good enough to write known-good content at the end of a test, which wouldn't look so ugly and wouldn't detract as much from the code being actually tested)15:04
fwereade_danilos, I would be +1 on that15:09
fwereade_danilos, pulling it out into a little deferred helper might not be so bad tough?15:10
danilosfwereade_, yeah, I'll do that15:12
danilosfwereade_, updated all as suggested, livetests still pass, 'lbox proposed' again to update the CL :)15:36
fwereade_danilos, cheers15:42
fwereade_TheMue, dimitern: https://codereview.appspot.com/1075104315:43
fwereade_danilos, reviewed again, just a couple of things15:51
dimiternfwereade_: whew.. done finally with the tests, will propose shortly for you to take a look, if you're still around16:03
fwereade_dimitern, I've got to go out for a bit now but there's half a chance that if you get another review first I'll be able to land it before dave gets there16:04
fwereade_dimitern, please mail me and him re status, I'll follow up this evening16:04
dimiternfwereade_: ok, will talk to dave as well16:04
danilosfwereade_, hum, I am a bit confused about what you want regarding error status; in one of my previous branches, you mentioned how you prefer functions/methods to return their own errors, instead of propagating returned errors, which is why I did what I did; I am fine with doing what you suggest, though, but explaining my rationale here :)16:08
* dimitern on to reviews now..16:15
dimiternfrankban: reviewed16:15
TheMuefwereade_: reviewed16:15
dimiternfwereade_: reviewed16:19
=== frankban_ is now known as frankban
dimiterndanilos: on to yours16:19
danilosfwereade_, this is getting ugly again (with different errors returned, I am also updating tests to cope, but it means restoring more of the state, and then I need 'restoreBootstrapVerificationFile' in unit tests as well, and...), I'll finish it later I hope (need to go out now)16:29
dimiternTheMue, fwereade_: https://codereview.appspot.com/10746044/16:29
dimiterndanilos: reviewed16:34
dimiternTheMue: ping16:43
TheMuedimitern: pong17:01
TheMuedimitern: start reviewing17:01
dimiternTheMue: cheers!17:01
TheMuedimitern: you've got a review17:25
dimiternTheMue: tyvm17:25
TheMuedimitern: so, I'll step out. enjoy next week.17:57
dimiternrogpeppe: wow enjoyed the sun?18:59
rogpeppedimitern: oh yes, had a nice swim too19:00
dimiternrogpeppe: well rested for a quick easy review ? :)19:00
rogpeppedimitern: just came online to add more songs to my spotify playlist for the journey south19:00
rogpeppedimitern: no reviews, i'm officially On Holiday and it would not be tolerated :-)19:01
dimiternrogpeppe: ah :) sure19:01
dimiternwaiting for dave cheney to appear19:01
dimiterni need to land this shit before the release19:01
=== wedgwood is now known as wedgwood_away

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!