/srv/irclogs.ubuntu.com/2013/08/02/#juju-dev.txt

=== gary_poster is now known as gary_poster|away
thumperaxw: ping03:22
axwthumper: ahoy03:22
thumperaxw: how are you going for work?03:22
thumperaxw: I'm wondering about flicking you a piece of work03:22
axwI'm working on https://bugs.launchpad.net/juju-core/+bug/1167441 atm03:22
_mup_Bug #1167441: environs/providers must report instance state, like py-juju <juju-core:Triaged by axwalk> <https://launchpad.net/bugs/1167441>03:22
axwthis shouldn't take too long I think03:23
axw(or I can switch tracks if it's important)03:23
axwthumper: ?03:27
thumperotp03:27
axwok03:27
thumperkk back03:29
thumperthis isn't urgent, but it is important03:30
thumperso you don't have to switch03:30
thumperit is really just doing some checks prior to bootstrap for the local provider03:30
thumperwith nice error messages03:30
thumpersomething like:03:30
thumperif ubuntu: check to make sure lxc and mongod installed03:31
thumperif not, give instructions: apt-get install blah blah03:31
thumperif linux:03:31
thumpercheck and give generic instructions: ie, plz install mongod and lxc03:31
thumperotherwise:03:31
thumpersorry, local provider not supported on your platform03:31
* thumper looks to see if there is a bug already for it03:32
thumperhttps://bugs.launchpad.net/juju-core/+bug/120409403:35
_mup_Bug #1204094: juju-core should suggest mongodb-server <papercut> <juju-core:Confirmed> <https://launchpad.net/bugs/1204094>03:35
thumperthat's about as close as it gets03:36
thumperbut slightly different03:36
thumperalthough I think the rationale for that bug is that we don't give good error messages if we fail03:36
thumperactually, right now, if you don't have it installed, the boostrap "works"03:37
* thumper thinks03:37
thumperno it does03:37
thumpern't03:37
thumperit fails while waiting for the service to start03:37
thumperbut most likely, not a good error message03:37
axwoops sorry I wasn't looking - reading back03:39
axwok03:40
axwI'll get this one under wraps, then start on that03:40
=== flaviamissi is now known as flaviamissi_
=== tasdomas_afk is now known as tasdomas
thumperaxw: awesome, thanks04:24
wallyworld_axw: here's another bug about local provider error messages. bug 120695904:48
_mup_Bug #1206959: error from no installed lxc is obscure <juju-core:New> <https://launchpad.net/bugs/1206959>04:48
axwwallyworld_: thanks04:49
wallyworld_axw: thanks for looking at it. i saw in the back scroll you were doing some work in this area. i'll assign the bug to you04:49
axwnps04:50
=== tasdomas is now known as tasdomas_afk
=== tasdomas_afk is now known as tasdomas
=== tasdomas is now known as tasdomas_afk
=== tasdomas_afk is now known as tasdomas
axwwallyworld_: any idea why lbox would say this?06:10
axwbzr: ERROR: Permission denied: "~axwalk/launchpad.net/goamz/": : Project 'launchpad.net' does not exist.06:10
axweh I think because I used go get originally06:12
axwso I got the wrong push branch06:13
bigjoolsbzr pull --remember lp:goamz06:17
bigjoolswill fix it06:17
axwbigjools: thanks, that's what I was looking for06:17
bigjoolsnp06:17
axw--remember doesn't remember :(06:26
wallyworld_axw: sorry, i was picking up my car from the repair shop, so missed your message07:14
axwwallyworld_: nps, I've got it sorted now07:14
axwI forgot I'd modified ~/.bazaar/locations.conf07:15
axwso the push location as getting overridden07:15
axwwallyworld_: I've got a trivial change on goamz, would you mind reviewing?  https://codereview.appspot.com/12324043/07:22
wallyworld_sure07:22
axwneeded for a test in juju-core07:22
wallyworld_axw: just land it, since it's trivial, no need for a 2nd +107:24
axwcheers07:24
wallyworld_np07:24
axwwallyworld_: what's the merge process for goamz?07:25
TheMuemorning07:25
axwbzr merge?07:25
axwTheMue: morning07:25
wallyworld_axw: you push to trunk07:26
axwok07:26
wallyworld_you may not have permission if you are not in the group that owns it07:26
wallyworld_i can do it for you if you are unable07:26
wallyworld_just make sure you run all the tests07:27
axwwallyworld_: tests all pass. I'm not a member of ~goamz, so I don't think I'm going to be able to push07:30
wallyworld_axw: i'll land it07:31
axwta07:31
jtv2Hi folks ­— any reviewers available for this one?  https://codereview.appspot.com/1227004307:36
=== jtv2 is now known as jtv
wallyworld_axw: done07:37
axwthanks!07:37
jtvTheMue: Morgen!  Hast Du vielleicht etwas Zeit dafür?  ^07:38
TheMuejtv: Oh, in German. Nice. Currently triaging a bug but almost done with it. Then I'll take a look.07:43
jtvThanks.  Somebody I know spoke German with me recently, and now I feel the urge to practice again.  A decade without practice made me really bad at it.07:44
jtvIt was probably my 3-rd best language at school, but now...07:44
axwjtv: I did 6 years of German at school, never practiced it after, and now ich kann nichts .. rememberen ;)07:54
jtvaxw: I can't fault your grammar, only your vocabulary.  :-)08:15
axw;)08:15
jtvI think it's "und jetzt kann ich mich nichts mehr erinnern"08:15
jtv"remember" is transitive.08:16
rogpeppemornin' all08:18
axwmorning08:18
rogpeppeaxw: hiys08:18
rogpeppehiya even :-)08:18
jtvHi rogpeppe08:21
jtvI mean, hiys!08:21
rogpeppejtv: hiys :-)08:21
TheMue*phew* found it, feeling has been right that this bug is already fixed and committed08:23
TheMuejtv: Nun kann ich deinen Code begutachten. (Now I can review your code.) ;)08:24
jtvHurrah!08:24
jtvOb das wirklich "begutachten" heisst wirden wir mal sehen...   :-)08:24
* jtv remembers alternative words such as ablenken, and scheitern.08:25
jtv"werden."  :(08:30
axw_net's a little wonky, might be in and out08:49
TheMuejtv: review is "begutachten", but it is a not very common term. "prüfen" may be better, but does not have the same official character has "begutachten".08:56
TheMuejtv: and your code is reviewed. ;)08:57
* TheMue just got a parcel with 4 books for review. in this case it is called "Rezension".08:57
=== axw__ is now known as axw
jtvThanks TheMue — but "begutachten" is etymologically derived from "consider good," right?09:10
TheMuejtv: even if it contains the stem "gut" it is more the verb for the noun "Gutachten". you can also say "ein Gutachten erstellen". and that surely can end in a bad result09:21
jtvAh!09:23
jtvThanks for explaining :)09:23
frankbancould anyone please review https://codereview.appspot.com/12178043 ? I just need the second review, thanks!09:34
dimiternfrankban: i'll take a look09:35
frankbanthanks dimitern09:35
dimiternfrankban: done09:37
dimiternfwereade: ping09:39
frankbandimitern: thank you! re your suggestion, I don't want the test to fail if len(units) != 1, I just want the loop to continue09:39
dimiternfrankban: ah, I see, ok then - ignore that :)09:39
frankbancool09:39
fwereadedimitern, heyhey09:40
dimiternfwereade: hey, I'm decided to start working on the uniter API09:40
dimiternfwereade: do we need to discuss it first, how do you think?09:40
fwereadedimitern, probably not a bad idea09:40
fwereadedimitern, quick g+?09:41
dimiternfwereade: sure09:41
dimiternfwereade: https://plus.google.com/hangouts/_/f497381ca4d154890227b3b35a85a985b894b47109:41
rogpeppefwereade: any chance of another look at https://codereview.appspot.com/12175043/ ? i'm currently blocked on your "not lgtm"10:02
rogpeppefwereade: also, you might want to have a look at https://codereview.appspot.com/12183043/10:05
axwfwereade: when you're not inundated, please see my reply to your latest question on the debug-hooks change. If you're okay with that, I'll land it on Monday10:10
axwnight all, have a nice weekend10:10
=== axw is now known as axw-
* TheMue => lunch10:59
dimiternfwereade: so removing the settings from UnitSettings seems a lot bigger than I originally though, and I'll leave it as is, as you suggested if it happens to be more difficult that expected11:04
fwereadedimitern, bah, annoying, but fair enough11:04
fwereadedimitern, is the complexity mostly on the watcher side or the client side?11:05
dimiternfwereade: well a lot of hookqueue tests have to be changes and with each change I'm getting less certain i'm doing it right11:08
dimiternfwereade: I can make them pass if I spend a few hours more perhaps11:08
fwereadedimitern, yeah, I can understand that11:08
fwereadedimitern, in that case just make it clear that UnitSettings.Settings is never guaranteed11:09
fwereadedimitern, and we can then kill it with impunity at some point in the future11:09
dimiternfwereade: ok, will do11:10
dimiternrogpeppe, fwereade: https://codereview.appspot.com/12344043/11:22
natefinchdimitern: what's the proper way to contact IS about my reitveld sign-in problem?11:24
dimiternnatefinch: #is on the canonical irc server11:24
natefinchdimitern: thanks11:24
dimiternnatefinch: there's also a request tracker somewhere, which I have never used11:25
* fwereade gtg out I'm afraid, I'll do some more reviews after lunch11:26
natefinchdimitern: is there a way to manually perform the steps that lbox does? Maybe that would give me a better idea of what's wrong11:28
rogpeppenatefinch: what's your sign-in problem?11:28
rogpeppedimitern: reviewed11:28
dimiternnatefinch: I don't really know, but probably if you trace that the code's doing..11:28
dimiternrogpeppe: cheers11:28
natefinchrogpeppe: when I try to sign into rietveld using lbox, it tells me bad username or password... I'm using my ubuntu one credentials, which definitely work on login.ubuntu.com11:30
natefinch(and I can sign into reitveld in chrome w/ SSO no problem)11:31
TheMuedimitern: standup11:35
=== tasdomas is now known as tasdomas_afk
=== tasdomas_afk is now known as tasdomas
rogpeppemgz: hg log -l 1 --template '{node}\n' -r .12:26
rogpeppemgz: is the preferred solution i think12:26
dimiternrogpeppe: https://codereview.appspot.com/12344043/ - is that better?12:28
dimiternrogpeppe: I noticed a typo: s/remove/remote/12:29
mgz>_<12:30
rogpeppedimitern: made another suggestion based on your version12:36
dimiternrogpeppe: thanks12:37
rogpeppetrivial CL anyone? https://codereview.appspot.com/1234904312:42
dimiternrogpeppe: looking12:43
dimiternrogpeppe: lgtm12:45
rogpeppedimitern: trivial?12:46
dimiternrogpeppe: i think so yeah12:46
dimiternrogpeppe: method expressions?12:46
rogpeppedimitern: next in line12:46
dimiternrogpeppe: ok12:46
TheMuerogpeppe: reviewed12:52
rogpeppeTheMue: thanks12:52
allenapHi, does anyone have time for a relatively short review? https://codereview.appspot.com/12176044/12:52
allenapI have one LGTM already, and this branch is a pre-req for another already approved branch.12:52
dimiternallenap: looking12:53
allenapdimitern: Thanks!12:54
dimiternallenap: i don't see your first LGTM though12:54
allenapdimitern: Oh, I thought jtv had done that. I guess I need another reviewer then; it's well past jtv's EOD now.12:55
allenapAnyone else for a shortish review? https://codereview.appspot.com/12176044/12:56
dimiternallenap: you've got a review13:04
allenapdimitern: Ta :)13:04
rogpeppelunch13:08
allenapsudo lunch13:12
allenapmgz: Can I threaten, er, politely request a review? https://codereview.appspot.com/12176044/13:13
mgzallenap: sure :)13:13
allenapmgz: Ta muchly.13:13
mgzah, and I actually read it already, so joy13:13
dimiternallenap: oops, my bad - missed the ports arg there13:14
allenapdimitern: No worries :)13:15
natefinchPerhaps an odd question: What's the release process like for Juju?  Is it documented somewhere?13:25
dimiternnatefinch: not sure it's actually documented in one place, it's more like scattered around in mailing lists and few google docs13:27
dimiternnatefinch: mgz and davecheney are your best sources on that I think13:27
mgzyeah,13:27
mgzI did say I'd gather everything up into a releaseing doc at one point, we're still refining stuff each release13:28
mgzmostly dave does the work13:28
dimiternmramm: ping13:28
mrammdimitern: pong13:28
dimiternmramm: still no response from hr about my missing tasks in allhands, I wrote to claire o'connell yesterday13:29
mrammok13:29
mrammlet's give it a couple of days13:29
natefinchok, follow up... who decides what features go into a release?13:29
mrammand I'll follow up with her next week13:29
dimiternmramm: ok, just saying i did my part to try and resolve this13:30
mrammnatefinch: dave cheney or everybody depending on how you look at it13:30
mrammdave picks the point in trunk from which he cuts the release13:30
mrammbut the idea is that everything that goes into trunk should be releasable13:30
natefinchyep, cool13:31
natefinchare there dedicated QA people? Or just us?13:31
dimiternnatefinch: wrt charms and stuff there are some automated tests13:32
dimiternnatefinch: but juju-core itself testing is mostly us - go tests and live testing on ec2/canonistack13:33
dimiternnatefinch: and we get feedback from a lot of other canonical (and some external) guys13:33
natefinchdimitern: that's cool13:33
dimiternnatefinch: you'd probably want to have an ec2 account for testing and setup your canonistack creds for openstack live tests13:34
dimiternnatefinch: ec2 costs can be reimbursed13:35
natefinchI have an ec2 account, don't have anything set up with canonistack yet13:35
dimiternnatefinch: take a look here https://wiki.canonical.com/InformationInfrastructure/IS/CanonicalOpenstack?action=show&redirect=CanoniStack13:35
natefinchdimitern: thanks13:39
dimiternmgz: are you sure the bot's runining the ppa's golang 1.1.1 ?13:46
dimiternmgz: ah, sorry, ignore that13:48
TheMuewow, 35°13:48
dimiternrogpeppe: your branch fails to build in rpc_test and apiserver/client_test13:49
dimiternTheMue: ah, it's much cooler here today - 28 and cloudy for a change13:49
dimiternhmm, haven't looked out actually - it's not cloudy at all13:50
TheMuedimitern: I've got a list of all times and temps of all team members. only John has it warmer. ;)13:52
dimiternTheMue: ah, well - 40+ there is like every day's average13:54
natefinchTheMue: we had a bunch of 35-ish days earlier in the summer, but lately it's been more around 26, and today it's actually only about 20 out.13:54
TheMuedimitern: yeah, very hot there13:54
natefinch(26 is more like our normal summer temps)13:55
TheMuenatefinch: we have typically 20 to 25 and seldom above, but the whole July has been fascinating and it shall continue next week13:55
dimiternnatefinch: here in july and august it's typically 32-38, some days in august gettin 42-4413:57
natefinchdimitern: dang14:00
natefinchPretty sure if it ever hit 42 here, the entire town would burst into flames14:01
dimiternnatefinch: on the flip side, it never gets much below 10-12 in winter14:02
dimitern:)14:02
natefinchdimitern: Ha. -20 isn't that unusual here, and most of the time it's around -1014:03
* natefinch totally doesn't have google open to translate between F and C ;) stupid american units...14:04
rogpeppedimitern: ha, i was totally sure i'd run gotest-c ./...14:05
dimiternnatefinch: oh, in winter I grew up back home with -15 most of the time, -25 often, -35 at rarely, but very memorable :)14:05
dimiternrogpeppe: ha!14:05
dimiternnatefinch: so i enjoy the hot weather, preferably indoors when it's too hot14:06
TheMuenatefinch: different units are always a pain, also when comparing inch and centimeters or miles and kilometers, not talk about feet14:06
dimiternrogpeppe: when changing method expressions i might want to skip the apiserver/machiner14:06
dimiternTheMue: one of the worst I think are volume measures - oz., gallons, etc.14:07
natefinchTheMue: meters don't bother me, because I can pretty much translate 1:1 with yards, but kilometers are tricky.... and yeah, volume is the worst14:07
rogpeppedimitern: why so?14:07
dimiternrogpeppe: well, to make my life a bit easier while refactoring machiner to use a common setstatuser14:08
dimiternrogpeppe: or actually, don't worry, i'll deal with the conflicts14:08
TheMuenatefinch, dimitern: yeah, no idea of the volumes14:09
rogpeppedimitern: ok, thanks14:09
natefinchgallons to liters is pretty easy, since a gallon is about 3.75 liters... you can just call it 4 ,and you're pretty close. Smaller volumes is harder.14:10
dimiternTheMue: my second-most used google feature, after search is "x <unit> in <other-unit>"14:10
natefinch....but at least we don't use stones for weight :)14:10
natefinchdimitern: yep, me too. Love that.14:10
dimiternnatefinch: oh, stones! yeah there's that as well14:11
dimiternI think there's no plural actually: it's 20 stone :)14:11
TheMuedimitern: i've got an app for it ;)14:11
natefinchhaha14:12
TheMuedimitern: it also converts currencies14:12
dimiternyep, I even wrote one (well, followed the tutorial really) currency converter for my ubuntu phone14:13
natefinchintersting... I had tests that were failing last night that are passing this morning.... I hate that14:13
dimiternnatefinch: ah, we have a special tag for these "intermittent-failure" - if you happen across them check if they're already reported and file a bug please14:14
natefinchdimitern: thanks. I'll do that if I come across them... unfortunately I closed the terminal they were in, and I don't remember exactly what they were14:15
dimiternnatefinch: no worries, they're tricky and usually helps to report them if you see them more than once in a while14:16
dimiternnatefinch: some tests are notoriously flaky because of some timeouts, which after lots of tweaking are *mostly* stable14:17
natefinchdimitern: yeah, been there, done that.  I understand14:17
dimiternrogpeppe: are you going to introduce state/interfaces.go ?14:19
rogpeppedimitern: yeah, i think so14:19
dimiternrogpeppe: ok, i'll have some to add there14:19
dimiternrogpeppe: btw it'd be really nice if godef follows symlinks and reverts back to the symlink, rather than resolving it finally14:21
dimiternrogpeppe: i mean, I have ~/work/go/src/launchpad.net/juju-core/ symlinked to ~/work/juju-core/ and every time I do a godef lookup in emacs it resolves it to the full path, rather than the one in ~/work/juju-core/ where I originally clicked14:22
rogpeppedimitern: hmm, i'll have to think about that14:23
rogpeppedimitern: i'm not entirely sure it's possible14:24
dimiternrogpeppe: well, perhaps if you detect the input file is symlinked, you can use that prefix when returning the result?14:24
dimiternrogpeppe: not a big deal really, just saying - I might try to hack something around that in my copious free time :)14:25
dimiterndang.. so following go conventions i'll end up with a type like SetStatuserer14:26
rogpeppedimitern: i'm a bit surprised it works at all if you're passing it a filename like ~/work/juju-core/state/foo.go14:26
rogpeppedimitern: StatusSetter14:27
dimiternrogpeppe: oh, it works like charm14:27
rogpeppedimitern: weird, 'cos that's not inside your $GOPATH14:27
dimiternrogpeppe: probably the link resolution comes before that14:27
rogpeppedimitern: yeah, maybe go/build makes a canonical path14:28
dimiternrogpeppe: I need type StatusSetter in apiserver/common and state interface StatusSetter14:29
rogpeppedimitern: seems not unreasonable14:29
dimiternrogpeppe: cf. common/remove.go - Remover and Removerer14:29
rogpeppedimitern: "Removerer" is an abomination14:29
rogpeppedimitern: but also quite funny14:29
dimiternrogpeppe: :) yeah, like double negative14:30
dimiternrogpeppe: I'll need StatusSetter and StatusSetterer in common14:30
rogpeppedimitern: we're going to move away from having a method on state for each interface it can return14:31
rogpeppedimitern: and have a single method, Entity, which returns the methods that all entities have in common14:31
rogpeppedimitern: then each place that needs a particular interface can type-convert to that interface as required14:32
dimiternrogpeppe: websters dictionary actually contains setterer14:32
dimiternrogpeppe: yeah, that'd be nice14:32
rogpeppedimitern: "setterer" means "one who cuts the dewlap (of a cow or ox), and inserts a seton, so as to cause an issue."14:35
rogpeppedimitern: that is, a person that setters.14:35
rogpeppedimitern: because that's the meaning of the verb "to setter"14:35
dimiternrogpeppe: not sure what either a dewlap or seton are14:35
rogpeppedimitern: neither me :-)14:36
dimitern:)14:36
rogpeppedimitern: on a dog, the dewlap is the bit that hangs down over the teeth, istr14:36
* TheMue is a differ, a person that does manual diffing ;)14:36
rogpeppedimitern: nope, i'm wrong14:37
rogpeppedimitern: http://en.wikipedia.org/wiki/Dewlap14:37
dimiternwow :)14:37
jcastrohey guys, so if I want to get say an m1.large and I put in the matching constraint numbers it gives me the next larger unit.14:37
jcastrowho do I need to convince that we'd like instance-types back?14:37
dimiternjcastro: no-one, we'll have them14:38
jcastrooh ok14:38
dimiternjcastro: it was decided14:38
jcastrowell that was easy!14:38
dimiternjcastro: and in the roadmap for next 2-3 weeks iirc14:38
jcastroawesome!14:39
dimiternjcastro: there was a lot of bikesheding around how to define them across providers/clouds though14:39
dimiternjcastro: like, if you need fallbacks for the same provider, but different clouds, etc.14:40
jcastroyeah14:40
jcastroI would be happy with just ec2 since those are the ones people know14:40
dimiternjcastro: i'm pretty sure openstack has to go there too14:41
* jcastro nods14:41
dimiternrogpeppe: for SetStatus I'll need a way to get the entity from it's tag, so I can call SetStatus on it14:44
rogpeppedimitern: that's what the State.Entity method will do14:44
dimiternrogpeppe: is that in yet?14:45
dimiternrogpeppe: will.. so probably not then14:46
rogpeppedimitern: no, sorry, i just got distracted by the dubious code in testing.TestLockingFunction14:46
dimiternrogpeppe: ok, I'll work with the assumption it's there already14:49
rogpeppedimitern: cool. you can call State.Lifer for the time being14:49
dimiternrogpeppe: how so? that only gets me Tag() and Life()14:51
* rogpeppe just managed to get the go compiler to go into an apparently infinite loop using up all of memory14:52
rogpeppedimitern: Entity will only return a Tagger, probably14:52
rogpeppedimitern: you can type convert14:52
dimiternrogpeppe: so I can do entity, err := state.Lifer(tag) and then if statusSetter, ok := entity.(state.StatusSetter); ok { statusSetter.SetStatus(...) } ?14:53
rogpeppedimitern: exactly14:54
dimiternrogpeppe: ok, cool14:54
TheMueso, both CLs are ready for review: https://codereview.appspot.com/12347043/ and https://codereview.appspot.com/1234304515:06
dimiternTheMue: will take a look15:08
TheMuedimitern: thx15:10
dimiternTheMue: so is it possible to say "remove the setting" if the default is !nil or "" ?15:12
dimiternTheMue: like juju set <svc> x= ?15:12
dimiternTheMue: or juju set <svc> --default x= (set the default to empty) ?15:13
dimiternrogpeppe: it seems you reverted back one of the panics?15:15
rogpeppedimitern: i reverted back the panics that were necessary15:15
dimiternrogpeppe: why not just return some error there?15:17
TheMuedimitern: remove a string should only be possible if it is configured as default: null and you say set <svc> --default thatOption15:18
rogpeppedimitern: which one are you referring to?15:18
rogpeppehttps://code.google.com/p/go/issues/detail?id=601615:18
TheMuedimitern: but that only with the 2nd cl. the first one doesn't change the behavior of set option=15:19
dimiternrogpeppe: in rpc_test15:20
dimiternTheMue: so what will now juju set <svc> option= do?15:20
dimiternTheMue: can you do as well juju set <svc> --default option= ?15:20
rogpeppedimitern: because if we hit that line, something horrible has gone wrong15:21
dimiternrogpeppe: wow :) you actually found a compiler bug, again? :)15:21
rogpeppedimitern: because it really should be unreachable15:21
rogpeppedimitern: seems like it15:21
dimiternrogpeppe: awesome!15:22
dimiternrogpeppe: seems like we're one of the main sources of go bugs :)15:22
TheMuedimitern: as said, the 1st cl only adds --default as an alternative to option=, you cannot mix it.15:22
TheMuedimitern: but you can do set option=15:22
rogpeppedimitern: erm, have you seen how many open bugs there are?!15:22
TheMuedimitern: both set to default15:22
TheMuedimitern: with the 2nd cl this changes15:22
dimiternTheMue: I think that's confusing15:22
dimiternTheMue: and needs more tests to verify all such cases15:23
TheMuedimitern: then string option will be set to an empty string with option=15:23
dimiternTheMue: and --default cannot take = after option or a value?15:23
TheMuedimitern: you have to see both cls combined, only splitted in two cls15:23
dimiternrogpeppe: haven't checked lately15:23
TheMuedimitern: which case do you want to be tested?15:24
TheMuedimitern: are you talking about the 1st cl?15:24
TheMuedimitern: i already said twice, it cannot. why should it?15:24
dimiternTheMue: --default option= and --default option=x at least15:24
dimiternTheMue: because if you're able to do that without --default, people will expect you can do it with, and it should be tested15:25
TheMuedimitern: it is, as those are detected as illegal options ;)15:25
dimiternTheMue: I can only see --default invalidoption15:25
dimiternTheMue: not --default validoption= or --default validoption=blah15:26
TheMuedimitern: option= is an invalid option too, and option=x also15:26
dimiternTheMue: ok, let's have 2 more tests for that then15:26
dimiternTheMue: I'll commet it on the review15:26
TheMuedimitern: i can add it, it helps you as a developer, but not the user15:26
dimiternTheMue: it's exactly the other way around I think15:27
dimiternTheMue: the tests should cover user stories, especially client-facing stuff like the CLI15:28
dimiternTheMue: so --default is a flag?15:29
dimiternTheMue: so we need tests that mix --default and other key=value pairs as well15:29
dimiternTheMue: users might try juju set <svc> key1=val1 --default key2 key3=val315:31
dimiternTheMue: that's why I don't think --default should be a flag15:32
TheMuedimitern: that flag has been the  result of a longer discussion. what would you propose?15:32
dimiternTheMue: it should apply to the argument immediately following it, then it's obvious (and should be documented) it's an argument15:33
dimiternTheMue: like --default=x (with or without the =)15:33
TheMuedimitern: an argument looking like a flag?15:34
dimiternTheMue: is --config a flag?15:34
dimiternTheMue: it's not and it has an argument15:34
TheMuedimitern: btw, also --default a b c d is working15:34
dimiternTheMue: yeah, there are no tests for that as well15:35
TheMuehow do you handle multiple defauls in one tx?15:35
dimiternTheMue: sorry? is it working or now?15:36
dimiternnot*15:36
TheMuedimitern: in the cl set --default opta optb optc sets all three to default15:37
TheMuedimitern: how should the call look like in your opinion?15:37
dimiternTheMue: it can look like --default opta --default optb --default optc15:38
TheMuedimitern: userfriendly?15:38
dimiternTheMue: at least it's explicit, rather than key1=val1 --default key2 key3=val3 failing15:39
TheMuedimitern: yeah, that's not optimal15:39
dimiternTheMue: it has to be documented that --default has to be last15:40
TheMuedimitern: but the explicit way is not user friendly15:40
dimiternTheMue: i don't think is unfriendly, but that's another thing15:40
TheMuedimitern: why has it to be the last?15:40
dimiternTheMue: because of k=v --default x w=v15:41
TheMuedimitern: ???15:43
dimiternTheMue: it has to be last, otherwise the user might assume he can continue passing key=value pairs after --default <something>15:44
dimiternTheMue: oh, I see, so you assume in the code there's either --default or not and it comes first15:45
dimiternTheMue: ok, this simplifies things, but has to be documented better - there are 2 ways to invoke juju set: 1) <svc> key=value ... pairs, 2) --default name name...15:46
TheMuedimitern: yes, the doc is currently not enough15:47
natefinchis there a keyboard shortcut to tell ubuntu to make a window half the screen size? Like when you drag it up against the side of the screen? It's the one thing I miss from WIndows, and I use it all the time.15:49
* TheMue works with fullscreen on four virtual screens15:51
natefinchI like being able to see stuff side by side, and with big monitors, making things fullscreen is usually a waste of space15:53
dimiternTheMue: reviewed the first one15:54
TheMuedimitern: thx15:54
dimiternnatefinch: there are all sorts of shortcuts - if you install ccsm you can set them yourself15:54
dimiternapt-get install compizconfig-settings-manager15:55
* fwereade observes that a very small insect has somehow managed to get inside his laptop screen15:56
natefinchgoogle figured it out for me, ctrl-super-<direction arrow>15:56
dimiternthen run ccsm - go to to Window Management - Grid15:56
* fwereade wonders how long it will crawl around in there for15:56
TheMuefwereade: inside? that's strange15:56
dimiternfwereade: wow :)15:56
fwereadeTheMue, yeah, indeed15:56
fwereadeTheMue, blasted countryside15:56
fwereadeTheMue, full of life15:56
natefinchI tried installing ccsm on my last ubuntu VM and was not successful. The default shortcut is fine by me, especially since it is nearly the same as I'm used to on Windows15:56
TheMuefwereade: thought you were in london?15:57
fwereadeTheMue, suffolk today15:57
sidneireviews: https://codereview.appspot.com/1235204315:59
dimiternTheMue: reviewed the second as well15:59
sidneifwereade: mramm told me to bug you about the cloud-init message i sent to the list. i suspect that's already on the schedule for being discussed next week?16:00
dimiternnatefinch: also it's worth mentioning that dragging the window around the edges will also put it left/right or maximize it16:00
* fwereade tries to load state for sidnei, just a mo16:01
natefinchdimitern: yeah, that's what I've been doing, but if I can avoid using the mouse, it's preferable16:01
mrammsidnei: it isn't yet, but I'm adding it now16:01
sidneithanks mramm16:01
natefinchdimitern: it's also finicky with multiple monitors, easy to overshoot16:01
TheMuedimitern: thx16:01
dimiternnatefinch: the defaults for grid window placement is ctrl+alt+keypad #16:01
natefinchahh, neat16:02
dimiternsidnei: can you repropose please, the diff is not there16:02
sidneiyeah, just noticed. doing it.16:02
dimiternman.. i have sticky keypad now after yesterday's little beer spill16:03
natefinchhaha16:03
TheMuei have no keypad16:03
dimiternit good it's the external kbd, rather than the laptop16:03
sidneidimitern: there, fixed16:04
dimiternsidnei: looking16:04
natefinchdimitern: I did the same thing last week (soda, not beer)... also external kbd . Luckily no damage after letting it dry out overnight.16:04
dimiternsidnei: wow, i never heard of install before16:04
dimiternnatefinch: i have to submerge it in water and leave it to dry :)16:05
fwereademramm, thanks; sidnei, I think I understand your need but smoser's points are good ones; I'm a bit leery of exposing cloud-init directly to users, even sophisticated ones16:05
natefinchdimitern: yikes, good luck with that! Hope it's not an expensive keyboard16:06
fwereadesidnei, what does cloudinit do for you, beyond (say) runcmd and add-package?16:06
dimiternor probably just dismantle it and clean it up carefully16:06
fwereadesidnei, because it seems potentially viable for juju to expose those in some way itself, and just happen to implement them with cloudinit16:08
fwereadesidnei, (sorry, of course, apt-proxy as well)16:09
dimiternsidnei: reviewed16:14
=== tasdomas is now known as tasdomas_afk
rogpeppedimitern, fwereade, anyone else: https://codereview.appspot.com/12354043/16:24
dimiternrogpeppe: looking16:24
rogpeppemgz: do you think the dependency file should contain dependencies for a) just cmd/juju and cmd/jujud; b) the entire tree or c) the entire tree plus testing deps too ?16:28
dimiternrogpeppe: lgtm16:28
rogpeppedimitern: ta16:28
mgzrogpeppe: the lot16:28
rogpeppemgz: okey dokey16:28
dimiternoh, yeah, the lot +116:29
natefinchgetting an error building trunk after my last pull:16:45
natefinch# launchpad.net/juju-core/environs/azure16:45
natefinch../juju-core/environs/azure/storage.go:149: context.GetContainerProperties undefined (type *gwacl.StorageContext has no field or method GetContainerProperties)16:45
rogpeppei just saw a failure in MachineSuite.TestWatchMachine16:45
rogpeppethough i can't reproduce it reliably16:45
mgznatefinch: see gwacl, pull that16:45
sidneifwereade: there's a lot of stuff in cloud-init. things like apt_mirror_discover_from_dns or whatever it's spelled are interesting. it looks up an ubuntu-mirror.%(domain)s hostname and uses that as the default mirror for example. it might be more interesting to people which are heavy cloud-init users indeed.16:45
rogpeppemachine_test.go:594:16:45
rogpeppe    testing.NewNotifyWatcherC(c, s.State, w).AssertOneChange()16:45
rogpeppetesting/watcher.go:85:16:46
rogpeppe    c.Fatalf("watcher sent unexpected change: (_, %v)", ok)16:46
rogpeppe... Error: watcher sent unexpected change: (_, true)16:46
rogpeppeanyone seen that before?16:46
mgzyeah, not sure I have any other context for you though16:46
dimiternrogpeppe: it's intermittent16:46
rogpeppedimitern: you've seen it too?16:46
mgzjust remember complaining to william that the assert didn't show anything useful16:46
dimiternrogpeppe: i've seen it like 3-4 times out of 50 runs16:46
fwereadesidnei, yeah, the trouble is that if we expose it we end up relegating anything we don't provision with cloud-init to a second class citizen16:46
sidneifwereade: that's also smoser's concern yes.16:47
sidneifwereade: for now i'd settle on simply fixing https://bugs.launchpad.net/juju-core/+bug/1203816 the simplest way, and then we can discuss further.16:48
_mup_Bug #1203816: local provider should support use of local proxy <juju-core:New> <https://launchpad.net/bugs/1203816>16:48
fwereadesidnei, yep, that sounds good to me16:48
fwereadesidnei, triaged high16:49
fwereadesidnei, and next week is bug week16:50
fwereadesidnei, so hopefully the immediate issue will be handled while we try to figure out the bigger ones16:50
sidneifwereade: if i didn't make it clear, im working on a branch already. and i'll be at the sprint next week.16:51
natefinchmgz: thanks, that fixed me up16:51
fwereadesidnei, ah, I didn't spot that -- many thanks then16:51
sidneidimitern: trying to make a const as you suggested in the review, but im failing to make it better to read. help?16:54
sidneidimitern: or something like this is ok? http://paste.ubuntu.com/5940759/16:54
rogpeppedimitern: i think i see how it can happen16:55
rogpeppedimitern: but i'm not yet sure how to fix the test so it's reliable16:56
dimiternsidnei: my suggestion was (perhaps failed to mention) to use ` quotes16:57
dimiternsidnei: that way you don't need to concat the lines16:57
sidneidimitern: http://paste.ubuntu.com/5940764/ ?16:58
dimiternsidnei: something like this http://paste.ubuntu.com/5940765/16:59
dimiternsidnei: yeah :)16:59
sidneidimitern: your version adds an extra \n at the beginning. is it possible to avoid that with `\ like in python?16:59
dimiternrogpeppe: well, it happes rarely17:00
dimiternsidnei: no, for version seems better actually, if it works for you use it - it reads better already17:00
sidneioki17:00
rogpeppedimitern: it's important that tests are reliable17:00
rogpeppedimitern: and that we know why they're failing17:01
dimiternrogpeppe: i agree completely17:01
dimiternrogpeppe: but i failed to see a reason why that particular one could fail17:01
rogpeppedimitern: it depends on the state/watcher implementation, and whether that will send an event or not17:02
dimiternrogpeppe: can you make it fail more often than not?17:02
dimiternrogpeppe: not can you make it, but does it do that with you17:03
rogpeppedimitern: i thought i'd be able to, but i haven't succeeded yet, which might mean my theory is bollocks17:03
rogpeppedimitern: right, i can now make it fail reliably17:05
natefinchI'm getting some weird build failures trying to run go test in my new branch...17:07
natefinchcmd/environmentcommand_test.go:44: undefined: cmd.GetDefaultEnvironment17:07
dimiternrogpeppe: what was needed?17:07
dimiternnatefinch: did you pull trunk recently?17:07
natefinch...except that cmd.GetDefaultEnvironment is properly defined in a _test.go file17:07
natefinchyeah17:07
rogpeppedimitern: i changed AssertOneChange to this: http://paste.ubuntu.com/5940791/17:07
rogpeppedimitern: and called that function at the end of TestWatchMachine17:08
dimiternrogpeppe: well, commenting out the sync stuff will surely cause any time-sensitive watcher test to fail17:08
rogpeppedimitern: in theory, making those changes should not affect the behaviour of the test17:08
natefinchdimitern: yeah, just pulled. Do I need to clean something out?17:08
rogpeppedimitern: not really17:08
rogpeppedimitern: the poll interval of state/watcher is 5s, considerably shorter than testing.LongTimeout17:09
dimiternnatefinch: can you paste the log you're getting with the errors?17:09
dimiternrogpeppe: but the sync stuff is needed to get the changes after triggering them one the line just before the assert, right?17:09
natefinchdimitern: http://pastebin.ubuntu.com/5940792/   (plus a lot more)17:10
rogpeppedimitern: only if you don't want to wait for the state/watcher to get around to polling17:10
rogpeppedimitern: it's a short cut, not essential17:10
dimiternrogpeppe: I had to add it to a lot of tests to cause them to pass at all17:11
dimiternnatefinch: pulling trunk and trying now myself17:11
rogpeppedimitern: that's because the timeout was probably less than 5s17:12
dimiternrogpeppe: most of the time it's a lot less17:13
dimiternnatefinch: so the cmd.GetDefaultEnvironment should be in cmd/export_test.go - can you see it there?17:14
rogpeppedimitern: these days, the worst case timeout should always be testing.LongWait (10s)17:14
natefinchdimitern:  yep. it's there17:14
natefinchdimitern:  the code looks correct, but go test seems to disagree17:15
dimiternnatefinch: try cd cmd/ && go test -gocheck.vv17:15
natefinchdimitern: same log output, same failures17:15
dimiternnatefinch: it seems like there shouldn't be any failures, because it fails to build the tests17:16
natefinchsorry... I meant same failure to build17:16
dimiternnatefinch: ok, but hmmm..17:16
dimiternnatefinch: try pasting "go env"17:17
natefinchdimitern: http://pastebin.ubuntu.com/5940823/17:18
natefinchdimitern:  go version go1.1.1 linux/amd6417:18
dimiternnatefinch: I think your gopath is wrong17:19
dimiternnatefinch: it should be just one path, not a list of paths17:19
rogpeppedimitern: here's a sketch of what i think is going on: http://paste.ubuntu.com/5940824/17:20
dimiternrogpeppe: did you try the race detector?17:21
rogpeppedimitern: there's no memory race17:21
rogpeppedimitern: plus unfortunately we can't use the race detector currently because of the bug i linked to earlier17:21
sidneirogpeppe: can i get your blessing on https://codereview.appspot.com/1235204317:22
rogpeppesidnei: looking17:22
dimiternrogpeppe: these 2 simple code paths have some serious and nasty complications17:22
rogpeppedimitern: how do you mean?17:22
dimiternrogpeppe: we need to sync watchers so they don't compete like this17:22
natefinchdimitern: gopath can be a list of paths... https://code.google.com/p/go-wiki/wiki/GOPATH17:23
dimiternnatefinch: it can be, but it's better that it's not17:23
dimiternnatefinch: it's tricky and flaky, trust me17:23
dimiternrogpeppe: i mean the entitywatcher should somehow wait for the state watcher to poll first17:24
TheMueso, will step out into vacation17:24
TheMuedimitern: review is handled17:24
dimiternTheMue: have a great holiday!17:24
dimiternTheMue: thanks17:24
rogpeppedimitern: i *think* the problem in this case may be solved simply by calling Sync rather than StartSync17:25
TheMuewill keep an eye on further reviews so that i can push the stuff during some spare time17:25
TheMuedimitern: thanks17:25
rogpeppedimitern: alternatively, it would be great if StartSync didn't allow a window for other events to arrive before actually starting to sync17:25
rogpeppedimitern: although fixing that implies restructuring the state/watcher control loop a bit17:26
dimiternrogpeppe: yeah, a whole new can of worms i suspect17:27
rogpeppedimitern: it shouldn't be too bad, in theory17:27
rogpeppedimitern: i don't understand this comment, BTW17:28
rogpeppe// NewLaxNotifyWatcherC returns a NotifyWatcherC that runs a full watcher17:28
rogpeppe// sync before reading from the watcher's Changes channel, and hence cannot17:28
rogpeppe// verify real-world coalescence behaviour.17:28
dimiternrogpeppe: me neither, you should ask jam17:28
* dimitern steps out for 10m17:28
natefinchdimitern: changed gopath to just the first directory, which is now reflected by go env, but same problem17:28
natefinchdimitern: take your time, I'll go work on something else, no big deal17:29
* fwereade is off again, back again later17:32
dimiternnatefinch: try and paste go list all17:37
natefinchdimitern: http://pastebin.ubuntu.com/5940890/17:41
dimiternnatefinch: I think there's your problem17:44
dimiternnatefinch: you have multiple copies of juju-core in your gopath17:44
dimiternnatefinch: if you try removing all juju-core* dirs except juju-core2 from $GOAPTH/src/launchpad.net/17:45
dimiternnatefinch: or moving them out of the way at least17:45
natefinchhmm ok17:45
dimiternnatefinch: and also, rename $GOPATH/src/launchpad.net/juju-core2 to juju-core17:46
dimiternnatefinch: import paths and work dir checkouts must match the import paths17:46
dimiternnatefinch: yeah, too many import paths :)17:47
natefinchdimitern: right, right... silly me.  I don't usually have multiple branches going of the same code in Go... forgot you can't just call them something else17:49
natefinchthat did it17:51
dimiternnatefinch: cool!17:51
natefinchdimitern: thanks... I'll remember that for next time - gotta rename the branch I'm building to juju-core first17:52
dimiternnatefinch: np :)17:52
dimiternnatefinch: and now, after you fixed you lbox woes and everything is up and running, please don't forget to lbox propose your branch17:59
natefinchdimitern: yep. Gotta write tests for my change first, which is why I was trying to run the tests in the first place. Probably by EOD though.18:00
dimiternnatefinch: no worries, it's good you have it running smoothly anyway18:00
natefinchyep18:00
* dimitern reached eod: happy weekend everyone!18:01
natefinchdimitern: have a good weekend!18:01
dimiternnatefinch: cheers, you too!18:02
rogpeppemgz: https://codereview.appspot.com/1236104318:07
* rogpeppe has reached eod too18:39
rogpeppeg'night and happy weekends all18:39
natefinchrogpeppe: g'night!18:44
sidneibummer, no review from rog. natefinch: are you into doing reviews yet?18:45
natefinchsidnei: I don't think I'm qualified to do reviews yet. I can certainly review the quality of the code, but as for how it interacts with the rest of the system... I'm going to miss anything that's more than a little subtle18:46
natefinchsidnei: in other words, I can review, but it won't count for much :)18:47
sidneinatefinch: tis fine, a mostly trivial branch. https://codereview.appspot.com/12352043/18:47
natefinchsidnei: done.  lgtm.19:10
natefinchsidnei: if it were me, I'd rename addscripts to AddRunCmds or something similar, but that's really more of a complaint against the original code, not your changes19:13
sidneinatefinch: i think it's a good suggestion, i'll make the change.19:13
natefinchsidnei: cool.19:13

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