/srv/irclogs.ubuntu.com/2014/11/17/#juju-dev.txt

=== kadams54 is now known as kadams54-away
davecheneythumper: menn0 waigani i've been working on some visualisation tools to help me00:10
davecheneyhttps://twitter.com/davecheney/status/53413595442067865600:10
davecheneyhere is an example00:10
davecheneydealing with something the size of juju/state is still daunting00:10
waiganinice!00:10
davecheneythat is cmd/juju00:10
davecheneysorery00:10
davecheneycmd/go00:10
* menn0 is still waiting for twitter to load the image00:11
waiganidavecheney: is that d3?00:12
menn0wow that's awesome00:12
menn0what are you using to do the rendering?00:12
=== kadams54-away is now known as kadams54
davecheneywaigani: d3js.org00:13
waiganithought so00:13
davecheneyhttp://imgur.com/t57nMob00:26
davecheney^ juju/state00:26
waiganimenn0: can I talk over the allwatcher store with you? I can see two ways to go00:26
davecheneyhttp://imgur.com/3oErTdQ00:26
davecheneyjuju state, from the perspective of mgo/v200:26
waiganidavecheney: omg...00:26
menn0waigani: i was about to go for lunch...00:28
menn0waigani: did you want to hangout/00:28
waiganimenn0: should be a quick question00:28
waiganimenn0: standup hangout?00:28
menn0waigani: ok00:28
=== kadams54 is now known as kadams54-away
davecheneyhttp://i.imgur.com/ioxieyg.png00:30
davecheneysomething to consider with the juju/version pacakge00:30
davecheneyhttp://imgur.com/d9xNtae00:33
davecheneywho's using loggo, and who isnt ...00:33
thumperdavecheney: so the picture is showing what?00:35
thumperwhat are the lines?00:35
thumperand how do you know?00:35
thumperis there meaning to the relative thickness?00:35
davecheneythumper: it's a bit hard to tell00:36
thumperdavecheney: it is almost like you need two graphs rather than one00:36
davecheneyi stole most of the code from an example comparing people who like different hair color00:36
davecheneyi'll keep working on it tonight00:36
thumperkinda cool picture though00:37
davecheneyat leats it tells me who is relaed to what00:37
* thumper nods00:37
davecheneylike juju/version imports bson ...00:37
davecheneyhttp://imgur.com/UKYv5j300:38
davecheneythis is all the things that importing juju/version brings in00:38
davecheneywhich seems excessive00:39
davecheneylike why does juju/version depend on sync ...00:39
davecheneyhttp://imgur.com/nmfRE4r00:40
anastasiamacdavecheney: these look pretty!00:45
anastasiamacdavecheney: are they available on the fly?00:45
anastasiamacdavecheney: kinf of like "graph usage of blah"?00:45
anastasiamacs/kinf/kind00:46
davecheneyanastasiamac: go get github.com/davecheney/junk/glyph00:48
davecheney$GOPATH/bin/glyph00:48
davecheneythen go to localhost:8080/chord/cmd/go00:48
davecheneyit works just like godoc, the first url is the visualisation, the rest is a package path to start from00:48
davecheneybe warned00:48
davecheneyit is very very slow00:48
davecheneytook two minutes to generate the first image00:48
anastasiamacdavecheney: it's monday... i feel slow too :-)00:49
davecheneyi'm doing to much processing in the browser00:49
davecheneyi need to offload that to the backend00:49
anastasiamacdavecheney: thnx :-) visually seeing dependencies is enormously helpful!00:51
davecheneythat's why i built this00:51
davecheneyi need it to help me00:51
thumperdavecheney: juju/version brings in io (to read the file), io brings in sync00:52
thumperdavecheney: easy to pull in heaps00:52
davecheneyversino is also bringing in sync directly00:52
davecheneywhich is odd00:52
davecheneyhmm00:53
davecheneyno it isnt00:53
davecheneyok00:53
davecheneyi screwed up00:53
davecheneydoesn't surprise me00:53
thumperdavecheney: just checking that we both aren't sitting in a different hangout with the same name01:03
thumpergoogle gets things wrong occasionally01:03
davecheneythumper: nope, my bad01:04
davecheneyi ingored the reminder01:04
davecheneybe there in a sec01:04
=== kadams54-away is now known as kadams54
davecheneythumper: http://godoc.org/github.com/juju/juju/state?import-graph01:21
davecheneythumper: http://imgur.com/TT3xgeD01:23
davecheneythumper: http://imgur.com/2iKJC2O01:25
thumperdavecheney: https://github.com/juju/errors/pull/1301:58
* thumper takes broken kid to physio01:58
menn0waigani: http://reviews.vapour.ws/r/471/ reviewed02:41
axwwallyworld_: when you have a minute, can you PTAL at http://reviews.vapour.ws/r/442/03:30
wallyworld_sure03:30
axwwallyworld_: I've parameterised the function to list block devices in worker/diskmanager.NewWorker03:31
axwwith a default03:31
axwjujud tests now override that default03:31
wallyworld_axw: looks good, now tests will pass in a container03:38
axwyep03:40
axwthanks03:40
waiganimenn0: thanks for the review. testing the constraints upgrade, I've expected three records because there is a preexisting environment constraints doc03:49
waiganimenn0: i.e. it has a local i.d. of "e" - the global env key03:49
thumperwallyworld_: hey, can I get you to look at this for me? https://github.com/juju/loggo/pull/7/files03:51
wallyworld_sure03:51
wallyworld_thumper: the location stuff is just for tests to avoid hard coding line numbers?04:00
thumperwallyworld_: exactly04:00
thumperstolen from the errors tests, which I got from rog04:00
wallyworld_can you add a doc comment then so the next person doesn't need to fiure it out?04:00
thumpersure04:00
wallyworld_also, i think then the test commnt is wrong04:00
wallyworld_as it still mentions line number fragility04:00
thumperah... will fix04:01
thumperwallyworld_: changes pushed04:04
wallyworld_+104:04
thumpercheers04:05
menn0waigani: of course... I didn't think of that04:10
waiganimenn0: cool, so good to ship?04:13
menn0I think so04:13
menn0just wondering if the test should check that the "e" key is still in good shape post migration04:14
menn0waigani: ^04:14
waiganimenn0: shesh, just caught me - mouse was over the 'commit' button04:14
thumperwallyworld_: and a useful one: https://github.com/juju/loggo/pull/6/files04:15
menn0waigani: it's probably ok04:16
waiganimenn0: I do check that in TestAddEnvUUIDToConstraintsIdempotent04:16
waiganimenn0: so it is covered. good enough?04:16
menn0waigani: so you do. that's great then. can you just add a comment with the assertion that check for a length of 3 to avoid confusion04:17
menn0waigani: then merge away04:17
waiganimenn0: will do04:17
menn0thumper: so State.NewEnvironment doesn't give you an environment you can do anything with04:18
thumperno04:18
thumpermenn0: it just adds an environment into the collection04:18
thumpermenn0: happy if you want to change that04:18
thumpermenn0: it probably isn't used in many places04:18
wallyworld_thumper: so how to developers decide to use the Stack vs non Stack variants of the various log methods04:18
wallyworld_shouldn't they just use Warningf() and a log setting decides04:19
thumperwallyworld_: if you are logging a message, you go `logger.Infof("some garbage")`04:19
menn0thumper: it isn't used anywhere, except tests04:19
thumperwallyworld_: the InfoStackf takes an error as the first param04:19
thumperwallyworld_: magical introspection of the args... params would be a bit too magic04:20
menn0thumper: so basically we need Initialize (in open.go) to happen afterwards right?04:20
thumperwallyworld_: if you want the error stack logged, call the stack message04:20
thumpermenn0: if you want to use it, yes04:20
wallyworld_ok04:20
wallyworld_i'm not sure then we need all the variants04:20
thumperwallyworld_: there are many many occurrances of logging where we go `logger.Warningf("something horrible: %v", err)`04:21
wallyworld_would we really want to see a stack trace for an Info message04:21
thumperI'm thinking that it would be `logger.WarningStackf(err, "something horrible")`04:21
thumperwallyworld_: I don't want to make that call04:21
thumperwallyworld_: someone may want a stack at a different level04:21
wallyworld_if they need stack trace with an info there's something wrong04:22
wallyworld_but ok04:22
wallyworld_i think this will be absed04:22
thumperabused?04:23
wallyworld_yeah04:23
thumperI'm not sure.. I guess time will tell04:23
menn0thumper: Initialize doesn't quite work as it dials it's own mongo connection and create its own uuid etc04:23
wallyworld_our log output will become oven more of a firehose04:23
thumperI have a better one coming04:23
menn0thumper: I will do some refactoring04:23
thumpermenn0: ack04:23
wallyworld_thumper: what do we do when our log files are full of stack traces and even harder to read than they are now04:24
thumperwallyworld_: I think this becomes one of those pragmatic things, don't record a stack for an expected error04:25
wallyworld_i think we need x-team collaboration or a policy that reviewers are aware of so that this will not be misused04:26
wallyworld_clear guidelines on what an "expected" error is04:27
wallyworld_what's the driver for this?04:27
wallyworld_is there an issue that is being solved?04:27
thumperone of the issues was our logging, and that I was looking for occurrances of ": %v" in the codebase04:30
thumperI saw that many were to log errors04:30
thumperwe now catch error stack info which is important for debugging04:30
thumperthat was the rationale04:30
thumperwallyworld_: along with this one: https://github.com/juju/testing/pull/38/files04:31
wallyworld_i content you don't need the error stack 99% of the time04:31
wallyworld_and if you do, it is for debugging, and not warning or error or info output04:32
wallyworld_i have very rarely if ever wished to have the stack trace when debugging a juju issue04:32
thumperhmm...04:32
wallyworld_sorry for being -1 on this, i just see a whole lot of extra logging for little benefit04:33
wallyworld_but that's just IMHO04:33
thumperI'm happy to hold off landing that one until we talk as a team through it more04:34
thumperI can take it to the list04:34
wallyworld_i'd personally be happier if this were a trace level thing that could be turned on when needed04:34
thumperbut probably tomorrow04:34
thumperwallyworld_: or just a separate method:04:34
thumperlogger.StackTrace(err)04:34
thumperalthough...04:34
wallyworld_so long as it can be turned on/off04:34
thumperI had thought of having other helper methods:04:34
thumperone to get a limited stack trace of where you are04:35
thumperthe other to get the stack trace of the error you have04:35
wallyworld_this could be useful when developing (not foe me, but others might like it)04:35
wallyworld_but it should not get into our std log output by default04:36
wallyworld_happy to concede if the majority want it04:36
thumperI'll take this one to the list04:36
wallyworld_ta04:36
thumperthe other is `jc.IsNil`04:36
wallyworld_ok04:36
thumperwhich does " if not nil, and it is an error, and it has a StackTrace method, show the stack trace in the test fail message"04:37
wallyworld_now, that is useful04:37
thumperwhich I have wanted for a while04:37
* thumper goes to make dinner for the little beings that live at his house04:38
wwitzel3axw: can you take a look at https://github.com/juju/juju/pull/115704:50
axwlooking04:50
axwwwitzel3: I can't spot the problem that was fixed - can you please describe?04:54
wwitzel3axw: well this was actually done before you merge landed adding in the break.04:54
waiganiwtf?04:56
axwwwitzel3: so is this really necessary then? there are tests for zone selection already, TestStartInstanceDistribution.*04:56
waiganiI just merged trunk and pushed my diff up to RB. What should be a four line diff has turned into a 400 line diff.04:57
axwalso, the "continue" in the refactored function should still do an index check, otherwise the message is wrong on the last iteration04:57
waiganihttp://reviews.vapour.ws/r/473/diff/04:57
wwitzel3axw: well I think the refactor is better, since it extracts the concern out of a big monolithic method and helps to isolate the testing :)04:57
waiganiother than the megawatcher changes, none of those changes are mine.04:58
axwwwitzel3: yes, that is a fair point04:58
waiganifrom this branch at least04:58
wwitzel3axw: yeah, I think that got clipped out in a merge, I just noticed that04:58
wwitzel3axw: I wanted you to give me a review on it since you did the code, but I'd stil like to land it04:59
axwwwitzel3: sure. LGTM with the continue condition readded04:59
davecheneyhttp://imgur.com/94R6MwG05:01
davecheneythe agent package is a bit of a beast05:01
wwitzel3axw: on the condition, is can I use <= instead of i+1 < ?05:01
axwwwitzel3: that's fine with me05:01
wwitzel3axw: k, yeah, that is what I changed, but I think I foobar'd a merge and ended up squashing the entire if block :/05:02
axwdavecheney: looks like a DHT; it's got some extra deps in case someone removes one ;)05:02
wwitzel3axw: thanks, addressed both of those05:04
axwwwitzel3: thanks for making it better :)05:05
axwwwitzel3: did you figure out that latest MAAS provider bug btw? last I looked you couldn't repro05:05
waiganimenn0: something between git, github and RB crapped itself along the way, so new PR: http://reviews.vapour.ws/r/474/05:10
wwitzel3axw: yeah, the bug was their code didn't have the back port of the "break" yet.05:21
wwitzel3axw: so instead of stopping after finding the right zone, it just kept running until the last zone.05:21
wwitzel3axw: and it just happened their last zone was full05:21
wwitzel3axw: I couldn't repo at first because my last zone had a free slot.05:22
axwwwitzel3: ahh I see, thanks05:23
wwitzel3axw: now I just have to figure out why my test fails on the bot , but works locally :( .. sad day, guess I will save that for tomorrow05:28
axwwwitzel3: nothing jumps out05:31
=== kadams54 is now known as kadams54-away
anastasiamacaxw: could u plz clarify juju convention when creating pair of corresponding commands?06:09
anastasiamacaxw: do they sit in one file like in environment.go - set/unset06:09
anastasiamacaxw: do they sit in different files like addmachine.go and removemachine.go?06:10
axwanastasiamac: I think most people prefer one command per file06:10
anastasiamacaxw: sorry ;-(06:10
anastasiamac set/get for environment06:10
anastasiamacaxw: k.. one file  is gr8 ;-)06:11
anastasiamacaxw: thnx06:11
axwanastasiamac: nps06:11
anastasiamacaxw: so where would u put shared functionality?06:11
anastasiamacaxw: i'd like to avoid duplicate code06:12
axwanastasiamac: I'd just stick all common functionality in one or the other, doesn't matter which... just as long as it's together06:12
anastasiamacaxw: k. sure :-) thnx06:13
wallyworld_jam: you ok for the juju status meeting later?07:10
jamwallyworld_: I should be able to be around07:28
wallyworld_great, we need to get the spec approved, and there's a fair bit of disagreement07:29
axwdimitern: why does goamz use a different API version for RunInstances when specifying VPC attributes? were you being paranoid, or is there actually different behaviour?07:31
dimiternaxw, because the VPC API is a newer version than the classic api it otherwise uses07:32
dimiternaxw, and yes, I was being a bit paranoid :)07:32
axwdimitern: I realise.. I meant, why not use the newer version on all07:32
axwok07:32
axwdimitern: I'm just asking because I'm going to have to bump the version we use to support allocating additional EBS volumes07:33
dimiternaxw, sure, if you need to, but please sync up with niemeyer07:34
axwdimitern: will do07:34
jamwallyworld_: any news about the remaining critical bugs ? Do you need some extra manpower to work on them ?07:48
jamlike https://bugs.launchpad.net/juju-core/+bug/1392544 isn't assigned yet07:49
mupBug #1392544: juju get shows default value true <charms> <config> <regression> <juju-core:Triaged> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392544>07:49
wallyworld_jam: i poked tim about bug 1392745 as i suspect he'll be across it, but he deferred till tomorrow07:49
mupBug #1392745: juju run doesn't after upgrade to 1.20.11 <canonical-bootstack> <regression> <run> <upgrade-juju> <juju-core:Triaged> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392745>07:49
wallyworld_the local provider one i'm going to start looking at07:50
wallyworld_the default value one is not assigned yet, if you had someone who could look that would be good07:50
wallyworld_otherwise i'll do tomorrow07:50
jamwallyworld_: k, if you want someone on my team, I'm perfectly happy having us polishing a release branch07:50
wallyworld_ok, thanks, maybe the default value one then07:51
mattywmorning all07:52
jamwallyworld_: k, I'm not sure if they'll get up to speed before someone like Tim could fix it, but I can get them started.07:53
wallyworld_jam: tim will do the 1.20.11 juju run one07:54
wallyworld_i haven't look in default at the default value one07:55
wallyworld_in detail07:55
jamah, ok07:55
wallyworld_bug 1392544 should just be some generic snafu maybe07:56
mupBug #1392544: juju get shows default value true <charms> <config> <regression> <juju-core:Triaged> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392544>07:56
jamwallyworld_: yeah. It looks like something is casting everything to a generic boolean type07:56
jamwallyworld_: I've tasked dimitern with it07:57
wallyworld_the other one - the local provider log issue - is likely tim's aread also, but i'll did into it07:57
wallyworld_ty07:57
wallyworld_and the maas one is well in hand07:57
* fwereade_ was up late last night, is going for a bit of a walk before he starts properly08:03
axwfwereade_: when you have started, if you have some time would you please take a glance over https://github.com/juju/charm/pull/77? doesn't need to be a full review, but I'd like to know if you have had differing thoughts on how the storage metadata should look08:22
=== alexlist` is now known as alexlist
=== psivaa-holiday is now known as psivaa
dimiternfwereade_, ping10:00
fwereade_dimitern, pong10:00
dimiternfwereade_, re https://bugs.launchpad.net/juju-core/+bug/1392544 - what's the purpose of the "default: true|false" field in juju get svcname output?10:01
mupBug #1392544: juju get shows default value true <charms> <config> <regression> <juju-core:Triaged by dimitern> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392544>10:01
fwereade_dimitern, it tells you whether it's that value because [nothing was set, and it will therefore change if there's a charm upgrade that changes the default] or [that's the actual value that was explicitly set, even if it happens to match the default, and will persist so long as there's a matching config entry]10:02
jamTheMue: voidspace: standup ?10:02
dimiternfwereade_, so if "default: true" it means yeah the respective config setting is not set (i.e. uses the default value) ?10:03
fwereade_dimitern, yeah10:03
fwereade_dimitern, looking at that bug I suspect it's a documentation issue more than anything10:04
dimiternfwereade_, it seems to me as well, but I'll do a quick test to make sure we don't set default: true for non-default values10:04
fwereade_dimitern, thanks10:04
fwereade_dimitern, don't close the bug without fixing the docs, though, please :)10:04
voidspacejam: oops10:04
voidspacejam: omw10:04
dimiternfwereade_, sure10:04
fwereade_dimitern, <310:05
jamfwereade_: so for compat reasons, can we ever change that to "is-default" rather than "default" confusing people ?10:06
fwereade_jam, yes and no. no for `juju get`; yes for `juju service get`, which I'll need to sync up with thumper on10:08
fwereade_jam, however, for `juju service get` we really want the default output to be something we can pass back into `juju service set`10:09
fwereade_jam, so a sane implementation would probably just skip the ones with default values10:09
fwereade_jam, and a --schema flag or something could tell you what the defaults were10:09
jamfwereade_: we *could* have that as "--as-set" or some other flag that indicates the output you want. I think you *do* sometimes want to see what the value is, even if you haven't set it10:10
fwereade_jam, that is not perfect for sure10:10
jamI've used it often to figure out what I *could* set10:10
fwereade_jam, I agree we do10:10
jamfwereade_: you'd prefer the minimal form as the default output ?10:10
fwereade_jam, but the asymetry between get and set is really kinda nasty10:10
fwereade_jam, I *think* so, yeah -- in my mind the main tension is in what happens if you get, upgrade, set10:11
fwereade_jam, and whether that final set shoudl change values or not10:11
fwereade_jam, (assuming it's not rendered irrelevant by the original get having values that are invalid/unknown post-upgrade10:11
fwereade_)10:11
fwereade_jam, not saying it should be *hard* to see the possibilities, but I don't think it's the *most* important thing10:12
jamfwereade_: well, I do think it is the primary use case of get, isn't it ? (what are all the current settintgs)10:13
jamfwereade_: or do you feel it is more the way you transfer settings to some other place10:13
fwereade_jam, `get --all` feels appropriate for "and include the defaults please" -- it's more consistent with charm-side config-get apart from anything else10:14
fwereade_jam, and `get --schema` feels appropriate for "tell me what the possible keys and their meanings are"10:15
fwereade_jam, and I'm not automatically opposed to some nice human-readable combination of the two10:15
fwereade_jam, but it feels like a lot of disparate info to cleanly fit into the default output10:15
fwereade_jam, that's what we signally failed to do with the current implementation ;)10:16
perrito666morning10:26
dimiternfwereade_, so it does work - setting a service config setting to a non-default value causes juju get svcname to *not* include "default: true" for that setting10:29
fwereade_dimitern, that's good anyway10:30
fwereade_dimitern, not really much less confusing10:30
fwereade_dimitern, but at least working as intended10:30
dimiternfwereade_, so what do you suggest to add to juju help get to clarify the behavior?10:31
* fwereade_ looks at documentation for `juju get`10:31
fwereade_dimitern, um, some documentation ;p10:32
dimiternfwereade_, because this is what I think the "fix" for that bug10:32
fwereade_dimitern, concur10:32
dimiternfwereade_, barely :)10:32
fwereade_dimitern, seriously, all it has is a "purpose"10:32
fwereade_dimitern, give it a Doc as well10:32
dimiternfwereade_, yeah, a lot of commands (simpler ones) are like that10:32
fwereade_dimitern, indeed10:32
fwereade_dimitern, this is not actually a good thing ;)10:33
dimiternfwereade_, ok, I'll describe the output in the Doc of get10:33
fwereade_dimitern, cool, thanks10:35
dimiternfwereade_, trivial review (mostly proof-reading I guess) ? https://reviews.vapour.ws/r/477/diff/11:33
fwereade_dimitern, ship it11:35
dimiternfwereade_, cheers!11:35
fwereade_dimitern, hey, btw, apparently malta played football against bulgaria and didn't lose, I feel quite unwarrantedly smug on behalf of my place of residence11:35
dimiternfwereade_, :) yeah, I've heard of that11:36
dimiternfwereade_, and also BG won 2nd place in the kids eurovision in malta11:36
fwereade_dimitern, cool, I didn't know that until today either :)11:36
dimiternfwereade_, btw can you actually click on Ship it! ? :)11:37
dimiternfwereade_, ah, sorry - I've just seen it, it must've been lagging behind11:37
dimiternniedbalski, ping11:42
dimiternvoidspace, jam, can any of you please approve https://reviews.vapour.ws/r/478/ ? it's the same fix for bug 1392544, this time for master11:47
mupBug #1392544: juju get shows default value true <charms> <config> <regression> <juju-core:In Progress by dimitern> <juju-core 1.21:In Progress by dimitern> <https://launchpad.net/bugs/1392544>11:47
voidspacedimitern: looking11:49
dimiternvoidspace, ta11:49
voidspacedimitern: lgtm11:51
dimiternvoidspace, thanks11:51
dimiternvoidspace, did you click "Ship It!" btw?11:53
voidspacedimitern: yes11:53
voidspacedimitern: I really did11:54
voidspacedimitern: I've done it twice, but it doesn't seem to be showing up11:54
dimiternvoidspace, yeah, weird...11:54
voidspacedimitern: I got an "untrusted connection" warning when I went to RB too11:54
dimiternvoidspace, anyway, ta, I'll ping eric later about this11:54
voidspacedimitern: if I use http it works11:55
voidspacedimitern: https fails11:55
voidspaceodd11:55
voidspacedimitern: Ship It! now visible anyway11:55
dimiternvoidspace, ha! I've seen this as well - using https I had to add an exception because the cert was self-signed most likely11:56
voidspacedimitern: yeah, I added the exception ok11:56
voidspacedimitern: but if I use https then ship it doesn't work11:56
dimiternvoidspace, really odd11:57
voidspacerogpeppe3: ping11:57
voidspacerogpeppe2: ping11:57
voidspacerogpeppe1: ping11:57
rogpeppe3voidspace: pong11:57
=== rogpeppe3 is now known as rogpeppe
voidspacerogpeppe3: hello Roger11:57
rogpeppevoidspace: hiya11:57
voidspacerogpeppe: morning11:57
rogpeppevoidspace: how's it going?11:57
voidspacerogpeppe: is there a tool for applying changes  to go code that works by ast rewriting11:57
voidspacerogpeppe: like "go fix" but a general tool11:57
rogpeppevoidspace: gofmt :)11:57
voidspacerogpeppe: ah!11:58
voidspacerogpeppe: cool, thanks11:58
rogpeppevoidspace: check out gofmt -r11:58
voidspacerogpeppe: all is good, how's you?11:58
rogpeppevoidspace: but it depends what you want to do11:58
voidspacerogpeppe: do I need "gofmt" rather than "go fmt"11:58
rogpeppevoidspace: excellent, thanks11:58
rogpeppevoidspace: go fmt invokes gofmt11:58
voidspacerogpeppe: I want to rename an Interface method and all uses11:58
voidspacerogpeppe: ah, ok - I understood there were some historical differences11:58
rogpeppevoidspace: you possibly want to (brand new) gorename tool actually11:59
rogpeppevoidspace: the interface to go fmt is in terms of packages; the interface to gofmt is stdin/stdout and files11:59
voidspacerogpeppe: ok11:59
rogpeppevoidspace: i haven't succeeded in using it on a large code base yet though12:00
voidspacerogpeppe: ah :-)12:00
rogpeppevoidspace:  but take a look at https://groups.google.com/forum/#!topic/golang-nuts/96hGPXYfqsM12:00
voidspacerogpeppe: I'm there already12:00
rogpeppevoidspace: if the method name is distinctive, then gofmt -r will probably do your job ok12:00
voidspacehmmm... gorename can't find the environs package it seems12:05
voidspaceI'll try go fmt12:05
wallyworldjam: meeting?12:05
jamwallyworld: omw12:05
jamwallyworld: .... firefox just froze, be there in a sec12:06
wallyworldnp12:06
voidspacedimitern: when you get a chance http://reviews.vapour.ws/r/479/12:23
voidspacedimitern: it builds fine (so is probably correct), just running all tests12:23
voidspacedimitern:  I used gofmt, but ended up having to use sed to fix comments (and then manually unfix some of things sed did)12:23
voidspacedimitern: so I might as well just have started with sed...12:24
dimiternvoidspace, :) ok, looking12:26
voidspacedimitern: ooh12:27
voidspacedimitern: "Subnets returns basic information about all networks known"12:27
voidspacedimitern: should probably be12:27
voidspacedimitern: Subnets returns basic information about all subnets known12:28
voidspacedimitern: I'll make that change12:28
dimiternvoidspace, yeah, I've just added a comment for this12:28
voidspacedimitern: pushed12:29
voidspacedimitern: I don't think you've published that comment yet anyway12:29
dimiternvoidspace, LGTM, just sent my comment12:30
voidspacedimitern: cool, thanks12:30
dimiternvoidspace, a bit of a problem13:04
dimiternvoidspace, did you remember to rename ListNetworks to Subnets in environs/interface.go ?13:04
dimiternvoidspace, because I see lots of build errors like *joyentEnviron does not implement environs.Environ (missing ListNetworks method)13:05
dimiternvoidspace, I can't even say how this managed to land, because it does not build :)13:05
dimiternvoidspace, ah, sorry - something was messed up with my local git repo - now it seems to work and there are no failures13:24
sinzuiwwitzel3, is bug 1392390 not fix committed in master?14:11
mupBug #1392390: maas zone selected for deployment that is occupied <cloud-installer> <landscape> <maas-provider> <placement> <regression> <juju-core:Fix Committed by wwitzel3> <juju-core 1.21:In Progress by wwitzel3> <https://launchpad.net/bugs/1392390>14:11
rogpeppefwereade_: do we check anywhere that a charm must have an install and/or a start hook?14:12
fwereade_rogpeppe, nope14:12
rogpeppefwereade_: ok, cool14:13
rogpeppefwereade_: i could've sworn it did, but couldn't find the code14:13
wallyworldwwitzel3: is nate around?14:13
jw4mgz, wallyworld out of disk space on CI build server?14:19
wallyworldjw4: just retry14:20
jw4kk14:20
jw4tx wallyworld14:20
wallyworldhappens sometimes :-(14:20
jw4:)14:20
wallyworldperrito666: when wwitzel3 or nate are around, could you mention bug 1392602 - i cannot find wtf is happening. it could be related to recent logging work, but i'm not sure. maybe they will have an idea14:21
mupBug #1392602: local provider agent fails to restart on reboot of host - log dir missing <local-provider> <lxc> <regression> <juju-core:In Progress by wallyworld> <juju-core 1.21:In Progress by wallyworld> <https://launchpad.net/bugs/1392602>14:21
mgzjw4: it's still not clear what triggers that failure... but just retrying works14:37
jw4mgz: yeah weird.  I've $$retried$$ and so far it's looking good14:38
jw4mgz: tx14:38
jw4mgz: derp... now I get "failed to find "mongod"14:39
mgz>_<14:39
voidspacefun14:39
mgzjw4: I'll investigate, also seems like an 'ec2 is ill' type of issue14:39
jw4bummer14:39
jw4thx mgz14:40
jw4mgz: shall I $$retry$$ or wait?14:40
mgzjw4: this one is just "no reachable servers" no? an intermittent test failure.14:40
jw4mgz: yeah14:40
mgzthough... I agree I've not seen MongoSuite.TestAddRemoveSet fail quite like that before14:41
jw4mgz: lol it was because the build number was '1337'14:43
jw4;)14:43
mgzhttp://paste.ubuntu.com/9057111/14:43
mgzjw4: send it through again14:43
jw4k14:44
wwitzel3sinzui: it is fix commited in master, I am getting the patch up for 1.21 now, not sure how it go reverted in lp, probably my fault :)14:49
sinzuiwwitzel3, thank you for following up14:49
=== tvansteenburgh1 is now known as tvansteenburgh
perrito666wwitzel3: natefinch ericsnow Ill be a couple of mins later, I am hogging my bw with a deploy14:57
natefinchk14:58
natefinchwwitzel3: ping?15:05
wwitzel3natefinch: yep, sorry15:05
sinzuinatefinch, I think bug 1392745 needs to attention, can you find someone to look into it? I amd jjo can gather information as needed15:16
mupBug #1392745: juju run doesn't after upgrade to 1.20.11 <canonical-bootstack> <regression> <run> <upgrade-juju> <juju-core:Triaged> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392745>15:16
sinzuinatefinch, and I can offer access the the juju-ci3 env if someone needs to be on an affected env15:16
mgzjw4: you're a lucky one today15:17
mgzlatest run, not seen a failure on this test before...15:17
mgzFAIL: metricmanager_test.go:20: MetricManagerSuite.TestRunner15:17
mgzlooks like it's timing dependent though15:17
mgzjw4: test you added, so probably needs fixing?15:22
mgzwait... is that run not yours? I am confused15:23
mgzmattyw: ^15:23
mattywmgz, ah shit - I'll take a look, didn't realise that test had landed yet - probably only landed 10 minutes ago15:24
jw4hmm; I'll investigate... I don't think it was mine15:24
mattywmgz, jw4 it's all good15:25
mattywmgz, jw4 it's failed trying to land the branch that test was added in - so the tests are doing their job15:25
jw4mattyw: cool, tx!15:25
jw4I'll try mine again for the fourth time15:25
mattywjw4, I don't think you'd have seen that error? looks like my branch hasn't landed15:26
jw4mattyw: right - my integration builds were failing due to space issues on the ci server15:26
mgzyeah, I'd just assumed the in-progress landing was jw4's again, but it was mattyw's, hence the confusion, sorry :)15:27
jw4mgz: no worries - nice chat :)15:27
* perrito666 is told that amazon will actually ship ram to his country without the 1 month wait in customs and he grins15:28
mgzperrito666: real live rams?15:28
perrito666mgz: well, they will be alive when shipped15:29
perrito666rick_h_: btw, I loved the composition on rog/uros pic on your post15:36
rick_h_perrito666: ty :) was playing with my fancy lens during the sprint a lot15:37
=== kadams54 is now known as kadams54-away
=== kadams54-away is now known as kadams54
voidspaceanyone here familiar at all with gomaasapi ?15:58
perrito666voidspace: I have been around there but most likely dont hve enough info to help youi15:59
voidspaceperrito666: :-)15:59
voidspaceperrito666: I need to call the api to claim a static ip address15:59
perrito666voidspace: just ask the question and we can see15:59
voidspaceI am doing...15:59
voidspaceperrito666: I believe it looks like the following16:00
voidspaceipaddresses := environ.getMAASClient().GetSubObject("ipaddresses")16:00
voidspace_, err = ipaddresses.CallPost("", params)16:00
voidspace(response is not useful - either it succeeds or we get an error)16:00
voidspaceperrito666: it's that empty string as the first argument to CallPost that bothers me16:00
voidspaceperrito666: that's the "operation" parameter16:00
voidspaceperrito666: but there's no operation here16:00
perrito666voidspace: ah I have dealt with it16:00
voidspaceit's a post to the ipaddresses api end point16:01
voidspaceperrito666: right - have you called any endpoints without operations?16:01
perrito666voidspace: you are dealing with a restful api there you not always have an op16:01
voidspaceit looks odd16:01
voidspaceperrito666: right16:01
voidspaceI guess I have to try it :-)16:01
voidspaceperrito666: I have a working maas server - I'll whip up some code to check it16:01
voidspaceperrito666: thanks anyway16:01
perrito666voidspace: so iirc that translates to /path/to/node?operation16:02
voidspaceperrito666: this particularcall is directly paddresses/16:02
voidspaceno operation and no node id16:03
perrito666voidspace: ahh addresses yes, that one is specially ugly16:03
perrito666hold a sec, I was around there not long ago16:03
voidspaceperrito666: ooh, I might be wrong16:03
voidspaceperrito666: the GET is without an operation16:03
voidspaceperrito666: looks like it's "reserve"16:03
voidspacePOST /api/1.0/ipaddresses/ op=reserve16:03
voidspacemy mistake then :-)16:04
perrito666voidspace: you did look at http://maas.ubuntu.com/docs/api.html#ip-addresses right?16:04
voidspaceperrito666: I did...16:04
voidspaceperrito666: I think I looked at the GET by mistake :-D16:04
voidspacejust looked now and seen "reserve" is the op...16:04
voidspaceperrito666: thanks16:04
perrito666voidspace: heh yes, happened to me too :p also there are a few with similar names so beware of not getting the wrong endpoint :p16:05
katcohey, go question: with a map, do you think it would be better to delete keys, or nil out their values? i would think that if the key had a good chance of being re-inserted, you'd want to nil out the value so the hash wouldn't continually be recomputed. thoughts?16:47
mgzkatco: if it's not a giant map, I wouldn't worry about resizing16:48
mgzso, likely deleting makes better logical sense and is less likely to result in surprising bugs16:49
katcomgz: kind of thinking that as well16:49
katcomgz: b/c i would expect for people to be checking for "ok", not != nil16:49
mgzyup16:50
katcocool, ty sir!16:50
katcomgz: you've given me the confirmation bias that upholds my world-view! ;)16:50
mgz:)16:52
natefinchkatco: definitely delete.  Don't prematurely optimize... just do the most simple and straightforward thing .16:53
katconatefinch: i recognize and applaud your agreement with me.16:54
katconatefinch: seriously, thanks for chiming in ;)16:54
* natefinch is the king of chiming in. ;)16:55
katcohaha16:55
=== tasdomas` is now known as tasdomas
voidspaceg'night all18:24
=== kadams54 is now known as kadams54-away
bodie_if I find that I keep needing to repeat myself with methods like map recursion, or a conformer for map keys, I would normally extract these into a library and import it.  but, I don't know how I would handle this with juju18:59
bodie_I expect importing a personal library would be unkosher18:59
bodie_who could tell me where to put such things?  e.g. a method for coercing map[interface{}]interface{} to map[string]interface{}19:06
bodie_I'm kinda tempted just to open a PR with a personal import and see if it flies :S19:07
=== liam_ is now known as Guest63751
bodie_it looks like charm master breaks its own tests20:07
bodie_rogpeppe, config_test line 408: YAML error: reflect: reflect.Value.Set using unaddressable value20:09
bodie_maybe it's an issue with my deps20:09
bodie_doesn't seem to be20:10
=== urulama is now known as urulama___
bodie_https://github.com/juju/charm/pull/80 rogpeppe20:13
bodie_one-line fix20:13
bodie_not sure if this is how it *should* work, but it patches the breakage20:13
bodie_ah20:18
bodie_I see20:18
bodie_my charm master is out of sync with upstream because my upstream is gopkg.in/juju/charm.v420:19
rogpeppebodie_: oops. looks like juju-core needs latest version of yaml package20:21
rogpeppebodie_: i think it should anyway - if you could do that, i'd be happy :)20:21
rogpeppebodie_: i'm not here BTW :)20:22
bodie_rogpeppe, ack, so tweak the charm or the deps?20:22
bodie_er, rogpeppe's IRC away bot20:22
mgzheads up for juju-core... talking about server moving to systemd, which means our dynamically upstart jobs will need adapting for vivid20:26
ericsnowthumper: ping20:27
thumperericsnow: hey20:27
ericsnowthumper: I've addressed just about everything on http://reviews.vapour.ws/r/346/20:28
thumperericsnow: ok, will look again20:28
ericsnowthumper: left one open issue20:28
ericsnowthumper: thanks20:28
=== kadams54 is now known as kadams54-away
thumperericsnow: was trying to look at the differences, and all I get is empty files and errors: http://reviews.vapour.ws/r/346/diff/16-17/?page=220:40
thumperericsnow: I'm assuming rb shouldn't do this?20:40
ericsnowthumper: it's because the branch depended on another branch20:42
thumperah20:42
thumperericsnow: ship it!20:42
ericsnowthumper: try diff'ing between 14 (where you last reviewed) and the latest20:42
ericsnowthumper: okay!20:42
katcowell. i now know that my machine does not like spawning 100,000 instances of this test.20:57
bodie_heh21:00
bodie_my machine doesn't like running the juju core tests at all :/ I'm still trying to determine why I keep getting a reversed port number in the firewaller test21:01
katcoi didn't expect it to become completely unresponsive... i thought the kernel scheduler was better than that21:03
katco608s before it started giving me back control lol21:03
katcokind of. ugh.21:04
katcoor gosh... maybe it's the window manager...21:06
katcossh is working fine21:07
katcocpu and mem aren't under load...21:07
* thumper goes to lie down for a bit21:17
waiganithumper/menn0: after I take out the machineID and NetworkName from the openPorts doc, what should the localID of the doc look like?21:32
waiganiright now it is: "m#<machineid>#n#<networkname>21:33
waiganiif we update the quires to use the fields, should we let the localID just be generated by mongo?21:34
cmarsbodie_, i've seen that firewaller bug as well, intermittently21:34
cmarsbodie_, is it fairly repeatable for you?21:34
cmarsbodie_, what version go compiler are you using21:35
bodie_cmars, I wouldn't call it repeatable, but I've seen it I think three times now21:35
bodie_cmars, 1.3.321:35
cmarsbodie_, i'm using 1.3, and mgz just mentioned this could be a map ordering issue21:35
waiganithumper/menn0: just looking at how portsGlobalKey is used ...21:35
bodie_cmars, that might make sense.  should be a SameContents, perhaps21:36
mgzwould explain why bot and others havenb't seen it, small maps are deterministically ordered on 1.221:36
mgzone of you needs to file a bug :P21:36
cmarsbodie_, firewallerSuite.TestGetMachinePorts ?21:40
bodie_cmars, aye21:41
cmarsbodie_, i'll open it21:41
bodie_much appreciated cmars, I'm already way over EOD trying to get something else landed21:41
ericsnowthumper: when would be a good time to talk about MESS and backups?21:48
waiganithumper/menn0: machineid and networkname need to be in the id for the watcher22:15
menn0waigani: sorry, I don't actually know what you're doing22:16
thumperwaigani: I didn't say to take them out of the id22:16
thumperwaigani: just make sure they are also available outside the id22:16
menn0waigani: why did you want to remove machineID and NetworkName from the openPorts doc?22:16
waiganithumper: right22:16
thumperlike the envuuid22:16
waiganimenn0: I misunderstood22:16
menn0ok22:16
rogpeppebodie_: tweak juju-core deps22:22
katcowallyworld: "This webpage has a redirect loop"22:24
katconot sure what's going on22:24
wallyworld:-(22:24
wallyworldi'l try opening hangout again22:24
katcowallyworld: i bet this is that stupid cookies issue i was having22:25
mgzdon't eat the stupid cookies!22:25
wallyworldchocolate chip?22:25
ericsnowperrito666: FYI, all four of those patches have now landed22:26
perrito666ericsnow: niiice, Ill start integration right away22:26
menn0thumper: how do you feel about NewEnvironment's signature changing from this:22:54
menn0NewEnvironment(env, server names.EnvironTag, owner names.UserTag, name string) (*Environment, error)22:54
menn0to this:22:54
menn0NewEnvironment(cfg *config.Config, server names.EnvironTag, owner names.UserTag, ownerPassword string) (*Environment, error)22:54
thumperso it creates an environment uuid?22:55
thumperwhy have ownerpassword?22:55
thumperand why remove the name?22:55
menn0the name comes from the config22:56
menn0ownerpassword is needed to set up the owner user22:56
menn0the uuid also comes from the config22:56
menn0thumper: ^22:56
thumperthe owner must already exist22:56
menn0you're right22:57
menn0createInitialUserOp should only be done by Initialize and not by NewEnvironment22:57
menn0i'll fix that22:57
thumperperhaps, remove the server, and just add a comment that the environment will have the same server as the initial environment22:58
thumperthe server uuid was added to enable us to store records to remote environments22:58
thumperwhich we have no use case for right now22:58
thumpermaybe soon with cross environment relations22:58
thumperwhich will need other commands anyway22:58
thumperso...22:58
menn0that makes sense22:58
thumperNewEnvironment(cfg *config.Config, owner names.UserTag) (*Environment, error)22:59
thumperor22:59
thumperNewEnvironment(cfg *config.Config, owner names.UserTag) (*Environment, *State, error)22:59
menn0I was wondering about returning the new state22:59
thumperso it returns a *State that would operate in that env?22:59
menn0but it's easy to get with State.ForEnviron22:59
thumpersure23:00
menn0and NewEnvironment doesn't need to create it itself23:00
menn0so it's probably outside its responsibility to return it23:00
menn0thumper: thanks I'll run with this23:03
thumperok23:03
thumpercool23:03
thumperalexisb: are we meeting today?23:03
alexisbyes23:04
thumperk, be there in a sec23:05
wallyworldthumper: when you finished your meeting, i need to talk about bug 139274523:12
mupBug #1392745: juju run doesn't after upgrade to 1.20.11 <canonical-bootstack> <regression> <run> <upgrade-juju> <juju-core:Triaged> <juju-core 1.21:Triaged> <https://launchpad.net/bugs/1392745>23:12
thumper:-(23:12
=== kadams54-away is now known as kadams54
wallyworldanastasiamac: review done, let me know if you have questions23:58

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