=== kadams54 is now known as kadams54-away [00:10] thumper: menn0 waigani i've been working on some visualisation tools to help me [00:10] https://twitter.com/davecheney/status/534135954420678656 [00:10] here is an example [00:10] dealing with something the size of juju/state is still daunting [00:10] nice! [00:10] that is cmd/juju [00:10] sorery [00:10] cmd/go [00:11] * menn0 is still waiting for twitter to load the image [00:12] davecheney: is that d3? [00:12] wow that's awesome [00:12] what are you using to do the rendering? === kadams54-away is now known as kadams54 [00:13] waigani: d3js.org [00:13] thought so [00:26] http://imgur.com/t57nMob [00:26] ^ juju/state [00:26] menn0: can I talk over the allwatcher store with you? I can see two ways to go [00:26] http://imgur.com/3oErTdQ [00:26] juju state, from the perspective of mgo/v2 [00:26] davecheney: omg... [00:28] waigani: i was about to go for lunch... [00:28] waigani: did you want to hangout/ [00:28] menn0: should be a quick question [00:28] menn0: standup hangout? [00:28] waigani: ok === kadams54 is now known as kadams54-away [00:30] http://i.imgur.com/ioxieyg.png [00:30] something to consider with the juju/version pacakge [00:33] http://imgur.com/d9xNtae [00:33] who's using loggo, and who isnt ... [00:35] davecheney: so the picture is showing what? [00:35] what are the lines? [00:35] and how do you know? [00:35] is there meaning to the relative thickness? [00:36] thumper: it's a bit hard to tell [00:36] davecheney: it is almost like you need two graphs rather than one [00:36] i stole most of the code from an example comparing people who like different hair color [00:36] i'll keep working on it tonight [00:37] kinda cool picture though [00:37] at leats it tells me who is relaed to what [00:37] * thumper nods [00:37] like juju/version imports bson ... [00:38] http://imgur.com/UKYv5j3 [00:38] this is all the things that importing juju/version brings in [00:39] which seems excessive [00:39] like why does juju/version depend on sync ... [00:40] http://imgur.com/nmfRE4r [00:45] davecheney: these look pretty! [00:45] davecheney: are they available on the fly? [00:45] davecheney: kinf of like "graph usage of blah"? [00:46] s/kinf/kind [00:48] anastasiamac: go get github.com/davecheney/junk/glyph [00:48] $GOPATH/bin/glyph [00:48] then go to localhost:8080/chord/cmd/go [00:48] it works just like godoc, the first url is the visualisation, the rest is a package path to start from [00:48] be warned [00:48] it is very very slow [00:48] took two minutes to generate the first image [00:49] davecheney: it's monday... i feel slow too :-) [00:49] i'm doing to much processing in the browser [00:49] i need to offload that to the backend [00:51] davecheney: thnx :-) visually seeing dependencies is enormously helpful! [00:51] that's why i built this [00:51] i need it to help me [00:52] davecheney: juju/version brings in io (to read the file), io brings in sync [00:52] davecheney: easy to pull in heaps [00:52] versino is also bringing in sync directly [00:52] which is odd [00:53] hmm [00:53] no it isnt [00:53] ok [00:53] i screwed up [00:53] doesn't surprise me [01:03] davecheney: just checking that we both aren't sitting in a different hangout with the same name [01:03] google gets things wrong occasionally [01:04] thumper: nope, my bad [01:04] i ingored the reminder [01:04] be there in a sec === kadams54-away is now known as kadams54 [01:21] thumper: http://godoc.org/github.com/juju/juju/state?import-graph [01:23] thumper: http://imgur.com/TT3xgeD [01:25] thumper: http://imgur.com/2iKJC2O [01:58] davecheney: https://github.com/juju/errors/pull/13 [01:58] * thumper takes broken kid to physio [02:41] waigani: http://reviews.vapour.ws/r/471/ reviewed [03:30] wallyworld_: when you have a minute, can you PTAL at http://reviews.vapour.ws/r/442/ [03:30] sure [03:31] wallyworld_: I've parameterised the function to list block devices in worker/diskmanager.NewWorker [03:31] with a default [03:31] jujud tests now override that default [03:38] axw: looks good, now tests will pass in a container [03:40] yep [03:40] thanks [03:49] menn0: thanks for the review. testing the constraints upgrade, I've expected three records because there is a preexisting environment constraints doc [03:49] menn0: i.e. it has a local i.d. of "e" - the global env key [03:51] wallyworld_: hey, can I get you to look at this for me? https://github.com/juju/loggo/pull/7/files [03:51] sure [04:00] thumper: the location stuff is just for tests to avoid hard coding line numbers? [04:00] wallyworld_: exactly [04:00] stolen from the errors tests, which I got from rog [04:00] can you add a doc comment then so the next person doesn't need to fiure it out? [04:00] sure [04:00] also, i think then the test commnt is wrong [04:00] as it still mentions line number fragility [04:01] ah... will fix [04:04] wallyworld_: changes pushed [04:04] +1 [04:05] cheers [04:10] waigani: of course... I didn't think of that [04:13] menn0: cool, so good to ship? [04:13] I think so [04:14] just wondering if the test should check that the "e" key is still in good shape post migration [04:14] waigani: ^ [04:14] menn0: shesh, just caught me - mouse was over the 'commit' button [04:15] wallyworld_: and a useful one: https://github.com/juju/loggo/pull/6/files [04:16] waigani: it's probably ok [04:16] menn0: I do check that in TestAddEnvUUIDToConstraintsIdempotent [04:16] menn0: so it is covered. good enough? [04:17] waigani: 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 confusion [04:17] waigani: then merge away [04:17] menn0: will do [04:18] thumper: so State.NewEnvironment doesn't give you an environment you can do anything with [04:18] no [04:18] menn0: it just adds an environment into the collection [04:18] menn0: happy if you want to change that [04:18] menn0: it probably isn't used in many places [04:18] thumper: so how to developers decide to use the Stack vs non Stack variants of the various log methods [04:19] shouldn't they just use Warningf() and a log setting decides [04:19] wallyworld_: if you are logging a message, you go `logger.Infof("some garbage")` [04:19] thumper: it isn't used anywhere, except tests [04:19] wallyworld_: the InfoStackf takes an error as the first param [04:20] wallyworld_: magical introspection of the args... params would be a bit too magic [04:20] thumper: so basically we need Initialize (in open.go) to happen afterwards right? [04:20] wallyworld_: if you want the error stack logged, call the stack message [04:20] menn0: if you want to use it, yes [04:20] ok [04:20] i'm not sure then we need all the variants [04:21] wallyworld_: there are many many occurrances of logging where we go `logger.Warningf("something horrible: %v", err)` [04:21] would we really want to see a stack trace for an Info message [04:21] I'm thinking that it would be `logger.WarningStackf(err, "something horrible")` [04:21] wallyworld_: I don't want to make that call [04:21] wallyworld_: someone may want a stack at a different level [04:22] if they need stack trace with an info there's something wrong [04:22] but ok [04:22] i think this will be absed [04:23] abused? [04:23] yeah [04:23] I'm not sure.. I guess time will tell [04:23] thumper: Initialize doesn't quite work as it dials it's own mongo connection and create its own uuid etc [04:23] our log output will become oven more of a firehose [04:23] I have a better one coming [04:23] thumper: I will do some refactoring [04:23] menn0: ack [04:24] thumper: what do we do when our log files are full of stack traces and even harder to read than they are now [04:25] wallyworld_: I think this becomes one of those pragmatic things, don't record a stack for an expected error [04:26] i think we need x-team collaboration or a policy that reviewers are aware of so that this will not be misused [04:27] clear guidelines on what an "expected" error is [04:27] what's the driver for this? [04:27] is there an issue that is being solved? [04:30] one of the issues was our logging, and that I was looking for occurrances of ": %v" in the codebase [04:30] I saw that many were to log errors [04:30] we now catch error stack info which is important for debugging [04:30] that was the rationale [04:31] wallyworld_: along with this one: https://github.com/juju/testing/pull/38/files [04:31] i content you don't need the error stack 99% of the time [04:32] and if you do, it is for debugging, and not warning or error or info output [04:32] i have very rarely if ever wished to have the stack trace when debugging a juju issue [04:32] hmm... [04:33] sorry for being -1 on this, i just see a whole lot of extra logging for little benefit [04:33] but that's just IMHO [04:34] I'm happy to hold off landing that one until we talk as a team through it more [04:34] I can take it to the list [04:34] i'd personally be happier if this were a trace level thing that could be turned on when needed [04:34] but probably tomorrow [04:34] wallyworld_: or just a separate method: [04:34] logger.StackTrace(err) [04:34] although... [04:34] so long as it can be turned on/off [04:34] I had thought of having other helper methods: [04:35] one to get a limited stack trace of where you are [04:35] the other to get the stack trace of the error you have [04:35] this could be useful when developing (not foe me, but others might like it) [04:36] but it should not get into our std log output by default [04:36] happy to concede if the majority want it [04:36] I'll take this one to the list [04:36] ta [04:36] the other is `jc.IsNil` [04:36] ok [04:37] which 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] now, that is useful [04:37] which I have wanted for a while [04:38] * thumper goes to make dinner for the little beings that live at his house [04:50] axw: can you take a look at https://github.com/juju/juju/pull/1157 [04:50] looking [04:54] wwitzel3: I can't spot the problem that was fixed - can you please describe? [04:54] axw: well this was actually done before you merge landed adding in the break. [04:56] wtf? [04:56] wwitzel3: so is this really necessary then? there are tests for zone selection already, TestStartInstanceDistribution.* [04:57] I 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] also, the "continue" in the refactored function should still do an index check, otherwise the message is wrong on the last iteration [04:57] http://reviews.vapour.ws/r/473/diff/ [04:57] axw: 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:58] other than the megawatcher changes, none of those changes are mine. [04:58] wwitzel3: yes, that is a fair point [04:58] from this branch at least [04:58] axw: yeah, I think that got clipped out in a merge, I just noticed that [04:59] axw: I wanted you to give me a review on it since you did the code, but I'd stil like to land it [04:59] wwitzel3: sure. LGTM with the continue condition readded [05:01] http://imgur.com/94R6MwG [05:01] the agent package is a bit of a beast [05:01] axw: on the condition, is can I use <= instead of i+1 < ? [05:01] wwitzel3: that's fine with me [05:02] axw: 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] davecheney: looks like a DHT; it's got some extra deps in case someone removes one ;) [05:04] axw: thanks, addressed both of those [05:05] wwitzel3: thanks for making it better :) [05:05] wwitzel3: did you figure out that latest MAAS provider bug btw? last I looked you couldn't repro [05:10] menn0: something between git, github and RB crapped itself along the way, so new PR: http://reviews.vapour.ws/r/474/ [05:21] axw: yeah, the bug was their code didn't have the back port of the "break" yet. [05:21] axw: so instead of stopping after finding the right zone, it just kept running until the last zone. [05:21] axw: and it just happened their last zone was full [05:22] axw: I couldn't repo at first because my last zone had a free slot. [05:23] wwitzel3: ahh I see, thanks [05:28] axw: 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 tomorrow [05:31] wwitzel3: nothing jumps out === kadams54 is now known as kadams54-away [06:09] axw: could u plz clarify juju convention when creating pair of corresponding commands? [06:09] axw: do they sit in one file like in environment.go - set/unset [06:10] axw: do they sit in different files like addmachine.go and removemachine.go? [06:10] anastasiamac: I think most people prefer one command per file [06:10] axw: sorry ;-( [06:10] set/get for environment [06:11] axw: k.. one file is gr8 ;-) [06:11] axw: thnx [06:11] anastasiamac: nps [06:11] axw: so where would u put shared functionality? [06:12] axw: i'd like to avoid duplicate code [06:12] anastasiamac: I'd just stick all common functionality in one or the other, doesn't matter which... just as long as it's together [06:13] axw: k. sure :-) thnx [07:10] jam: you ok for the juju status meeting later? [07:28] wallyworld_: I should be able to be around [07:29] great, we need to get the spec approved, and there's a fair bit of disagreement [07:31] dimitern: 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:32] axw, because the VPC API is a newer version than the classic api it otherwise uses [07:32] axw, and yes, I was being a bit paranoid :) [07:32] dimitern: I realise.. I meant, why not use the newer version on all [07:32] ok [07:33] dimitern: I'm just asking because I'm going to have to bump the version we use to support allocating additional EBS volumes [07:34] axw, sure, if you need to, but please sync up with niemeyer [07:34] dimitern: will do [07:48] wallyworld_: any news about the remaining critical bugs ? Do you need some extra manpower to work on them ? [07:49] like https://bugs.launchpad.net/juju-core/+bug/1392544 isn't assigned yet [07:49] Bug #1392544: juju get shows default value true [07:49] jam: i poked tim about bug 1392745 as i suspect he'll be across it, but he deferred till tomorrow [07:49] Bug #1392745: juju run doesn't after upgrade to 1.20.11 [07:50] the local provider one i'm going to start looking at [07:50] the default value one is not assigned yet, if you had someone who could look that would be good [07:50] otherwise i'll do tomorrow [07:50] wallyworld_: k, if you want someone on my team, I'm perfectly happy having us polishing a release branch [07:51] ok, thanks, maybe the default value one then [07:52] morning all [07:53] wallyworld_: 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:54] jam: tim will do the 1.20.11 juju run one [07:55] i haven't look in default at the default value one [07:55] in detail [07:55] ah, ok [07:56] bug 1392544 should just be some generic snafu maybe [07:56] Bug #1392544: juju get shows default value true [07:56] wallyworld_: yeah. It looks like something is casting everything to a generic boolean type [07:57] wallyworld_: I've tasked dimitern with it [07:57] the other one - the local provider log issue - is likely tim's aread also, but i'll did into it [07:57] ty [07:57] and the maas one is well in hand [08:03] * fwereade_ was up late last night, is going for a bit of a walk before he starts properly [08:22] fwereade_: 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 look === alexlist` is now known as alexlist === psivaa-holiday is now known as psivaa [10:00] fwereade_, ping [10:00] dimitern, pong [10:01] fwereade_, 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] Bug #1392544: juju get shows default value true [10:02] 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] TheMue: voidspace: standup ? [10:03] fwereade_, so if "default: true" it means yeah the respective config setting is not set (i.e. uses the default value) ? [10:03] dimitern, yeah [10:04] dimitern, looking at that bug I suspect it's a documentation issue more than anything [10:04] fwereade_, 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 values [10:04] dimitern, thanks [10:04] dimitern, don't close the bug without fixing the docs, though, please :) [10:04] jam: oops [10:04] jam: omw [10:04] fwereade_, sure [10:05] dimitern, <3 [10:06] fwereade_: so for compat reasons, can we ever change that to "is-default" rather than "default" confusing people ? [10:08] jam, yes and no. no for `juju get`; yes for `juju service get`, which I'll need to sync up with thumper on [10:09] 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] jam, so a sane implementation would probably just skip the ones with default values [10:09] jam, and a --schema flag or something could tell you what the defaults were [10:10] fwereade_: 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 it [10:10] jam, that is not perfect for sure [10:10] I've used it often to figure out what I *could* set [10:10] jam, I agree we do [10:10] fwereade_: you'd prefer the minimal form as the default output ? [10:10] jam, but the asymetry between get and set is really kinda nasty [10:11] jam, I *think* so, yeah -- in my mind the main tension is in what happens if you get, upgrade, set [10:11] jam, and whether that final set shoudl change values or not [10:11] jam, (assuming it's not rendered irrelevant by the original get having values that are invalid/unknown post-upgrade [10:11] ) [10:12] jam, not saying it should be *hard* to see the possibilities, but I don't think it's the *most* important thing [10:13] fwereade_: well, I do think it is the primary use case of get, isn't it ? (what are all the current settintgs) [10:13] fwereade_: or do you feel it is more the way you transfer settings to some other place [10:14] jam, `get --all` feels appropriate for "and include the defaults please" -- it's more consistent with charm-side config-get apart from anything else [10:15] jam, and `get --schema` feels appropriate for "tell me what the possible keys and their meanings are" [10:15] jam, and I'm not automatically opposed to some nice human-readable combination of the two [10:15] jam, but it feels like a lot of disparate info to cleanly fit into the default output [10:16] jam, that's what we signally failed to do with the current implementation ;) [10:26] morning [10:29] fwereade_, 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 setting [10:30] dimitern, that's good anyway [10:30] dimitern, not really much less confusing [10:30] dimitern, but at least working as intended [10:31] fwereade_, 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:32] dimitern, um, some documentation ;p [10:32] fwereade_, because this is what I think the "fix" for that bug [10:32] dimitern, concur [10:32] fwereade_, barely :) [10:32] dimitern, seriously, all it has is a "purpose" [10:32] dimitern, give it a Doc as well [10:32] fwereade_, yeah, a lot of commands (simpler ones) are like that [10:32] dimitern, indeed [10:33] dimitern, this is not actually a good thing ;) [10:33] fwereade_, ok, I'll describe the output in the Doc of get [10:35] dimitern, cool, thanks [11:33] fwereade_, trivial review (mostly proof-reading I guess) ? https://reviews.vapour.ws/r/477/diff/ [11:35] dimitern, ship it [11:35] fwereade_, cheers! [11:35] dimitern, hey, btw, apparently malta played football against bulgaria and didn't lose, I feel quite unwarrantedly smug on behalf of my place of residence [11:36] fwereade_, :) yeah, I've heard of that [11:36] fwereade_, and also BG won 2nd place in the kids eurovision in malta [11:36] dimitern, cool, I didn't know that until today either :) [11:37] fwereade_, btw can you actually click on Ship it! ? :) [11:37] fwereade_, ah, sorry - I've just seen it, it must've been lagging behind [11:42] niedbalski, ping [11:47] voidspace, jam, can any of you please approve https://reviews.vapour.ws/r/478/ ? it's the same fix for bug 1392544, this time for master [11:47] Bug #1392544: juju get shows default value true [11:49] dimitern: looking [11:49] voidspace, ta [11:51] dimitern: lgtm [11:51] voidspace, thanks [11:53] voidspace, did you click "Ship It!" btw? [11:53] dimitern: yes [11:54] dimitern: I really did [11:54] dimitern: I've done it twice, but it doesn't seem to be showing up [11:54] voidspace, yeah, weird... [11:54] dimitern: I got an "untrusted connection" warning when I went to RB too [11:54] voidspace, anyway, ta, I'll ping eric later about this [11:55] dimitern: if I use http it works [11:55] dimitern: https fails [11:55] odd [11:55] dimitern: Ship It! now visible anyway [11:56] voidspace, ha! I've seen this as well - using https I had to add an exception because the cert was self-signed most likely [11:56] dimitern: yeah, I added the exception ok [11:56] dimitern: but if I use https then ship it doesn't work [11:57] voidspace, really odd [11:57] rogpeppe3: ping [11:57] rogpeppe2: ping [11:57] rogpeppe1: ping [11:57] voidspace: pong === rogpeppe3 is now known as rogpeppe [11:57] rogpeppe3: hello Roger [11:57] voidspace: hiya [11:57] rogpeppe: morning [11:57] voidspace: how's it going? [11:57] rogpeppe: is there a tool for applying changes to go code that works by ast rewriting [11:57] rogpeppe: like "go fix" but a general tool [11:57] voidspace: gofmt :) [11:58] rogpeppe: ah! [11:58] rogpeppe: cool, thanks [11:58] voidspace: check out gofmt -r [11:58] rogpeppe: all is good, how's you? [11:58] voidspace: but it depends what you want to do [11:58] rogpeppe: do I need "gofmt" rather than "go fmt" [11:58] voidspace: excellent, thanks [11:58] voidspace: go fmt invokes gofmt [11:58] rogpeppe: I want to rename an Interface method and all uses [11:58] rogpeppe: ah, ok - I understood there were some historical differences [11:59] voidspace: you possibly want to (brand new) gorename tool actually [11:59] voidspace: the interface to go fmt is in terms of packages; the interface to gofmt is stdin/stdout and files [11:59] rogpeppe: ok [12:00] voidspace: i haven't succeeded in using it on a large code base yet though [12:00] rogpeppe: ah :-) [12:00] voidspace: but take a look at https://groups.google.com/forum/#!topic/golang-nuts/96hGPXYfqsM [12:00] rogpeppe: I'm there already [12:00] voidspace: if the method name is distinctive, then gofmt -r will probably do your job ok [12:05] hmmm... gorename can't find the environs package it seems [12:05] I'll try go fmt [12:05] jam: meeting? [12:05] wallyworld: omw [12:06] wallyworld: .... firefox just froze, be there in a sec [12:06] np [12:23] dimitern: when you get a chance http://reviews.vapour.ws/r/479/ [12:23] dimitern: it builds fine (so is probably correct), just running all tests [12:23] dimitern: I used gofmt, but ended up having to use sed to fix comments (and then manually unfix some of things sed did) [12:24] dimitern: so I might as well just have started with sed... [12:26] voidspace, :) ok, looking [12:27] dimitern: ooh [12:27] dimitern: "Subnets returns basic information about all networks known" [12:27] dimitern: should probably be [12:28] dimitern: Subnets returns basic information about all subnets known [12:28] dimitern: I'll make that change [12:28] voidspace, yeah, I've just added a comment for this [12:29] dimitern: pushed [12:29] dimitern: I don't think you've published that comment yet anyway [12:30] voidspace, LGTM, just sent my comment [12:30] dimitern: cool, thanks [13:04] voidspace, a bit of a problem [13:04] voidspace, did you remember to rename ListNetworks to Subnets in environs/interface.go ? [13:05] voidspace, because I see lots of build errors like *joyentEnviron does not implement environs.Environ (missing ListNetworks method) [13:05] voidspace, I can't even say how this managed to land, because it does not build :) [13:24] voidspace, ah, sorry - something was messed up with my local git repo - now it seems to work and there are no failures [14:11] wwitzel3, is bug 1392390 not fix committed in master? [14:11] Bug #1392390: maas zone selected for deployment that is occupied [14:12] fwereade_: do we check anywhere that a charm must have an install and/or a start hook? [14:12] rogpeppe, nope [14:13] fwereade_: ok, cool [14:13] fwereade_: i could've sworn it did, but couldn't find the code [14:13] wwitzel3: is nate around? [14:19] mgz, wallyworld out of disk space on CI build server? [14:20] jw4: just retry [14:20] kk [14:20] tx wallyworld [14:20] happens sometimes :-( [14:20] :) [14:21] perrito666: 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 idea [14:21] Bug #1392602: local provider agent fails to restart on reboot of host - log dir missing [14:37] jw4: it's still not clear what triggers that failure... but just retrying works [14:38] mgz: yeah weird. I've $$retried$$ and so far it's looking good [14:38] mgz: tx [14:39] mgz: derp... now I get "failed to find "mongod" [14:39] >_< [14:39] fun [14:39] jw4: I'll investigate, also seems like an 'ec2 is ill' type of issue [14:39] bummer [14:40] thx mgz [14:40] mgz: shall I $$retry$$ or wait? [14:40] jw4: this one is just "no reachable servers" no? an intermittent test failure. [14:40] mgz: yeah [14:41] though... I agree I've not seen MongoSuite.TestAddRemoveSet fail quite like that before [14:43] mgz: lol it was because the build number was '1337' [14:43] ;) [14:43] http://paste.ubuntu.com/9057111/ [14:43] jw4: send it through again [14:44] k [14:49] sinzui: 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] wwitzel3, thank you for following up === tvansteenburgh1 is now known as tvansteenburgh [14:57] wwitzel3: natefinch ericsnow Ill be a couple of mins later, I am hogging my bw with a deploy [14:58] k [15:05] wwitzel3: ping? [15:05] natefinch: yep, sorry [15:16] natefinch, I think bug 1392745 needs to attention, can you find someone to look into it? I amd jjo can gather information as needed [15:16] Bug #1392745: juju run doesn't after upgrade to 1.20.11 [15:16] natefinch, and I can offer access the the juju-ci3 env if someone needs to be on an affected env [15:17] jw4: you're a lucky one today [15:17] latest run, not seen a failure on this test before... [15:17] FAIL: metricmanager_test.go:20: MetricManagerSuite.TestRunner [15:17] looks like it's timing dependent though [15:22] jw4: test you added, so probably needs fixing? [15:23] wait... is that run not yours? I am confused [15:23] mattyw: ^ [15:24] mgz, ah shit - I'll take a look, didn't realise that test had landed yet - probably only landed 10 minutes ago [15:24] hmm; I'll investigate... I don't think it was mine [15:25] mgz, jw4 it's all good [15:25] mgz, jw4 it's failed trying to land the branch that test was added in - so the tests are doing their job [15:25] mattyw: cool, tx! [15:25] I'll try mine again for the fourth time [15:26] jw4, I don't think you'd have seen that error? looks like my branch hasn't landed [15:26] mattyw: right - my integration builds were failing due to space issues on the ci server [15:27] yeah, I'd just assumed the in-progress landing was jw4's again, but it was mattyw's, hence the confusion, sorry :) [15:27] mgz: no worries - nice chat :) [15:28] * perrito666 is told that amazon will actually ship ram to his country without the 1 month wait in customs and he grins [15:28] perrito666: real live rams? [15:29] mgz: well, they will be alive when shipped [15:36] rick_h_: btw, I loved the composition on rog/uros pic on your post [15:37] perrito666: ty :) was playing with my fancy lens during the sprint a lot === kadams54 is now known as kadams54-away === kadams54-away is now known as kadams54 [15:58] anyone here familiar at all with gomaasapi ? [15:59] voidspace: I have been around there but most likely dont hve enough info to help youi [15:59] perrito666: :-) [15:59] perrito666: I need to call the api to claim a static ip address [15:59] voidspace: just ask the question and we can see [15:59] I am doing... [16:00] perrito666: I believe it looks like the following [16:00] ipaddresses := environ.getMAASClient().GetSubObject("ipaddresses") [16:00] _, err = ipaddresses.CallPost("", params) [16:00] (response is not useful - either it succeeds or we get an error) [16:00] perrito666: it's that empty string as the first argument to CallPost that bothers me [16:00] perrito666: that's the "operation" parameter [16:00] perrito666: but there's no operation here [16:00] voidspace: ah I have dealt with it [16:01] it's a post to the ipaddresses api end point [16:01] perrito666: right - have you called any endpoints without operations? [16:01] voidspace: you are dealing with a restful api there you not always have an op [16:01] it looks odd [16:01] perrito666: right [16:01] I guess I have to try it :-) [16:01] perrito666: I have a working maas server - I'll whip up some code to check it [16:01] perrito666: thanks anyway [16:02] voidspace: so iirc that translates to /path/to/node?operation [16:02] perrito666: this particularcall is directly paddresses/ [16:03] no operation and no node id [16:03] voidspace: ahh addresses yes, that one is specially ugly [16:03] hold a sec, I was around there not long ago [16:03] perrito666: ooh, I might be wrong [16:03] perrito666: the GET is without an operation [16:03] perrito666: looks like it's "reserve" [16:03] POST /api/1.0/ipaddresses/ op=reserve [16:04] my mistake then :-) [16:04] voidspace: you did look at http://maas.ubuntu.com/docs/api.html#ip-addresses right? [16:04] perrito666: I did... [16:04] perrito666: I think I looked at the GET by mistake :-D [16:04] just looked now and seen "reserve" is the op... [16:04] perrito666: thanks [16:05] voidspace: heh yes, happened to me too :p also there are a few with similar names so beware of not getting the wrong endpoint :p [16:47] hey, 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:48] katco: if it's not a giant map, I wouldn't worry about resizing [16:49] so, likely deleting makes better logical sense and is less likely to result in surprising bugs [16:49] mgz: kind of thinking that as well [16:49] mgz: b/c i would expect for people to be checking for "ok", not != nil [16:50] yup [16:50] cool, ty sir! [16:50] mgz: you've given me the confirmation bias that upholds my world-view! ;) [16:52] :) [16:53] katco: definitely delete. Don't prematurely optimize... just do the most simple and straightforward thing . [16:54] natefinch: i recognize and applaud your agreement with me. [16:54] natefinch: seriously, thanks for chiming in ;) [16:55] * natefinch is the king of chiming in. ;) [16:55] haha === tasdomas` is now known as tasdomas [18:24] g'night all === kadams54 is now known as kadams54-away [18:59] 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 juju [18:59] I expect importing a personal library would be unkosher [19:06] who could tell me where to put such things? e.g. a method for coercing map[interface{}]interface{} to map[string]interface{} [19:07] I'm kinda tempted just to open a PR with a personal import and see if it flies :S === liam_ is now known as Guest63751 [20:07] it looks like charm master breaks its own tests [20:09] rogpeppe, config_test line 408: YAML error: reflect: reflect.Value.Set using unaddressable value [20:09] maybe it's an issue with my deps [20:10] doesn't seem to be === urulama is now known as urulama___ [20:13] https://github.com/juju/charm/pull/80 rogpeppe [20:13] one-line fix [20:13] not sure if this is how it *should* work, but it patches the breakage [20:18] ah [20:18] I see [20:19] my charm master is out of sync with upstream because my upstream is gopkg.in/juju/charm.v4 [20:21] bodie_: oops. looks like juju-core needs latest version of yaml package [20:21] bodie_: i think it should anyway - if you could do that, i'd be happy :) [20:22] bodie_: i'm not here BTW :) [20:22] rogpeppe, ack, so tweak the charm or the deps? [20:22] er, rogpeppe's IRC away bot [20:26] heads up for juju-core... talking about server moving to systemd, which means our dynamically upstart jobs will need adapting for vivid [20:27] thumper: ping [20:27] ericsnow: hey [20:28] thumper: I've addressed just about everything on http://reviews.vapour.ws/r/346/ [20:28] ericsnow: ok, will look again [20:28] thumper: left one open issue [20:28] thumper: thanks === kadams54 is now known as kadams54-away [20:40] ericsnow: 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=2 [20:40] ericsnow: I'm assuming rb shouldn't do this? [20:42] thumper: it's because the branch depended on another branch [20:42] ah [20:42] ericsnow: ship it! [20:42] thumper: try diff'ing between 14 (where you last reviewed) and the latest [20:42] thumper: okay! [20:57] well. i now know that my machine does not like spawning 100,000 instances of this test. [21:00] heh [21:01] 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 test [21:03] i didn't expect it to become completely unresponsive... i thought the kernel scheduler was better than that [21:03] 608s before it started giving me back control lol [21:04] kind of. ugh. [21:06] or gosh... maybe it's the window manager... [21:07] ssh is working fine [21:07] cpu and mem aren't under load... [21:17] * thumper goes to lie down for a bit [21:32] thumper/menn0: after I take out the machineID and NetworkName from the openPorts doc, what should the localID of the doc look like? [21:33] right now it is: "m##n# [21:34] if we update the quires to use the fields, should we let the localID just be generated by mongo? [21:34] bodie_, i've seen that firewaller bug as well, intermittently [21:34] bodie_, is it fairly repeatable for you? [21:35] bodie_, what version go compiler are you using [21:35] cmars, I wouldn't call it repeatable, but I've seen it I think three times now [21:35] cmars, 1.3.3 [21:35] bodie_, i'm using 1.3, and mgz just mentioned this could be a map ordering issue [21:35] thumper/menn0: just looking at how portsGlobalKey is used ... [21:36] cmars, that might make sense. should be a SameContents, perhaps [21:36] would explain why bot and others havenb't seen it, small maps are deterministically ordered on 1.2 [21:36] one of you needs to file a bug :P [21:40] bodie_, firewallerSuite.TestGetMachinePorts ? [21:41] cmars, aye [21:41] bodie_, i'll open it [21:41] much appreciated cmars, I'm already way over EOD trying to get something else landed [21:48] thumper: when would be a good time to talk about MESS and backups? [22:15] thumper/menn0: machineid and networkname need to be in the id for the watcher [22:16] waigani: sorry, I don't actually know what you're doing [22:16] waigani: I didn't say to take them out of the id [22:16] waigani: just make sure they are also available outside the id [22:16] waigani: why did you want to remove machineID and NetworkName from the openPorts doc? [22:16] thumper: right [22:16] like the envuuid [22:16] menn0: I misunderstood [22:16] ok [22:22] bodie_: tweak juju-core deps [22:24] wallyworld: "This webpage has a redirect loop" [22:24] not sure what's going on [22:24] :-( [22:24] i'l try opening hangout again [22:25] wallyworld: i bet this is that stupid cookies issue i was having [22:25] don't eat the stupid cookies! [22:25] chocolate chip? [22:26] perrito666: FYI, all four of those patches have now landed [22:26] ericsnow: niiice, Ill start integration right away [22:54] thumper: how do you feel about NewEnvironment's signature changing from this: [22:54] NewEnvironment(env, server names.EnvironTag, owner names.UserTag, name string) (*Environment, error) [22:54] to this: [22:54] NewEnvironment(cfg *config.Config, server names.EnvironTag, owner names.UserTag, ownerPassword string) (*Environment, error) [22:55] so it creates an environment uuid? [22:55] why have ownerpassword? [22:55] and why remove the name? [22:56] the name comes from the config [22:56] ownerpassword is needed to set up the owner user [22:56] the uuid also comes from the config [22:56] thumper: ^ [22:56] the owner must already exist [22:57] you're right [22:57] createInitialUserOp should only be done by Initialize and not by NewEnvironment [22:57] i'll fix that [22:58] perhaps, remove the server, and just add a comment that the environment will have the same server as the initial environment [22:58] the server uuid was added to enable us to store records to remote environments [22:58] which we have no use case for right now [22:58] maybe soon with cross environment relations [22:58] which will need other commands anyway [22:58] so... [22:58] that makes sense [22:59] NewEnvironment(cfg *config.Config, owner names.UserTag) (*Environment, error) [22:59] or [22:59] NewEnvironment(cfg *config.Config, owner names.UserTag) (*Environment, *State, error) [22:59] I was wondering about returning the new state [22:59] so it returns a *State that would operate in that env? [22:59] but it's easy to get with State.ForEnviron [23:00] sure [23:00] and NewEnvironment doesn't need to create it itself [23:00] so it's probably outside its responsibility to return it [23:03] thumper: thanks I'll run with this [23:03] ok [23:03] cool [23:03] alexisb: are we meeting today? [23:04] yes [23:05] k, be there in a sec [23:12] thumper: when you finished your meeting, i need to talk about bug 1392745 [23:12] Bug #1392745: juju run doesn't after upgrade to 1.20.11 [23:12] :-( === kadams54-away is now known as kadams54 [23:58] anastasiamac: review done, let me know if you have questions