[00:03] wallyworld: i don't see the value of pr 495 [00:03] i would not have approved it [00:03] CI already tests godeps works [00:03] me either [00:03] we don't need to run it locally [00:04] +1 for reverting it for more review [00:04] well, i'll talk to nate first [00:04] davecheney: wallyworld I think that was casuing CI some issues. They had issues with it today [00:04] wallyworld: that's +2 for revcerting it [00:04] that is a carrying margin [00:05] nate can always repropose it [00:05] nothing is lost [00:05] rick_h__: what issues do you know? [00:05] wallyworld: it was down and not functional for a bit. I know sinzui and he were chasing down things and trying to get something with deps right [00:05] wallyworld: sorry, only idly watched irc as I wasn't directly effected [00:05] np [00:05] wallyworld: I can check my logs for more info [00:05] wallyworld: but then this is logged right? [00:06] what is? CI output? [00:06] wallyworld: IRC [00:06] yes [00:06] i can search [00:07] davecheney: let's discuss real soon in juju meeting, then we can revert if needed [00:08] * thumper sighs [00:08] I wish our code wasn't so shit [00:08] * thumper thinks hard about hooking this up [00:34] thumper, I think I see a race in PR 555 (the downgrade one). Fixing it now. This also makes the code clearer around the bit that confused you. [00:34] ok, cool [00:45] natefinch: what happens if you run "ls -l /usr/lib/go/src/pkg/archive/zip" is there a .hg in there? [00:48] menn0: are you going to fix bug 1359435 ? [00:48] Bug #1359435: Next version selection for upgrades is no longer correct [00:49] wallyworld, I just noticed that today incidentally while reviewing a PR from thumper [00:49] wallyworld, I had no intention of looking at it today [00:49] ok, ta [00:49] wallyworld, I'm unlikely to get to it this week and I'm off next week. [00:50] happy to look at it when I get back though [00:50] (if it's not fixed by then) [00:50] np, we'll get it sorted, i want to be able to release 1.20.6 early next week [00:53] coffee time... [00:54] wallyworld: how will we know if ci is happy with the windows build? [00:54] wallyworld: and when can we land the pending stuff? [00:54] thumper: i *think* it detects that the bug is fix committed [00:54] hence i marked it as such [00:55] but i'm not sure [00:55] regardless, there's still one critical bug open [00:56] one other [01:00] what is the other? [01:02] https://bugs.launchpad.net/bugs/1359170 [01:02] Bug #1359170: arguments no longer passed to plugins if you don't have an environment set [01:03] * thumper digs [01:03] I had a look at john's fix for that [01:03] but disagreed with it [01:03] * thumper looks again [01:06] wallyworld: this isn't a critical regression though [01:06] wallyworld: this has been this way for quite some time [01:06] at least since someone change the env command to be the wrapper as it is now [01:06] thumper: i didn't mark it as a regression. i guess we can unmark it [01:06] * thumper removes the tag [01:07] * thumper marks it high, but not regression [01:07] and works on it [01:24] wallyworld: I'm getting the godeps errors now I've pull trunk too [01:24] \o/ [01:34] wallyworld: thumper see my reply to the mail thread [01:34] you already know my solution ... [01:35] seems reasonable to me :-) [01:37] me too :-) [01:44] wallyworld: thanks for the review. will make those doc updates and test again after rebasing [01:44] lots of changes from the windows PR... [01:44] sure, np [01:44] axw: i reverted it [01:44] wallyworld: oh? [01:44] one of the windows ones [01:44] the userdata one? [01:44] yep [01:45] it caused a regression [01:45] bugger :( [01:45] gabriel will be sad [01:45] my comment is in the revert [01:45] I'll take a look, thanks [01:45] axw: well, he MUST learn to test his stuff [01:45] i mean, you develop for windows, you test your stuff on windows before landuing surely? [01:51] minutes for handout in 10 mins are https://docs.google.com/a/canonical.com/document/d/1eeHzbtyt_4dlKQMof-vRfplMWMrClBx32k6BFI-77MI/edit [01:51] please add items to discuss [02:14] wallyworld: I'm asking ben howard for access to Azure China for testing - is there anyone else who should have access? [02:15] axw: we're all in the juju core meeting :-) [02:15] oops [02:15] * davecheney insert paddling [02:27] https://github.com/juju/juju/pull/567 === Ursinha is now known as Ursinha-afk [02:46] wallyworld: Internet is scheduled for connection today, btw [02:46] could be up to 48h before it's active tho [02:47] axw: let's hope they do it on time :-) [02:47] does anyone know if its possible to ssh from a state server to an agent? (meaning, do we have a private key in place that is allowed on the agents?) [02:52] axw or wallyworld : any chance you can have a look at this? https://github.com/juju/juju/pull/566 [02:52] sure [02:53] perrito666: yes, i believe so, that's how juju run works, right thumper ? [02:53] * thumper looks up [02:53] wat? [02:53] perrito666, yep, there's an identity file that you can use [02:54] right [02:54] yes [02:54] I think it is in /var/lib/juju/identity [02:54] use with "ssh -i ..." === Ursinha-afk is now known as Ursinha [03:00] anyone? https://github.com/juju/juju/pull/568 [03:01] wallyworld, thanks [03:02] np [03:02] looking [03:05] wallyworld: inlining now... [03:06] ta [03:06] wallyworld: can you kill http://juju-ci.vapour.ws:8080/job/github-merge-juju/364/console [03:06] it's not going to pass [03:06] sure [03:07] ta [03:22] look at that merge queue... it's a thing of beauty :) [03:33] where is the merge queue? [03:33] menn0: ? [03:35] thumper, I mean all the jobs queued up here: http://juju-ci.vapour.ws:8080/job/github-merge-juju/ [03:35] it was longer before [03:47] wallyworld, the 1.20 backport of what you just reviewed for me: https://github.com/juju/juju/pull/569 [03:47] can you pls have a look? [03:48] \o/ [03:48] yep [03:49] menn0: 1.20 is a lot different isn't it [03:50] wallyworld, yeah the upgrade code has changed a lot so the backports are non-trivial [03:50] wallyworld, I don't see much more upgrade stuff being backported to 1.20 now though [03:50] this PR might be the last one (wishful thinking anyway) [03:50] menn0: my only concern is that maybe there is a test or two missing that may be needed in the backport? [03:51] wallyworld, the other tests that were in trunk don't make sense in 1.20 [03:51] b/c upgradeWorkerContext doesn't exist in 1.20 [03:51] rightio [03:51] done, thanks for fixing \o/ [03:51] the higher level test that I did include does cover the change though [03:52] wallyworld, well I made the problem too so don't thank me too much :) [03:52] ok, thanks for nothing then :-) [03:53] menn0, that's more like it :) [03:53] wallyworld, even.... tiiiirrred [03:53] lol [03:53] menn0: the first sign of insanity is talking to yourself [03:54] wallyworld tells wallyworld that all the time [03:54] LOL [04:21] menn0: i thought the definition of insanity was trying to submit a pull request over and over again and expecting differnt results [04:21] davecheney, if that' the case then we're all a little bit insane [04:32] * thumper is done for the day (until meetings tonight) [04:32] * thumper afk until 10pm local === thumper is now known as thumper-afk [04:33] wallyworld: thumper-afk axw https://github.com/juju/juju/pull/571 [04:33] ^ this PR tries to peal off the most dangerous parts of 556 [04:33] i'd like to submit tihs today and see if CI burps overnight [04:34] then push 556 tomorrow [05:15] davecheney: commented [05:23] axw: thanks, good suggestion [05:23] give me a few minutes [05:24] sure, ping me and I'll take another look [05:39] axw: PTAL [05:41] davecheney: LGTM [05:41] axw: thanks, lets see if this asplodes ci overnight [05:45] morning all [06:19] axw: can you take a peek at this one for me? https://github.com/juju/juju/pull/574 [06:19] sure [06:29] thanks axw [06:30] wallyworld: hmm, should we be throwing away non-public addresses if they have the same IP address component? [06:30] wallyworld: I think we may only want to throw away if it's public... [06:30] otherwise that changes the internal address selection [06:30] hmmmm [06:31] when could there be two addresses, same IP, but one marked public, one marked private? [06:31] wallyworld: if the floating IP returns the same as a private address range? [06:31] un moment [06:32] wallyworld: https://bugs.launchpad.net/juju-core/+bug/1348287/comments/4 [06:32] it won't do that - floating ip addresses are public [06:32] Bug #1348287: Juju status returns private IP in 'public-ip' field. [06:33] the problem was that their public and private ip address ranges were both 10.x.x.x [06:33] so juju couldn't guess which one was public [06:33] but there will never be 2 addresses with the same IP, that doesn't make sense [06:34] well the auto-detection logic will classify it as private [06:34] because it's in the 10. range [06:34] but... [06:34] I think the floating IPs will always come from a separate pool [06:34] yes, which is why we mark it as public [06:34] so that's ok [06:35] ie the provider knows that a 10.a.b.c address is public if it is the floating ip address which was assigned [06:35] wallyworld: the point I'm trying to make is that we shouldn't disqualify that address from use in internal communications [06:35] sure, but juju will guess that it is private when it is not [06:36] i do think that if it is known to be a floating ip address, it should be marked as public and nothing else [06:36] public/private are relative. they may be the same thing depending on where you are. anyway, it doesn't matter because they'll be separate address ranges still [06:37] what worries me is that would could have in juju status both public and private be the same address [06:37] because the floating one was guessed as private and so was picked [06:38] and hences masks the true private address [06:44] axw: do you agree with my statement above? [06:45] wallyworld: sounds sane [06:45] righto [06:45] thanks [07:13] axw: i killed your job because it was going to fail [07:13] trusty vs precise test failure [07:13] wallyworld: yeah, I noticed, but doesn't killing it orphan the ec2 instance? [07:13] hmmm, yeah maybe [07:14] i'll ping curtis later to clean up [07:14] gotta run to soccer, back later for meetings \o/ [07:14] wallyworld: actually looks like it may have run the terminate script [07:14] adios [07:18] wallyworld: o/ [07:18] axw: morning [07:18] voidspace: howdy [07:19] any news on where the october sprint will be? [07:19] I'm in India until October 5th [07:19] sprint starts on the 6th... [07:20] voidspace: I have not had an official answer [07:21] voidspace: i heard brusssles [07:21] axw: I haven't heard anything either [07:21] but that was not confirmed [07:21] davecheney: that would be cool [07:21] davecheney: I mean, literally cool [07:21] Brussells in October [07:21] hmm, neither of us can spell Brussels it seems [07:21] I'm still not convinced I've got it right [07:21] Bruxelles [07:22] :p [07:22] yet we can still communicate our intentions perfectly [07:22] :-) [07:22] if only computers worked like that... [07:22] \o/ evolution [07:25] hello, could anyone have a look at #1325946 for Landscape? it should be a no-brainer backport to 1.20.x [07:25] Bug #1325946: Can't start named MAAS instances if environment is named kvm or lxc [07:32] free: I will have some spare cycles shortly and will see if I can get to it [07:32] free: unless someone else beats me to it... [07:32] voidspace: thanks! [07:32] voidspace: is there already a target date for the next 1.20.x release? [07:32] free: that I don't know, it would depend on sinzui [07:33] free: but we seem to do them fairly regularly, he's pretty efficient [07:33] voidspace: alright, would be great to have this little backport in the next one [07:33] free: understood [07:33] free: I can see the motivation from the bug report :-) [07:33] voidspace: he :) [07:34] free: for the record, we're actively working on "multi-tenant state servers" [07:34] free: which means that api calls won't automatically be scoped against a specific environment [07:34] voidspace: gotcha [07:35] voidspace: we're fine passing the UUID (as opposed to the name) [07:35] free: yep, understood - and we need to be aware of that constraint [07:39] morning [07:39] TheMue: morning [07:43] TheMue: so the issue is that if you back out your fix, the test doesn't fail, does it? [07:43] because we are essentially testing that set.Help() == set.Help() [07:43] and *not* testing that the contents of setDoc are the contents of set.Help() [07:44] So for checking "is set registered" it works fine, but for testing whether the actual content is sane, it doesn't quite cover it. [07:44] jam: morning o/ [07:44] coffee [07:44] brb [07:44] morning voidspace [07:44] jam: hmm, than I took to test of the deploy help wrong [07:45] TheMue: so there is 2 things that are good to test, (a) that "juju set" exists as a command, and (b) that the content of "juju set --help" contains what we want it to. [07:45] Some people like to have tests like: c.Assert(helpText(), gc.Equals, `The content of the help text`) others feel like you shouldn't repeat yourself, as it means you have to update too many tests when something changes. [07:46] TheMue: However, the test you added *wouldn't* have caught that changing setDoc doesn't change the output of "juju set --help" [07:46] because it is effectively testing that [07:46] c.Assert(set.helpText(), gc.Equals, registeredHelpText("set")) [07:46] The "deploy" help has the same problem [07:47] jam: IC [07:47] as does sync-tools help [07:47] jam: you said you added a good test. could you point me to it? [07:47] TheMue: I can understand that people feel "the help text is com [07:47] combined from 3 different places, and it is clumsy to just report it [07:47] " [07:48] TheMue: I believe I added the sync-tools one, but it suffers from what I just observed. [07:48] I had written that test to check for (a) [07:48] but I realize now that (b) would be useful to have [07:48] and we don't [07:49] TheMue: actually, when I wrote the test, I think I actually did: c.Assert(registeredHelpText("sync-tools"), gc.Equals, syncToolsDocString) [07:49] TheMue: but now that we have stuff like EnvironCommandWrapper [07:49] the *actual* help text is a bit obscured from just the raw string we have somewhere. [07:50] So I'm wondering if we would benefit from splitting the test we have into actual concrete comparisons [07:50] jam: OK, so a good test would be, for each command, to retrieve the help by executing the command and compare it to a variable where the help text is stored (like setDec) [07:50] TheMue: or whether people would complain too much about having to update a test when they tweak the help content. (I happen to like the safety-net of tests) [07:50] TheMue: actually, my preferred is to compare it to a local string [07:51] TheMue: so in the table, "out: " would contain the actual help text string [07:51] jam: *iiirks* [07:51] jam: TheMue: for similar tests in the past I've just done a "contains test" [07:52] jam: but then we would have to do it for args and purpose too, just to be consistent [07:52] jam: TheMue: i.e. not duplicating the full text in the test, but asserting that it contains "some relevant part that we require it to contain" [07:52] * TheMue is reminded of UI tests in unit tests [07:52] which is less clumsy to maintain and still tests (somewhat) that the output is being generated correctly [07:52] TheMue: voidspace: so some of it is "the output of juju set --help is something that I'd actually like to read" [07:53] and having it all in one place rather than just "contains" helps with that. [07:53] voidspace: that wouldn’t work if we for example add some content [07:53] TheMue: well, it wouldn't *fail* [07:53] TheMue: voidspace: I don't think people today (core developers for example) are actually running "juju help $COMMAND" and reading all of it to actually know if it makes sense. [07:53] jam: yes but it's still horrible [07:53] voidspace: if you don’t change the test it won’t fail [07:53] TheMue: but is "adding some text" something you want to test [07:54] TheMue: and if it is it's easy to test [07:54] TheMue: you can have several contains tests if there are several important parts [07:54] voidspace: it might be good to know that you *didn't* add "and you're all a bunch of a$$hats" to every command :) [07:54] jam: and copying and pasting output into a test doesn't actually test readability at all [07:54] jam: inside the tests we have access to setDoc and co. so I would like the convention that doc never is set directly, but always via a variable and we compare the output to that variable [07:55] TheMue: I'm reasonably ok with that as a compromise. [07:55] TheMue: I think juju core could benefit from someone actually spending time reading the various help texts and how they reference eachother, etc. and actually make that a nice experience for users. [07:55] that doesn't have to be done via the test suite, though. [07:55] jam: so I could add a TestAllHelps and change the code to fit this convention. it’s good for a table driven test. :) [07:55] * voidspace really goes to get coffee [07:56] jam: when refactoring the code this way I would spend some time in reviewing the help texts [07:57] jam: the quality can’t be tested, but at least it’s a good opportunity to do so [07:58] TheMue: my idea in having the full content there (after all generation steps) is that when auditing a change, you can see what the actual final outputs are. Though I realize that then when "-e" gets slightly different wording, it ends up changing 50 different commands' help content. [07:58] though that is, honestly, just a search and replace, right? [08:01] jam: for later changes I’m with you, it’s no problem. I only have my troubles with the duplication of all output [08:01] jam: but hey, it’s not double in the binary, it’s only in the test [08:01] jam: so it’s ok [08:01] TheMue: there is the concept of Dont Repeat Yourself [08:02] and I want to be tasteful here [08:02] and people certainly have different opinions in this. [08:02] I'm just putting forth a thought. [08:02] That maybe nobody actually knows what all the help texts say because we hide it in all of our layers and wrappers, etc. [08:03] Yeah, there’s a lot of indirection. [08:03] TheMue: and we have stuff where "global" help settings don't show up in the default "juju set --help" [08:04] From a quality point of view it definitely would be better to ensure a correct output (but not the quality of the output). [08:04] TheMue: "juju help global-options" shows you options that are available but aren't shown in "juju help" or "juju help set" [08:04] But having all texts repeated in one file would make it easier to look for a consistent help and wording [08:04] and "juju help set" doesn't *tell* you about "juju help global-options" you have to find it from "juju help topics" [08:05] We hide features, not good. :/ [08:06] TheMue: I'm pretty sure thumper did it intentionally to avoid cluttering the short help, but I *think* we at least want a one-line reference so it can be discovered. [08:06] So a change like this would have to goals: 1. ensure that the shown help is the correct one but even more important 2. that it has a good quality, is consistent and complete [08:16] wallyworld: ping [08:17] or anyone that has installed Go from a PPA - i'd like to try find out why godeps is failing in that case [08:46] rogpeppe1: mine is just from the archive, I think, and it is failing [08:46] rogpeppe1: https://bugs.launchpad.net/bugs/1359573 [08:46] Bug #1359573: API inconsistency: machine tag vs id [08:46] sorry [08:46] ii golang-go 2:1.2.1-2ubunt amd64 Go programming language compiler [08:46] ii golang-go 2:1.2.1-2ubunt amd64 Go programming language compiler [08:46] $ godeps -t ./... [08:46] godeps: no version control system found for "/usr/lib/go/src/pkg/go/build" [08:46] godeps: no version control system found for "/usr/lib/go/src/pkg/bufio" [08:46] jam: what does this program print for you? http://paste.ubuntu.com/8104597/ [08:47] jam: and what's the exact output you get from "godeps -t ./..." ? [08:47] rogpeppe1: http://paste.ubuntu.com/8104605/ for the latter [08:48] rogpeppe1: $ ./goroot [08:48] /usr/lib/go [08:48] jam: and does godeps actually produce a non-zero exit code? [08:49] rogpeppe1: $ godeps -t ./... 2>/dev/null ; echo $? [08:49] 1 [08:49] yeah [08:49] exit 1 [08:49] jam: i think i know what's going on now, thanks. the fix should hopefully not be hard. [08:50] rogpeppe1: I'm around if you need me to poke at stuff [08:50] jam: thanks - i may well ask you to try an updated version. [09:01] wallyworld, around? [09:02] wallyworld, https://code.launchpad.net/~lutostag/gomaasapi/fix_nonce_generation/+merge/231638 [09:02] that seems like a hack to me and not a proper fix [09:02] aren't we just changing the odds that we'll hit that bug again rather than properly preventing it? [09:21] wallyworld, nevermind [09:25] who is OCR today? [09:27] and the title is incorrect as neither of those two bugs are critical and open [09:27] doesn't look like I'm allowed to change the title though [09:28] voidspace: it can be changed via mup [09:28] TheMue: ah, ok [09:29] voidspace: but have to remember the syntax myself :) [09:29] TheMue: do you know the magic incantation? [09:29] heh [09:29] voidspace: and btw, even without being ocr I just reviewed your PR [09:29] TheMue: ah, cool - thanks [09:30] voidspace: today Nate and Menno are OCRs [09:30] TheMue: thanks [09:30] I was just looking for the doc [09:30] not sure if I have it starred [09:30] I should do [09:31] yeah, simplifies the quick access [09:31] it's slow to calculate [09:31] I have it starred now [09:32] TheMue: the one I really need reviewing is this one: https://github.com/juju/juju/pull/561 [09:32] TheMue: the other one was reviewed to death already ;-) [09:33] voidspace: *lol* [09:33] voidspace: OK, will take a look [09:33] TheMue: I don't understand your comment "why two asserts?" [09:34] TheMue: I don't see two [09:34] TheMue: maybe I'm being dense [09:34] TheMue: and I have a philosophical objection to testing that we don't do things [09:34] even where it is something we used to do [09:34] because such tests build up and don't really test anything useful anymore [09:36] voidspace: provider/openstack/live_test.go lines 183 and 184 [09:36] TheMue: ah, 184 isn't shown in the snippet [09:36] I'll look [09:37] TheMue: the answer maybe, "you'll have to ask the person who originally wrote the test" - but I'll look :-D [09:37] voidspace: yeah, I won’t test it too, but in this case you do a change. something that has been open before is now closed. the test would document it. [09:37] TheMue: the test would document something that doesn't happen [09:37] TheMue: there are an infinity of things that don't happen we could document [09:37] voidspace: I know it hasn’t been done by you, I only seen it [09:37] it just becomes a historical note [09:37] TheMue: sure I'll look [09:38] TheMue: the test makes sense at the time you write it, but not after that [09:38] voidspace: yes, a documentation of the change, not of what doesn’t happen [09:38] TheMue: as I said, I object... [09:38] I don't think our tests should be a historical archive [09:38] they should document what we do, not what we used to do [09:39] TheMue: oh, it does look like that assert is just duplicated [09:40] TheMue: duplicate assert removed, thanks [09:41] TheMue: the question I would ask is "if we had never opened the state port would we have a test that it is not opened"? [09:42] TheMue: i.e. is the test useful in it's own right? [09:54] voidspace: I would like a test that only those ports we want are open and no others [09:57] TheMue: pretty sure we have that actually [09:57] TheMue: some of those changes are me *removing* StatePort from the list of expected ports [09:58] voidspace: yep, I’ve seen [09:59] TheMue: I'm pretty sure if you run the modified tests against unmodified trunk you'll see failures because StatePort is open when the tests don't expect it to be [10:01] jam, meeting? [10:01] TheMue: I do agree that that is a useful thing to test [10:01] TheMue: I'm pretty sure it's covered though [10:01] voidspace: I’m not talking directly about your changes, more about a general way. e.g. having one test doing it for each provider the same way [10:01] TheMue: yeah, unfortunately that code is provider specific [10:01] TheMue: we choose which ports to open inside each provider === thumper-afk is now known as thumper [10:01] which is a bit sucky [10:02] so we could still screw it up for a provider and not have a test fail [10:02] that’s what I meant, yes [10:02] dimitern: made it [10:03] TheMue: I would think that only a live test could usefully do that [10:03] TheMue: or we move the code that chooses ports to open out of the providers, which would be a better fix [10:05] jam: could you "go get -u launchpad.net/godeps" and try it again, please - the issue should be fixed now [10:09] rogpeppe1: looks good to me [10:09] jam: cool [10:09] rogpeppe1: at least, no errors [10:12] voidspace: a live test could at least have a problem with the local provider [10:13] voidspace: it simply is a difficult topic. :D [10:33] TheMue: yeah :-/ [10:41] TheMue: are we switching existing code to errors.Annotate as we see them? [10:41] TheMue: I know I have to Errorf in my branch - one existing and one new [10:41] I can switch both, no problem [10:41] but just asking as a principle [10:43] voidspace: as I understood jam we’re doing [10:43] TheMue: voidspace: sorry we're not available for the standup today, we have a call with Mark S [10:44] dimitern and I [10:44] jam: :-( [10:44] ok [10:44] jam: dimitern: enjoy, don't promise too many things...] [10:44] voidspace: you can probably chat with dimitern after we're done, but then I have the Team Lead call [10:44] jam: ok [10:45] my next immediate task (after fixing things from TheMue review) is backporting a bugfix to 1.20 [10:45] then I need a day long task [10:47] voidspace: so the db access stuff is sorted out? [10:47] jam: yep, basically [10:47] jam: two PRs and two reviews [10:50] voidspace: have you read the IPv6 and charms doc? [10:51] voidspace: https://docs.google.com/a/canonical.com/document/d/1PZ0RipScWNmhpRuyVCZfpSLbH0UGekyApIzZU2_ca_Q/edit [10:51] jam: I've read dimiter's networking model - the recent revision [10:51] jam: not sure about the charms one [10:51] jam: will make sure I digest it [10:51] thanks, starring [10:52] charms code I am not very familiar with - so will be fun to work on (maybe "fun") [10:53] voidspace: so I think we may want to start with "container addressibility" https://docs.google.com/a/canonical.com/document/d/1XZN2Wnqlag9je73mGqk-Qs9tx1gvOH0-wxMwrlDrQU4/edit#heading=h.h1grzzgqa6st (sorry for the giant doc) [10:53] ah, the vegas doc [10:53] the shorter (older) doc was https://docs.google.com/a/canonical.com/document/d/1Gu422BMAJDohIXqm6Vq4WTrtBV8hoFTTdXvXDQCs0Gs/edit, it isn't very complete [10:53] jam: container addressability is what TheMue was working on, right [10:53] experimenting with [10:54] dammit, why is "clear the screen" in Pidgin the same ^L as "go to the address bar" in Firefox [10:54] https://docs.google.com/a/canonical.com/document/d/1UzJosV7M3hjRaro3ot7iPXFF9jGe2Rym4lJkeO90-Uo/edit#heading=h.a92u8jdqcrto is another one to look at [10:54] "Networking for containers" is terse [10:55] voidspace: stopped it to do other tasks. would like to see you setting up a test environment too, maybe it’s simply an error by me [10:55] it doesn't explain why we want containers - we have the future use case of "more dense deployments" [10:55] TheMue: yep [10:55] TheMue: I followed your progress [10:55] voidspace: TheMue was working IPv6 and containers which isn't quite the same [10:55] TheMue: I started to get nested containers setup [10:55] TheMue: but didn't get much further than that [10:55] jam: right - ipv6 addressability [10:55] this is more about asking EC2 to give us another address, and then getting that address routed into one of our containers [10:56] jam: do we have a more immediate use case for container addressability [10:56] so that LXC-1 on machine-1 is visible to LXC-N on machine-2 [10:56] right [10:56] jam: oh, that sounds nice too [10:56] voidspace: right now the only environment that can deploy into LXC and get the service out is MaaS because it assigns addresses from DHCP [10:56] jam: but why do we need that? [10:57] jam: I mean, I know why it would be nice. But why is it a priority? [10:57] voidspace: "juju deploy mysql --to lxc:0" [10:57] voidspace: density [10:57] that's why it would be nice [10:57] jam: ok, so that's shifted up the priority stack [10:57] cool, cool [10:57] voidspace: its part of the general "networking model" [10:58] after a while my vm saturates both cores on this laptop and the machine becomes unseable until I restart parallels [10:58] "a while" is a couple of days [10:58] voidspace: ouch [10:58] but still [10:59] voidspace: also, we need to change how we do container addresses in MaaS starting with MaaS 1.6 [10:59] as they want us to do the same thing ther [10:59] ask MaaS for another address, and then we can use it for the container [10:59] jam: right [10:59] rather than going via DHCP [10:59] so if we need to do it right for MaaS we might as well solve the general problem [11:07] voidspace, TheMue, guys, you're still standuping ? :) [11:07] doesn't look so [11:07] ok, I need a short ciggie break [11:09] thumper, thanks for pointing out this problems in metrics. I'll put a card on the board to remind me to do them [11:09] mattyw: np [11:48] ill ask this again in case there is someone new [11:48] does anyone know if its possible to ssh from a state server to an agent? (meaning, do we have a private key in place that is allowed on the agents?) [12:02] katco: just finishing a meeting [12:02] wallyworld: ok [12:03] perrito666: the code suggests that it is possible. I can bootstrap an environment in 5 minutes on MaaS and let you know if you'd like. [12:11] gsamfira: I tried under a certain cirsumstance and failed, Ill do it myself and take a look [12:14] if not, you can simply enable ssh agent forwarding on your machine [12:15] and that will allow you to use your local key even if you hop through another machine [12:18] gsamfira: I need to do something that does this automatically [12:18] gotcha [12:30] good morning, team. how is everyone? [12:32] katco: fine, and you? [12:33] TheMue: getting over a cold, but looking forward to landing some code :) it's the perfect remedy :) [12:34] katco: hehe, is it available on recipe? [12:35] TheMue: what do you mean by recipe? [12:36] bbl [12:36] katco: the remedy (it’s listed here in my dict also as medicine) [12:37] TheMue: oh, sorry... thought maybe that was a technical reference :) haha, it's in the Programmer's book of home remedies ;) [12:39] katco: a good book ;) [12:41] TheMue: it only has 3 pages: one on caffeine, one on the asymptotic time it takes to get better, and then the third page just says, "Code." [12:43] TheMue: apparently i applied a O(1) remedy ;) [12:43] katco: so will follow chapter 3 now, currently adding a new version of an API call [12:44] TheMue: :) [12:45] wallyworld: actually, are you still around? [12:46] yup [12:46] wallyworld: just looking at how i'm going to set this DisablePackageCommands... and i'm a little fuzzy on the precedent. what happens if the config settings conflict with this? [12:47] let me look into it a bit [12:47] i'm looking at state/apiserver/client/client.go [12:48] wallyworld: seems like maybe it should be an error if the two settings conflict on a local machine [12:51] katco: there's nowhere in the Go codebase that sets that bool; it must be used via a python client. but if the user has specified it, that's what they want so it should override any config settings [12:51] wallyworld: but if they also set the new config values, shouldn't we alert them to the fact that their preferences are conflicting? [12:53] hmmm, i just trying to remember the use case [12:54] it's used in manual prvisioning to set up a host5 [12:54] that's within juju, not sure about external usage [12:55] wallyworld: host5? [12:55] bah, typo [12:55] i think a warning printed on the console is sufficient [12:55] wallyworld: and then prefer the disablepackagecommands? [12:56] yep. but the check doesn't happen client side, unless the enc config is fetched [12:56] env [12:56] wallyworld: i also put in a comment that that setting was deprecated as of 1.20.6... is that safe? [12:57] a code comment? [12:57] wallyworld: yes [12:57] that's fine [12:57] it will remain deprecated until juju 2.0 [12:57] wallyworld: gotcha [12:57] actually, i think you need to add support for the new bools in the command [12:58] juju cmd? [12:58] the ProvisioningScript api call [12:58] hmm ok [12:58] sorry, wrong terminology [12:59] because if we say DisablePackageCommands is deprecated, we need to prvide the new alternative [13:01] right [13:01] i think you can just add the extra bools to the end of the struct [13:02] gosh, also... if the defaults for these 2 new settings are true, basically anytime someone uses the DisablePackageCommands setting, they're going to get these warnings. [13:02] but hmmm [13:02] they wouldn't be able to set these 2 new settings in a < 1.20.6 client [13:02] that's not such a good idea, because we won't know which variation they'e using [13:02] or w/e this is going in [13:03] let's leave it for now [13:03] we may just need to wait till the old bool is removed and replace it with the 2 new ones [13:04] wallyworld: sorry, so what now? "leave it"? [13:04] support the original DisablePackageCommands bool but not worry about the new ones yet [13:05] wallyworld: ah, so maybe use the original to drive the new ones? that way the finer-grained control is all in place, but the clients just can't use it that way yet? [13:05] yup [13:05] as the DisablePackageCommands is pulled off the wire, map it to the 2 new ones [13:06] wallyworld: ok. i _think_ that should still provide performance benefits when DisablePackageCommands = true. [13:06] yes it will [13:06] cause neither upgrade nor update wil be run [13:07] wallyworld: yeah, and then we're all set up to provide the finer-grained control [13:07] yep [13:08] wallyworld: ok thanks :) [13:09] np, i think it's a decent solution. we can always add the finer grained stuff to the command if really needed [13:09] s/command/api [13:09] wallyworld: yeah, people might not even need it [13:09] exactly [13:10] hi jam, wallyworld, natefinch, There is a request to backport a change to 1.20. The proposed change is certainly backportable, but I need your agreement that it will solve the problem, see bug 1325946 [13:10] Bug #1325946: Can't start named MAAS instances if environment is named kvm or lxc [13:10] wallyworld: kind of begs the question, why wasn't this doing what we wanted earlier? [13:11] katco: it's only for a very specific api call [13:12] wallyworld: ah that's right, it's not in the environ config [13:14] sinzui: it may do, that bug looks kinda ugly [13:14] sinzui: wallyworld: the backport is a workaround for the bug, right? [13:14] that's what i was thinking too [13:14] sinzui: wallyworld: and does solve the problem (as far as I can tell anyway) [13:15] i think the bug should stay open [13:15] but we can do the backport [13:16] wallyworld, thank you. voidspace , thank you [13:16] sinzui: i am hoping we can do a 1.20.6 release early next week, say tuesday? [13:16] free: ^^^ [13:17] voidspace: awesome [13:17] i have 2 or 3 small fixes to do for bugs, plus a backport or 2 [13:17] voidspace: would the fix we spoke about be in? [13:17] free: yep [13:17] voidspace: great [13:17] which one? [13:17] wallyworld: that's the one we just discussed :-) [13:17] wallyworld, possibly...I expect to be hiding from the beach. If I have network I can guarantee it. The QA team can follow the template/script, but I think they might have some anxiety [13:17] ah [13:17] bug 1325946 [13:17] Bug #1325946: Can't start named MAAS instances if environment is named kvm or lxc [13:18] sinzui: when you back? [13:18] wallyworld, 1.20.5 is in utopic today [13:18] wallyworld, the following week [13:18] voidspace: if it's not too big of a deal the last thing we'd need for Landscape is #1359714. But that we could workaround because we can sniff the machine ID by looking at the current directory name in the hook [13:18] Bug #1359714: Add JUJU_MACHINE_ID to the hooks environment [13:18] sinzui: i think they should do the release, can't rely on one person, if we do that, something is wrong with the process [13:18] wallyworld, I really am hiding from the beach. I intend to hack on something [13:19] ok :-) [13:19] sinzui: the reason for wanting to release is there's some fixes in there many people are interested in [13:19] free: I'm not sure how suitable for backporting it would be once we fix it (new feature and all that) [13:19] free, do you need that behaviour in 1.20.x? [13:19] free: but we can look at it [13:20] sinzui: we can workaround it, but would be nice [13:20] thank you free [13:21] wallyworld: is this the common boilerplate you were referring to? juju/juju/environs/boilerplate_config.go [13:22] I am going to lower all the criticals affecting 1.21-alpha1 that have a 1.20.x to High because we do not need to take further action with them [13:23] katco: yes, but i see that it is not really suitable to add the config stuff to - it may need to be done individually for all providers [13:23] * sinzui wants the bug listing to clearly show what we want to fix now [13:23] wallyworld: i thought it most applicable to point out in lxc and manual. it is still available in the others, but maybe not as important to call out. thoughts? [13:23] sinzui: there are no open criticals for 1.21 though, right? [13:24] katco: sounds reasonable, but i think people were asking about it for ec2 etc as well [13:24] wallyworld: ah ok. in it goes! [13:24] wallyworld, the topic says so, but you cannot easily check the bug listing to see if they were fixed while you slept :( [13:24] katco: that's what he said [13:25] wallyworld: LOL [13:25] wallyworld: in a time when the world is crazy, it's good to see some humor is multi-national :) [13:25] :-D [13:26] wallyworld, actually, all claim to be fixed. CI lost an ec2 instance 9 hours ago and stalled. I have restarted the building and publication of the last revision added to 1.20 [13:26] sinzui: actually, you reminded me - i killed a couple of jenkins landing jobs that were going to fail - that may have left orphaned instances? [13:28] wallyworld, ah. Indeed. I see them from time to time I assume any machine 12 hours old is safe to remove [13:28] remove away [13:29] sinzui: so have a think about 1.20.6 release - would be nice for early next week, and you can see how well you can rely on your team :-) [13:29] +1 [13:30] i'll email when we are ready, but i expect it to be tuesday at latest unless something comes up [13:38] sinzui: so https://github.com/juju/juju/commit/ee7cfef912eea184822cb3a536aff04b56bf14e4 looks like it would promote compatibility, which seems ok to me [13:38] though the error message there means the patch isn't quite complete [13:38] return nil, fmt.Errorf("invalid environment name %q", p.Placement.Scope) [13:38] doesn't quite make sense when the Scope is a UUID [13:41] sinzui: their actual issue is several lines earlier which is: [13:41] containerType, err := instance.ParseContainerType(p.Placement.Scope) [13:41] though why we are passing a plain "scope" [13:41] that isn't properly tagged is beyond me [13:42] ah, ffs, this code looks all sorts of buggy and broken :( [13:44] hey everyone. I got successful runs of unit tests in lxc yesterday. I am going to propose some changes the devel and stable makefile that will make unittests more reliable in the many envs we try them in [13:45] sinzui: so the thing they are asking for is a bad fix to their original bug, but we're possibly ok backporting it. The main problem is that I really don't think we should be changing the CLI unless we know the API server is updated. [13:45] so maybe 1.21 is already broken against 1.20 and we just don't know it [13:46] jam, thank you! [14:02] fwereade, ping? [14:40] in the beginning was the pong. and it moved back and forth. [15:01] hey natefinch wwitzel3 ericsnow I am here but I am getting the party is over on hangout [15:02] perrito666: works for me. Try restarting your browser === urulama is now known as uru-afk === ChanServ changed the topic of #juju-dev to: https://juju.ubuntu.com | On-call reviewer: see calendar | Open critical bugs: 1w, 1359170 1354027 [16:25] I've noticed that go 1.3* uncovers a few testing defects for me; I assume because of the forced random iteration of maps [16:25] are we running tests using latest go in CI anywhere? [16:26] should I just file defects for the tests that seem to fail only on go 1.3? [16:34] jcw4: yes file bugs, or just fix them. We shouldn't ever be relying on map order [16:34] natefinch: +1 [16:59] anyone know the instance distributor code? [17:14] hazmat: I don't even know what the instance distributor is [17:16] natefinch, its zone spread [17:16] hazmat: ahh, ok [17:17] but it seems to be operating at a instance level, trying to figure out how it ties back to the service level [17:19] hazmat: no idea, that sounds like something that the Australian/New Zealand guys would have written [17:20] natefinch, yeah.. i know who write it.. [17:27] nevermind .. i figured it out.. it populates a distribution group with the extant instances that have common services === BradCrittenden is now known as bac [17:59] Why doesn't this work? [17:59] JUJU_RELATION_ID=mongos:3 JUJU_REMOTE_UNIT=shard1/0 relation-get [17:59] I get an error that no relation id is specified [18:00] mongos? [18:00] I'm running this on mongodb charm [18:00] aside from that no idea how that stuff owrks [18:00] if i set those as -r and give it a remote unit int he command line it work [18:00] sbut setting the environment variable before the command does not [18:01] is there an additional environment variable in hook that's telling it it's not a realtion? [18:01] natefinch: also, it looks like there's already a JUJU_HOOK_NAME in the environment, could we just use that instead of argv[1] ? [18:02] marcoceppi: yes [18:02] natefinch: then that has my +1 since it's already there in core [18:03] natefinch: any idea on my above query? [18:04] only thing I can think is somehow relation-get checks CONTEXT_ID and knows it's not a relation [18:05] marcoceppi: I don't really know that area of the code, so I can't really help. [18:05] natefinch: who can I bother :) [18:05] marcoceppi: relation-get requires a parameter [18:06] jrwren_: I'm not even getting that far [18:06] error: no relation id specified [18:06] even with key, still same error. I've added it to environment via export and by setting it preceeding the command [18:07] marcoceppi: requires the -r if you are outside a relation hook. Is that what you are trying to fake by setting those env var? [18:07] jrwren_: yes, how does it know? context_id ? [18:07] I figured it would check env, then check -r [18:07] but it's not even looking for the envs [18:09] I don't know. I'd love to find out. [18:09] marcoceppi: see newRelationIdValue in worker/uniter/jujuc/context.go [18:11] man our code is hard to navigate [18:12] haha [18:12] so, ctx.HookRelation looks promising, I see it's checking for relation context [18:12] that's probably being pulled in from JUJU_CONTEXT_ID [18:12] really wish I could fake that [18:56] is lxc-clone no longer defaulted to true? [18:57] in the code, it's specified with schema.Omit, but i'm looking at Ian's comment on 7/31 here (https://bugs.launchpad.net/juju-core/+bug/1350493), and it says Juju 1.20 ships with it set to true [18:57] Bug #1350493: 1.20.x local provider not running apt-get update [18:58] https://github.com/juju/juju/blob/master/environs/config/config.go#L872 [19:16] smoser, wallyworld, Lauren Mayberry sings "I communicate in simple streams" on the Chvrches - Night Sky song [19:34] i thought i understood this, but i'm missing something. in environments.yaml, how do you set a default config value, and then detect if it's using the default or a user-specified value? [19:35] katco: not sure [19:36] natefinch: doh :( [19:36] i mean i can think of a way to do it, but i'm not sure if that's the canonical way [19:37] katco: likely the only way to know for sure is if we have some explicit code in there for detecting an unset value and using a default instead... like a nil *string or whatever [19:40] natefinch: well, there's schema.Omit, and if i specify that, i can return a value in the setting's wrapper-method if it's not found [19:43] natefinch: ahh... it looks like the magic-combo might be to specify the setting in alwaysOptional as schema.Omit, but then give it a default in allDefaults [19:44] natefinch: doh, no that's not right either =| [19:46] If a field is not present in the map and defaults to Omit, the missing field will be ommitted from the coerced map as well. [19:47] That looks like English... [19:47] but I have no idea what it means :) [20:08] natefinch: so i am no expert, but basically when defining the config variable, you can give it a default value [20:09] natefinch: if you specify schema.Omit, it will not add it to a validated config object's map [20:10] natefinch: which is exactly what i want, but i also want a default value if it's not specified. and apparently that's the tricky bit (or at least the part i haven't figured out). i'm going with a work-around and someone can correct me lol [20:25] * perrito666 bashes a bit his head on the keyboard [20:25] perrito666: may i join you, sir? [20:25] katco: certainly, you will have to provide your own keyboard though [20:26] alas, i have already broken mine. [20:26] * perrito666 thinks katco might remember the effect he has on keyboards [20:26] rofl [20:26] yeah you can just replace yours! [20:27] katco: well I have bulky thinkpad now so it is even easier and there is not violence involved [20:27] just need to finish this test, rebase, test again and then finall submit this stupid PR [20:27] perrito666: oh did you get a new laptop already? [20:27] katco: I swapped my mac with my wifes thinkpad [20:28] perrito666: ah nice. how do you like it? [20:28] katco: I always like thinkpads, this is a t420, the only downside of it is to carry it [20:28] and I have plenty of ram, which allows me to do a lot [20:29] perrito666: i know what you mean. i went from a... 11"? macbook air to a 15" s57 [20:29] perrito666: i thought about a smaller one, but at sprints i want a screen i can work off of [20:30] well the asus was a nifty piece of hardware, but the soldered 4G of ram where a pain === anthonyf` is now known as anthonyf [20:30] I mean, nice screen, nice kb (after replacing), decent battery, decent processor but really, 4G? [20:34] perrito666: yeah bleck [20:54] perrito666, do You have a few minutes to review https://github.com/juju/juju/pull/582/files [20:56] sinzui: I do [20:57] sinzui: you should know that as per the new review mentor plan my reviews lack power unless upgraded with a reviewer combo :p (holds true for all newcommers) [20:58] perrito666, thank you for the explanation.I wasn't sure how new is new. [20:58] sinzui: las vegas new [20:59] perrito666, you started before Las Vegas :) [20:59] sinzui: mm, lets put it this way,anyone who's first sprint was vegas or after :p [21:05] sinzui: your pr messages dont compile in english === uru-afk is now known as urulama [21:32] thumper, ping [21:46] alexisb, I believe thumper has the day off today [21:46] thumper: you owe us a beer next time ;) [21:46] menn0, ug [21:46] he accepted the invite and forced urulama to stay up until midnight :) [21:47] alexisb, ok, then maybe he will be around? [21:47] I always forget that you guys are a day ahead [21:47] alexisb, do you want me to SMS him? [21:47] I think he just didnt think about the timing giving it is a reoccurring meeting [21:47] menn0, nah [21:47] were good [21:48] he just owes urulama a beer ;) [21:48] alexisb: tbh, i'm always up at this time, but, still a belgium beer it is :D [21:48] urulama, alexisb: I think you should ask for more than one :) [21:49] so, how is this mechanism to extort beers from thumper? [21:49] alexisb: or maybe i can get by for not reviewing his errgo/errors branch :S [21:49] perrito666, you have to invite thumper to a meeting he cannot attend and trick him into accepting the invite... [21:50] then make sure it is at midnight your time and ensure everyone feels bad for you staying up [21:50] alexisb: ah that should be easy, people tend to accept invites without looking [21:50] then make the request on IRC [21:50] we should write this process in a google doc and send it out to juju-dev ;) [21:51] :D [22:22] davecheney, waigani: email standup today? [22:31] menn0: sounds good [22:50] sinzui: i merged your makefile changes directly [22:56] menn0: sure [23:01] sinzui: how are the builds looking at the momnet [23:01] i see there are no blockers [23:01] i'm going to try to land my large api refactor branch today [23:01] and I'd like to not land it on top of other breakage [23:18] davecheney: I don't know how I missed that, I have the conflict locally now thanks [23:21] waigani: you are a winner [23:22] http://www.teddideppner.com/wp-content/uploads/2013/08/korben-dallas-winner-500x278.jpg [23:27] whoop whoop [23:49] anyone very expert in api calls? [23:50] perrito666: proably me or jam === xavier is now known as Guest55763