[00:05] katco: ping [00:08] anastasiamac: howdy === kadams54 is now known as kadams54-away [02:08] wallyworld, you around? [02:08] yes [02:09] do you need to discuss anything with me before next week? [02:09] if so I have time for a hangout [02:09] hmmm [02:32] * thumper hmmms... [02:32] * thumper is looking at the blocked command stuff [02:32] wallyworld: can we talk today? [02:32] sure [02:32] wallyworld: I have a meeting friday avo [02:33] ok, i'm free whenever [02:33] now? [02:34] jump in our 1:1 hangout [02:34] ok [02:54] axw: ping [02:55] ericsnow: pong [02:55] axw: I've put up a first stab at "unit-get zone": http://reviews.vapour.ws/r/532/ [02:55] axw: FYI [02:55] ericsnow: thanks, I saw. I'm OCR tomorrow - okay to wait till then? [02:56] axw: no hurry [02:57] axw: just wanted to make sure it got your attention at some point (you were involved in the AZ discussions, right?) [02:57] ericsnow: yep, I implemented 99% of it [02:58] thanks. on brief perusal it looks good [02:58] axw: cool [03:00] axw: I was able to make good use of ZonedEnviron.InstanceAvailabilityZoneNames() :) [03:01] * ericsnow shuts down for the night [03:02] ericsnow: night === linstatsdr_ is now known as LinStatSDR [03:13] anastasiamac: wallyworld is just being mean... [03:14] thumper: really?... [03:15] wallyworld: u wouldnt ;) [03:16] * wallyworld would :-P [03:16] wallyworld: so do i continue with block changes or shall i wait for executive decision? [03:53] wallyworld: anastasiamac: it'll be interesting to see what the help text will look like for block/unblock when we have the supercommands in place, i.e. "juju machine remove", "juju environment destroy" etc [03:56] thumper: wallyworld: juju block destroy|remove|change [03:56] thumper: wallyworld: :P [03:57] * wallyworld otp [03:58] anastasiamac: seems fine to me... [03:58] thumper: this can be done before supercommands ;-) [03:59] thumper: shall i? [03:59] anastasiamac: double check with wallyworld, but I'm +1 [03:59] thumper: :) thnx [04:12] anastasiamac: juju block destroy-environment i think is still what we want [04:13] axw: got a minute? [04:18] thumper: just about to eat lunch.. what's up? [04:18] axw: looking at the tests in cmd/juju/addmachine_test.go [04:19] axw: it looks like apiserver/client/client_test.go covers it all [04:19] axw: do you see any reason not to mock out the api all together? [04:19] axw: I'm messing with add and remove machine commands and moving them to a subcommand to test out top level aliases to subcommands (and deprecations) [04:20] thumper: I'd like that, but I know some people would like them to remain like that so we have end-to-end integration tests [04:20] axw: fooey [04:20] my preference would be to mock there and have integration tests elsewhere [04:20] axw: what I did for the user stuff was this: [04:20] axw: everything in the user subcommand package is mocked out [04:21] args and params tested exhaustively (to make sure we pass them to the api) [04:21] one test in cmd/juju to show it is hooked up end to end [04:21] we don't need to end to end test every path [04:21] just that it is hooked up [04:21] IMO [04:21] that SGTM [04:21] coolio [04:23] thumper: so we'll have cmd/juju/machine/ ? [04:23] axw: yep [04:23] okey dokey [04:23] that's the plan [04:23] I'm using it as the test case for top level aliases [04:23] so 'juju add-machine' works as 'juju machine add' [04:23] with just some helper functions [05:28] the calm, soothing sound of my squawking UPS === kadams54_ is now known as kadams54-away [05:39] ahh that's such a beautiful sound [05:40] mine is a loud beep every 5s - just to let me know at 3-4am that the power has gone out and it needs to keep itself powered for that duration [05:40] such a helpful machine [05:40] :) [08:35] morning [08:48] morning everyone [08:55] mattyw: o/ [09:40] dimitern: ping [09:41] dimitern: should calling subnet.Destroy() on an already destroyed subnet be a no-op or an error [09:41] dimitern: looking at service it looks like an error (specifically a wrapped jujutxn.ErrNoOperations) [09:41] dimitern: so that's what I've done [09:44] voidspace, hey [09:44] dimitern: hi [09:44] voidspace, I think it usually is a no-op [09:45] voidspace, and where it isn't it should be :) [09:45] dimitern: ok, no problem [09:45] dimitern: it's very easy to change... [09:46] voidspace, ok [09:49] dimitern: http://reviews.vapour.ws/r/534/ [09:49] dimitern: "first cut", although I spent most of yesterday removing code [09:50] voidspace, looking [09:50] dimitern: it now just does the bare minimum for adding, fetching and removing subnets [09:59] voidspace: what's the idea for upgrade step for this ? [09:59] I guess mongo creates collections on the fly if they don't exist [09:59] jam: shouldn't be needed [09:59] jam: I specifically asked dimitern that yesterday [09:59] jam: and he said created on first use [10:00] voidspace, jam, yeah - that's how mongo works [10:00] dimitern: standup ? [10:24] of those online... who is least unfamiliar with the uniter? I need someone who's willing to say "ship-it" (or "that's crap fix it") on http://reviews.vapour.ws/r/527/ [10:25] TheMue, tasdomas, mattyw: I feel like each of you has half a chance of having touched it recently enough to have something of an opinion? ^^ [10:25] fwereade_, if you want an opinion I'm happy to enough to provide on [10:26] fwereade_: will take a look too, sure [10:54] wallyworld, thoughts on docstrings like "Foo helps satisfy the package.Bar interface"? upside, just one place with "official" docs, less likelihood of drift; downside, you have to look over there to understand what the method's for [10:57] fwereade_: i like "Foo helps satisy Bar interface". IDEs have click through so it's trivial to navigate to interface to see real comment [10:59] wallyworld, cool, I tend to concur [10:59] wallyworld, I got distracted half way (hmm, more like 10%) through my previous docstring pass [11:01] there is a lot for sure [11:02] jam: you joining us for storage round 2? [11:22] wallyworld: yeah, joining now, just had to get my son from the bus [11:23] wallyworld: though it looks like you've already left ? [11:23] jam: `we ended it, will reschedule for next week it that's ok [11:23] wallyworld: kd [12:15] || is defined for strings but not &&? [12:16] ah no [12:16] only the first error was reported though [12:19] * fwereade_ has a *filthy* headache that's only getting worse, going to lie down [12:21] fwereade_: :-( [12:25] voidspace, almost finished with the review - I had a chat with fwereade_ till now [12:28] dimitern: ok [12:28] dimitern: I've been working on the changes I discussed with you and the comments from jam [12:28] dimitern: although I'm not too keen on the "supersticious programming" change suggested by jam [12:29] "shouldn't we use a loop just because..." :-p [12:29] voidspace: so many places in the code where we have a transaction we put in a loop [12:29] voidspace, ah [12:29] I don't know that we need to do so here [12:30] voidspace, jam, if we have a lot of asserts it makes sense to have a buildTxn callback (implicit loop) - if it's just one assert we can go without it [12:31] I had one originally, but pulled it out [12:31] the only error possible (so far) is if the document already exists [13:00] voidspace, reviewed [13:07] dimitern: thanks [13:08] dimitern: "a few suggestions"... [13:08] ;-) [13:09] dimitern: appreciated, on the case with several of these already [13:09] voidspace, sorry :) I seem to be picking up somewhat British way of expressing myself sometimes :) [13:09] dimitern: a terrible curse [13:10] lol [14:45] jam, katco, ericsnow: can someone look into bug 1396625? if this is broken in the 1.21 branch we will need a fix backported to it [14:45] Bug #1396625: container scoped relations between 2 subordinates broken in 1.20.12 [14:46] sinzui: i'm trying to wrap up leadership before holiday, and i'm OCR today as well. [14:47] sinzui: i will take a look this afternoon if i can. [14:47] katco, sorry I am not asking any one person to fix the issue, we just need someone who can assess the regression. This may block 1.21.0 and require us ti do a 1.21.beta4 [14:48] sinzui: gotcha. i will take a look if at all possible. thanks for the heads-up :) [15:20] dimitern: are collection fields automatically lower-cased by mongo? (or mgo - from doc struct fields which are capitalized) [15:22] voidspace, yes they are [15:22] voidspace, I think by mongo itself [15:23] voidspace, yes, I think it's mgo/bson that does it, and I like it very much when we're explicit about `bson:"whatever"`serializations [15:23] dimitern: cool, looked that way from the code but I wanted confirmation [15:23] fwereade_: coolio [16:06] dimitern: you want to check for malformed AllocatableIPHigh and Low? [16:06] dimitern: you also want to check they're within the CIDR? [16:08] voidspace, I think it's worth it to validate them when set [16:08] dimitern: ok [16:09] dimitern: jam suggested moving all the validation into a CheckValid method on Subnet [16:09] dimitern: do you think it's worth the effort? [16:11] voidspace, I don't mind if we do the validation in a follow-up, but please at least add a TODO for it [16:12] dimitern: ok [16:12] dimitern: net.ParseIP doesn't return an error! [16:12] checking to see what it does for invalid input [16:13] dimitern: it returns net.IP(nil) [16:13] odd [16:13] voidspace, it doesn't but it returns nil [16:14] voidspace, there's a method to call on net.IP to ensure it's valid [16:15] voidspace, sorry, I was wrong - no such method; just check for nil I guess [16:16] yep [16:43] dimitern: there's an almost unbounded amount of additional validation we could do [16:43] dimitern: e.g. both ipv4 or both ipv6, Low should be lower than high and so on [16:44] dimitern: so I won't do those unless you feel strongly [16:49] dimitern: I will note them [18:16] voidspace, that sounds good to me - I agree we can improve it further, but not at the cost of stalling the implementation :) [18:17] voidspace, I'll leave it to your judgment then [18:18] dimitern: on the last bits now [18:18] dimitern: do you really want a "Destroy" that just sets Life to Dying? [18:18] dimitern: given that Remove requires Dead and EnsureDead sets Dead [18:18] dimitern: there's no actual use (yet) for a Destroy [18:20] voidspace, ok, let's skip Destroy for the time being [18:20] dimitern: thanks :-) [18:20] dimitern: I have ten minutes before EOD [18:20] dimitern: I might finish... [18:20] dimitern: maybe a test or two for before standup tomorrow [18:22] voidspace, no rush :) it's going great so far [18:22] dimitern: one issue [18:22] dimitern: I added the unique index on providerid [18:22] dimitern: added in state.open [18:23] voidspace, and it doesn't work when unset? [18:23] dimitern: it doesn't work [18:23] dimitern: I can add two subnets with the same providerid [18:23] dimitern: it's fine unset [18:23] although that hadn't occurred to me [18:23] voidspace, hmm.. I kinda suspected that.. have you tried the "sparse" flag for the index as jam suggested? [18:23] it needs to be "unique if set", which is slightly different [18:23] dimitern: it doesn't seem to work *at all* [18:24] voidspace, ah, sorry [18:24] dimitern: I haven't tried sparse - that might be needed *as well* [18:24] dimitern: however I wonder if the indexes are used for the test as we seem to have special ways of creating the state for tests [18:24] voidspace, that's odd.. maybe due to the "omitempty" tag - not quite sure [18:25] dimitern: can topic with jam tomorrow [18:25] there's a note in the test [18:25] it currently passes when it shouldn't :-) [18:26] voidspace, yeah.. I'll have a look tomorrow - I'm sure I used unique indices like that before [18:26] voidspace, but there might be subtleties that escape me now [18:27] yeah [18:27] I'm on the other bits right now, but I won't forget it [18:27] voidspace, cheers [18:28] voidspace, sorry for my nit picking.. but I'm overly cautious with any state code due to past issues :) [18:31] anyway, eod for me [18:31] g'night all! [18:31] dimitern: g'night [18:32] dimitern: cya tomorrow [18:32] I'm EOD too [20:06] fwereade_: ping [21:43] thumper: that jujuc symlink issue was caused by a fix to a different bug 1391645 [21:43] Bug #1391645: Tools linking issue 1.21beta1 for collocated services [21:43] thumper: i'll get andrew to look into it [21:43] wallyworld_: we are looking now [21:44] wallyworld_: as it is blocking our work [21:44] ah, bollocks [21:44] thumper: there's also this one 1396625 [21:44] bug 1396625 [21:44] Bug #1396625: container scoped relations between 2 subordinates broken in 1.20.12 [21:44] yeah, not sure about that one... [21:44] i think this is associated with the fix menno did [21:44] fwereade_ said it should be allowed [21:45] but we used to allow it by mistake [21:45] ask menno, he may be able to tweak his previous fix [21:45] should NOT be allowed [21:45] oh [21:45] yeah [21:45] I'm wanting fwereade_ to look at it [21:45] so you saying it's a won't fix? [21:45] ok [21:46] thumper: so let me know if you need us to look at the jujuc bug, if you get stuck etc [21:46] wallyworld_: I have a back port of a bug [21:46] Just going to land it on 1.21 [21:47] I thought it wasn't a problem there, but it is [21:47] as I have found by debugging it [21:47] which bug? [21:47] * thumper loks [21:48] https://bugs.launchpad.net/juju-core/+bug/1395564 [21:48] Bug #1395564: jujud constantly spews `juju.worker runner.go:219 exited "identity-file-writer": StateServingInfo not available and we need it` [21:48] oh, that one [21:49] and you did find an all machines issue by the looks [21:49] yay :-( [21:49] * thumper nods [21:50] it is all a bit shit [21:53] thumper: the review you have up, it's a backport? [21:53] yep [21:53] just running all the tests to make sure they still pass before gettin gthe bot to do it [21:53] thumper: any reason i shouldn't rubber-stamp this? it looks plausibly correct [21:53] katco: axw reviewed the master version [21:53] rubber-stamp away [21:53] * katco reels back [21:53] * katco ka-thump [21:55] wallyworld_: if you have any questions about my responses to your review, lmk. especially the one concerning state. i couldn't really find a better way. [21:55] katco: np, i haven't started looking yet [21:55] wallyworld_: np [21:59] wallyworld_: I don't suppose you have the old review for axw's tool change [21:59] ? [21:59] i can look [22:01] thumper: here's the pr for the backport to 1.21 https://github.com/juju/juju/pull/1136 [22:01] the review board link seems to be gone [22:01] ta [22:02] gee I miss the links to the code reviews in the bugs [22:02] yep :-( [22:02] i miss launchpad [23:07] thumper, hum, that's an interesting bug, isn't it :( [23:08] fwereade_: which one? [23:08] I have three on the go [23:08] thumper, heh, https://bugs.launchpad.net/juju-core/+bug/1396625 [23:08] Bug #1396625: container scoped relations between 2 subordinates broken in 1.20.12 [23:08] fwereade_: and a fourth I wanted to talk to you about [23:08] thumper, ok, I'm going to get a drink then, hangout? [23:08] sure [23:52] menn0, ping [23:53] fwereade_: hi [23:53] menn0, so, https://bugs.launchpad.net/juju-core/+bug/1396625 [23:53] Bug #1396625: container scoped relations between 2 subordinates broken in 1.20.12 [23:53] menn0, I am conflicted [23:53] fwereade_: yep [23:53] menn0, hangout?> [23:53] fwereade_: ok [23:55] wallyworld_, waigani, menn0: https://github.com/juju/juju/pull/1226 [23:55] just running all the tests now [23:55] * thumper goes for a jog with the god [23:55] dog [23:55] if it were a cat [23:56] then it would think it's a god