[00:06] thumper: juju run --machine=0 "echo $http_proxy" <--- that should work right? [00:06] yep [00:06] ok, ta [00:09] wallyworld: pong [00:09] rick_h__: hi, i got my question answered. i was asking about charm store and http proxy [00:10] wallyworld: cool, good because I don't know any answers around proxy use :) [00:10] :-) [00:15] davecheney, one more look please sir https://github.com/juju/juju/pull/401 [00:17] * davecheney sir looks [00:24] mattyw: closer, but one more round please [00:24] davecheney, no problem, thanks for looking (sir) [01:16] perrito666: probably too late, but recover() [01:20] c.Assert(uuidA, gc.Not(gc.Equals), uuidB) [01:20] ... obtained string = "6216dfc3-6e82-408f-9f74-8565e63e6158" [01:20] ... expected string = "6216dfc3-6e82-408f-9f74-8565e63e6158" [01:20] da fuq [01:20] type [01:20] axw: must be [01:20] or one implments Stringer() [01:22] davecheney, please sir, can I have some more https://github.com/juju/names/pull/20 [01:25] katco: are you awake? I can't see the card you're talking about in your email [01:26] the link is just to the board AFAICT [01:26] wallyworld: ^^ [01:26] axw: that test was asserting that two calls to utils.NewUUID returned two different uuids by bootstrapping two environments, then comparing the results of env.UUID [01:26] axw: it's the car din coding lane [01:26] card [01:27] 1322302 [01:27] davecheney: righto. are they []byte ? [01:27] (ノಠ益ಠ)ノ彡┻━┻ [01:27] thanks wallyworld [01:27] sure [01:43] davecheney, one last one please https://github.com/juju/juju/pull/401 [01:43] davecheney, you know you love it [01:44] mattyw: don't presume to know what I would, or would not, "love" [02:22] dunedin sprinters: http://www.eventfinder.co.nz/2014/the-internet-party-presents-the-party-party/dunedin [02:28] the party of the first party invites the party of the second party to the party of the party party [02:46] thumper: [02:46] func SampleConfig() testing.Attrs { [02:46] return testing.Attrs{ [02:46] "type": "dummy", [02:46] "name": "only", [02:47] "uuid": "90168e4c-2f10-4e9c-83c2-feedfacee5a9", [03:01] thumper: https://bugs.launchpad.net/juju-core/+bug/1348458 [03:01] <_mup_> Bug #1348458: configstore: if the size of the serialised jenv decreases the .jenv file will be corrupt [03:12] davecheney: paste.ubuntu.com/7851754/ [03:14] thumper: https://github.com/juju/juju/pull/402 [03:24] jam2, good morning. can you take a look at my latest versioned login PR? https://github.com/juju/juju/pull/392 [03:50] fwereade: ping [04:10] thumper: fwereade https://github.com/juju/juju/pull/403 [04:11] fighting a few failing tests, but this PR is close to being ready [04:11] reviews appreciated [04:14] davecheney: I think we want Prepare to set the UUID? then it will be valid in the .jenv [04:15] (╯°□°)╯︵JUJU [04:16] (╯°□°)╯︵∩ſ∩ſ [04:17] davecheney: 403 looks good to me :) [04:18] axw: ok, i'll move that logic to prepare [04:18] you are right [04:19] davecheney: cool, thanks [04:19] axw: where is this Prepare method ? [04:20] davecheney: so each Environ defines one, but I think we'd want it to be done in a provider-independent part. there's a Prepare function in the environs package [04:20] which calls the Environ-specific one [04:21] davecheney: update environs.prepare (lowercase), which does similar things for certs and admin-secret [04:22] ok [04:25] axw: thanks, that is much clearer [04:29] axw: ptl [04:29] ptal [04:29] i'm running the tests again now [04:29] looking [04:29] 'no [04:29] stop [04:29] i fucked up [04:29] k [04:30] ok, fixed [04:51] % juju destroy-environment -y $(juju switch) [05:05] davecheney PTAL : https://github.com/juju/juju/pull/351 [05:05] I won't presume to say you'd love to [05:11] cmars, https://github.com/juju/juju/pull/369 [05:11] jcw4, even though he does [05:11] mattyw: :D [05:13] it looks like I lost davecheney to the party of the second party at the party of the party [05:14] i'm partied out [05:14] hehe [05:14] davecheney, less chatting, more reviewing [05:15] mattyw: less colonies, more brtiania [05:16] Britannia? mattyw is a pommie? [05:16] or wait... vice versa [05:16] I AM ZUUL, THE DESTROYER OF ENVIRONMENTS [05:16] CHOOSE [05:16] CHOOSE THE FORM OF THE DESTRUCTOR [05:16] :) [05:16] davecheney, sounds like you're done for the day as well [05:17] jcw4, and yes, me = pom [05:17] visiting the convicts this week mattyw ? [05:17] I guess that wouldn't be NZ [05:18] I'm getting confused with AUS [05:18] jcw4, I have to keep an eye on things for auntie Liz [05:18] no convicts in NZ [05:18] hehe [05:18] well, none that I am related too [05:18] davecheney, iirc convicts escaping from aus usually ended up in nz [05:19] so yes, there are convicts - "the ones that got away" [05:19] ex-cons ... perfect [05:21] I better not antagonize davecheney until he's done with https://github.com/juju/juju/pull/351 [05:23] jcw4: i'm sensing you want something [05:23] no [05:23] wait [05:23] don't tell me [05:23] i'll figure it out [05:23] hehe, well, since it's after 5pm there, it may end up being mgz that has to suffer through it [05:44] fwereade: did the rest of the sprint team loose internet? [05:45] lose even === jcw4 is now known as jcw4|Zzz [06:31] wallyworld: I've got all the tests passing with 2.6 again, and local bootstraps. need to make sure 2.4 still works, then I'll get onto proposing a bunch of branches [06:31] need to go pick up my daughter and do a couple of things at the other house right now tho - bbl [07:06] A review on https://github.com/juju/juju/pull/399 would be much appreciated :) [07:13] axw: awesome, look forward to the branches [10:29] rogpeppe1: heya. in case you were thinking of doing it, I thought I'd better let you know I'm going to update charmstore to use gopkg.in/mgo.v2 in the near future [10:30] I'm updating everything from labix.org/v2/mgo -> gopkg.in/mgo.v2 [10:30] axw: ah, cool [10:30] axw: does that mean i can finally move forward with using gopkg.in/juju/charm.v2 ? [10:30] * axw shrugs [10:30] I don't have a problem with it [10:31] axw: as AFAICS the only argument against it was that it introduced a new dependency [10:31] we now have gopkg.in/natefinch/lumberjack.v2, so I don't think that's a valid argument anymore [10:31] axw: could you submit a PR for the v4 branch of the charm store too, please? [10:31] axw: right [10:31] axw: the v4 branch is what we're currently working on [10:31] rogpeppe1: sure, will make a note [10:31] axw: ta [11:59] katco: mgz: i made it back in time [11:59] wallyworld_: :) === cliff-hm is now known as cliff-mtg [12:18] mgz: katco: sorry, google has died, trying to reconnect [12:19] wallyworld_: np [12:19] morning all [12:35] natefinch: morning [12:37] axw: still here? === psivaa is now known as psivaa-afk [12:47] morning everyone [12:48] mornin' [12:49] * perrito666 sharing office with friends... one gets to miss the connection all for himself [12:49] sinzui: morning are you around? [13:03] * perrito666 notices that we all add each other on g+ just to get rid of the "there are people in this call which are not part of your circles" message [13:08] perrito666: :) [13:08] perrito666: it boggles me that Google didn't anticipate this issue [13:09] what do you mean it didn't? that message is a clear plot from google to make people use g+ [13:10] katco: they may have. I can just imagine a comment above the notification code saying: trolololo [13:10] gsamfira: lol [13:17] in tests, we alias the various testing subdirectories, e.g.: kvmtesting "github.com/juju/juju/container/kvm/testing" [13:17] what would be a good alias for "github.com/juju/testing"? [13:18] katco: we do that when we have two testings involved usually [13:18] coretesting is already taken in this instance by "github.com/juju/juju/testing" [13:18] coretesting iirc is the alias used for that [13:18] ah [13:18] lol [13:19] ;) [13:19] well you can use that one as testing [13:19] i am psychic! or at least a good neural network [13:19] and then alias the regular testing [13:19] as stdtesting [13:19] so github.com/juju/testing as stdtesting? [13:19] or maybe just "testing" since it's most root? [13:20] katco: ah if you have no testing other than that I guess testing is a good reason [13:20] s/reason/name [13:21] hint: if you talk to me when i am typing i will write whatever you tell me [13:21] no, sorry, there _is_ other testing, but i don't know what's more general than "coretesting" [13:21] perrito666: LOL [13:21] i do that too sometimes [13:22] actually, there's a funny story that when they used to pay typists to type in handwritten books, sometimes the typists would slip in whatever they were thinking at the moment [13:22] there were some funny entries :) [13:22] whel it is a side effect of touch typing I guess [13:23] sometimes the wrong thread will irq and then you start dropping the wrong stream to stdout [13:23] LOL [13:23] nerd humor is the best humor :) [13:24] natefinch: U around? says my cal I need to call you in 6 mins === jcw4|Zzz is now known as jcw4 [13:39] Something bad landed in trunk in the las 14 hours. All the upgrade tests for all the substrates failed. I am looking for the first cause. Once there is a failure, all subsequent attempts to use the env fail because there are invalid mappings in the jenv. [13:40] sinzui: I just noticed the same [13:40] sinzui: in my case the last N bytes of the jenv are repeated [13:40] I also need to purge all the clouds of the dead zombies instance. [13:41] uff, thank god i thought I was going crazy [13:41] sinzui: hm, any rough idea of the blame rev? [13:44] mgz, I am still looking. [13:47] I put my money on 5b54fcbfc1a651c5e2435f13b2b479187cc5499f [13:49] but I just read the PR messages so dont take my word for it [13:49] sinzui: mgz [13:50] mgz, perrito666 the issue happened after commit f81c377f, first seen in commit 7c98f388 :( [13:51] CI was testing the 1.20 branch for more than 20 hours, so many commits were merged into master [13:51] * perrito666 checks [13:53] sinzui: f81c377f is most likely not related [13:54] perrito666, 7c98f38891eb98e6f1a8b01a46e3a9700eb51003 might be the corrupter of the env. http://juju-ci.vapour.ws:8080/job/aws-upgrade-precise-amd64/1569/console end with a report of bad yaml [13:55] sinzui: I doubt it [13:56] that change is harmless [13:57] 3613c1I wonder if trunk would actually pass [13:57] whooops [13:57] mgz: / [13:57] and it's just the juggling of environ config that borked it [13:57] ? [13:58] pr 362 + pr 387 [13:59] hey guys, i'm getting a nil pointer error running juju status: http://pastebin.ubuntu.com/7856024/ [14:01] mgz: sinzui let me run my current branch with a test I know it fails and I can tell you fast enough (~15 mins) [14:02] perrito666: thanks [14:02] perrito666, mgz: this is a jenv left behind. I don't see anything wring with it other than it was left behind: https://pastebin.canonical.com/114224/ [14:02] natefinch, perrito666: standup? [14:02] ericsnow yep [14:03] tvansteenburgh: weird... there's a nil check that should stop that, at least in trunk [14:03] sinzui: my quick guess it re-writes in the same file without truncating prev content [14:03] natefinch: ericsnow gimme a sec [14:04] hm, and that would suggest a windows change... [14:04] perrito666: no worries [14:04] sinzui: mgz if that is the case, the second write is shorter and therefore leaves dirty file [14:04] I am actually surprised we can do that :p [14:05] ok, running test_recovery with master tip [14:05] that should tell us if this is still failing [14:06] mgz: anyway if it works it means we are still writing improperly but being lucky [14:06] ok running we will have to wait a moment [14:11] natefinch: any suggestions for working around this problem? [14:14] tvansteenburgh: investigating [14:49] natefinch: sorry, I kept interrupting you! [14:49] sinzui: mgz master seems to be working [14:49] sort-of ace [14:49] oooor, its writing more in the file [14:49] :p [14:49] um.. [14:50] so not then [14:50] because I am getting uuid which i did not before [14:50] frig, godeps is platform specific [14:50] godeps ./... on linux prints out all the dependencies for linux, but leaves out dependencies that only exist in windows-specific files :/ [14:51] mgz: I suspect the bug was there longer than we supposed [14:51] probably [14:51] bleh [14:52] I see some changes from tim which might be touching how the jenv is saved check 5b54fcbfc1a651c5e2435f13b2b479187cc5499f [14:52] right, that revert and the initial change was my guess for the breakage [14:56] perrito666, mgz: the problem is [14:56] * perrito666 drumrolls [14:56] existential tension [14:56] line 138 from the pastebin. "zonaws.com/testing/tools" is missing the end colon [14:57] ^ mgz, perrito666 , so is it a package not juju itself that is evil [14:58] Oh, I see, that is truncation of tools-metadata-url: http://juju-dist.s3.amazonaws.com/testing/tools from line 135 or 136 [14:58] true [14:59] in my case its the same but eople.canonical.com... blah and then a newline that says type:ec2 [14:59] sinzui: yup same issue [15:00] it is consistent-ish with my guess [15:00] but i have no evidence to support it [15:00] rogpeppe1: I just realized using godeps to print out dependencies is platform-specific to the platform you're running on... e.g. we have dependencies that only exist in _windows.go files, and those don't get picked up by running godeps on linux. Do you know if that's fixable? [15:01] natefinch: do you want to fix that? [15:01] natefinch: it is fixable, but not trivially [15:01] i mean, there is a chance that the dep is also windows only [15:01] natefinch: the default is just to use go/build's defaults [15:01] perrito666: yes, but if you use godeps on the wrong platform you'll get the wrong dependencies [15:02] or rather... you'll get a partial list which is ok for you on your platofrm [15:02] natefinch: wich mkes some sense [15:03] go deps will give you what you need to build your app in that platform [15:03] sinzui: my test run was wrong, re-running now, just in case /cc mgz [15:04] perrito666: but in *generating* the list of dependencies... you want it to find *all* dependencies for *all* platforms [15:06] man, TSV is the worst format ever [15:06] at least for hand editing :/ [15:06] not worst every, obviously... just frustrating when it tells me my file is invalid [15:07] natefinch: missing the tab at the end? [15:07] perrito666: does it need a tab at the end? [15:07] yup [15:07] iirc [15:07] 4 columns [15:08] you have to love the 70s [15:08] :p [15:08] maybe the newline at the end of the file is the problem? === psivaa-afk is now known as psivaa [15:08] natefinch: also [15:08] it needs only 4 column lines [15:08] so [15:09] if you lack the tab at the end and perhaps if you have a newline it might fail [15:09] yes, it is a really sad set of limitations [15:14] * perrito666 is going to screengrab restore test and release it as the next thriller movie hit [15:18] sinzui: perritoec2 restored [15:18] PASS [15:19] although i would not vouch for the jenv error to be fixed, just covered [15:19] (sinzui, In other news restore works again, ill pr) [15:21] what are you supposed to do when rebase says it can't apply a revision? [15:21] natefinch: fix the conflict [15:21] then git add the conflicting file/s [15:21] then rebase --continue [15:21] iirc [15:21] commit might be involved but i dont remember [15:22] it doesn't tell me what the conflict is, though [15:22] git status [15:22] UU [15:22] UU is the st of the conflicting file [15:32] how do I cancel out of a rebase if it opens up and I realize it has the wrong stuff in it? [15:34] natefinch: interactive? don't you delete all the rev lines (I believe it says something like that) [15:35] natefinch: for normal rebase I believe it's something like git rebase --abort [15:35] interactive, yeah... [15:35] natefinch: it should say something in the comments there on what to do [15:45] natefinch: what do you mean the wrong stuff? [15:45] remember that it will replay old commtis [15:47] perrito666: like, I do rebase -i HEAD~3 and what it brings up bears no relation to what I expect it to bring up, so I want to cancel out of it [15:48] I tried to rebase my log rotate PR to squash it into a single commit.... and one of the commits I wanted to squash just won't show up [15:48] I probably screwed up my branch with an earlier bad rebase.. I don't know [15:49] There's obviously some stuff about how git is working things that I don't understand. It all went to hell after I merged from trunk to fix a conflict [15:50] I think my mistake was actually merging from master, instead of doing the rebasey thing where my changes get plunked back on top [15:52] natefinch: sounds to me like that should rebase your last 3 ommits [15:52] rebase ~3 brings up like 100 commits [15:52] I think it's bringing up all the commits that were merged [15:53] from master [15:54] but it's too late, it's already merging as-is [15:54] finally got the tsv in working order [15:55] natefinch: :| [15:55] I've been wrestling with git for far too long to worry about having one or two extra commit lines in master [15:56] my push hook complains of: [15:56] environs/config/config.go:800: undefined: schema.UUID [15:56] ... I am pretty sure I was not even close [15:56] does anyone else see that in master? [15:57] godeps? [15:57] ah duh [16:05] https://github.com/juju/juju/pull/404 [16:05] please review ppl fixes a blocker bug so its sort of important [16:06] * perrito666 looks at mgz and natefinch [16:07] looking [16:07] can you add the bug number to the description? [16:07] oh nevermind [16:07] in title [16:07] not that I can click it there [16:08] I need a chrome extension that'll make lp:foo actually work. [16:09] perrito666: what is return value 100? [16:09] dang, I can't read today, nevermind [16:15] what are the odds of getting an LGTM / LWTM on 399 today? [16:16] it's a fairly simple jujuc addition for Actions to get passed args from the stateservice [16:17] tests are a tad bit verbose but it's quite straightforward [16:41] natefinch: you saw the comment above that? [16:50] giant regexes make for really shitty test failure messages [16:51] that they do [16:56] natefinch: i have a feeling i know exactly what code you're looking at [16:57] cloud init [16:58] well nm. i ran into the same thing in the upstart stuff [16:59] anywhere we are doing a giant regex against a script we write [17:01] katco: cloudinit writes upstart scripts, and yes, it's in that code [17:01] oy... my condolences [17:02] mgz: the cloudinit code currently does some finagling with the log files to "Ensure log files are properly protected" - chowning them and chmodding them [17:03] mgz: I have a CL to use my log rolling package to roll the logs, which does not currently do the same thing [17:04] natefinch: when you do the rolling itself right? the inital log would still have correct owner/perms I'm guessing [17:04] you probably just want to add a copy-owner-perms thing to your rotator and use that [17:05] mgz: that's a really good idea, yeah [17:05] though I do wonder why we're rolling our own on this, yet again... [17:08] mgz: this was a package I wrote in my free time. We could use logrotate, but that's just more external dependencies and setup. Plus, then we'd need something else for windows machines. Having a pure software solution is almost always better than adding dependencies [17:09] natefinch: i think mgz might be referring to this: https://github.com/avelino/awesome-go#logging [17:09] well, not if we have to go and get told by our users about thirty years of logrotate good practive after release... [17:09] but it's your fun to be had :) [17:10] the main reason is that we'd have to find something else for Windows [17:10] but yes, I know how linux users like to complain that you don't use 1000 external utilities for something you can do easily in your own code. [17:15] wow, full screen really does not work well with unity [17:16] how so? [17:16] natefinch: well I have firefox in fscreen and every time I go to that desktop unity takes focus [17:16] natefinch: hey just thinking about that a little... why not use the windows event logs? those have log rotation etc. [17:16] natefinch: and it's the more canonical place for people to check for things [17:18] katco: I think of the event log as more of a place to write errors and problems, not just general logging [17:18] natefinch: nah, it has an informational log type for a reason [17:18] * natefinch wonders at katco's sudden knowledge of Windows subsystems. [17:19] haha, no! no windows work! [17:19] haha [17:19] You're safe, you're not on my team.. I can't delegate all my work to you the way I do to my team ;) [17:20] lol [17:20] hey, don't act as if we where not here :p [17:20] I haven't ever used the windows event log that way, so I'm really not that familiar with it. [17:22] gosh i am really getting mired in juju's test philosophy. i vacillate between whether we do functional style testing or unit testing. [17:23] we do both, which I think is ok... but I think our functional tests tend to be overly broad and requiring way too much fragile setup [17:23] why all rogpeppe mails get here duplicated? [17:23] haha [17:23] in a recent review, wallyworld mentioned that he wishes a test were more black-box to just test the side-effect we desire, but when i try and do that, i find that the underlying object is mocked away and won't give the desired side effect [17:23] he just emails from the wrong account all the time and has to resend from the right account [17:24] natefinch: yet I get both [17:24] so as a new person, i'm left a bit confused... do i expand the mock to mock the side effect? but then isn't that just an invalid functional test? or do i switch to unit tests and test the interaction? [17:25] katco, the input I've received from fwereade on that topic is that we need a pass and fail case actually integrating with the next level up or down, and to use mocks to exercise the error paths in the code to verify that they work as expected [17:26] so the mocks aren't for checking that the code has the desired effect, but rather to check that the code itself behaves as expected [17:27] I'm not sure if that answers your question, though [17:27] bodie_: would you mind taking a few minutes to walk through a concrete example with me? [17:27] (specifically the one i'm working on) [17:27] bbl [17:27] sure thing [17:29] sinzui: https://github.com/juju/juju/pull/404 <-- you should see restore tests passing after this lands on Ci [17:33] mgz: I need to leave for a moment now but I am pretty sure that the issue lies on the change to locking that tim added in https://github.com/juju/juju/commit/5b54fcbfc1a651c5e2435f13b2b479187cc5499f [17:39] checkin' [18:03] any chance I can get a review on 399 today? [18:04] https://github.com/juju/juju/pull/399 -- relatively simple code, slightly verbose tests [18:04] ask me anything :) [18:06] bodie_: is this comment correct? ActionGetCommand implements the relation-get command. [18:07] good catch, no [18:08] fixed [18:11] natefinch, addressed your query [18:13] there, that's a bit cleaner [18:17] natefinch, pushed update [18:17] only reason I didn't comment all the exported bits was that they weren't commented in config-get -- I'll fix that as well [18:21] there, that should be good. [18:22] bodie_: thanks for the comment, that makes a ton more sense [18:22] natefinch, sorry to waste your time there, I'll make sure I'm keeping aware of the obvious bits before grabbing review [18:23] yeah, it's a little bit semantically funky. [18:25] bodie_: are the leaf values always strings? [18:28] the values might not be [18:29] the keys should always be [18:29] I just realized I think I need to add some test cases for bad args, or remove that logical branch from the test [18:29] should be minor [18:30] negatives tests are always enlightening [18:30] tests with non-string values would be good, too [18:30] not that I think there will be any problem... you're not really every touching the answer [18:31] s/every/ever/ [18:43] ericsnow: in you opinion, is it worthy to build over your changes of juju restore cli? [18:43] perrito666: it's not a big change so probably not :) [18:46] natefinch, poked those in there as well [18:50] bodie_: looks good to me. I don't really know the actions spec to know if there's any errors in the logic, but the code looks solid enough as it is. [18:52] the hole is that it's possible to have lists in the params map, with inner maps [18:53] however, I think action-get key.innerkey.someList[2].anotherkey.somethingelse[3] is just ... pushing it [18:53] so you need another case in the type switch for []interface{}? [18:53] ahh I see what you mean [18:54] if someone wants a list, they can just make the keys to their map integers, and it basically works the same [18:54] It's probably arguable either way. for now I think this makes more sense than getting too fancy. [18:56] bodie_: is there someone else who knows this stuff better than can review to make sure I haven't missed anything? I feel like I don't really have enough context to give it the LGTM [18:57] probably fwereade or mgz would be able to make a call [18:57] I think it does what it does properly; I'm not totally certain it does everything it could need to do, though. [18:58] but, that seems like functionality that can easily be added [19:01] * perrito666 notices he never added a cli command for juju [19:31] is there a clear example anywhere of how to utilize the simplestreams package to give you a url for an image? [19:48] * TheMue comes nearer to IPv6 addressing and routing between LXC containers on different hosts. [19:51] katco: wallyworld knows the simplestreams well.... the rest of us, not so much [19:52] =/ [19:53] katco: you are trying to get info from a dev on a friday afternoon :p [19:54] haha [19:54] who I believe must have kids on holidays :p === sebas538_ is now known as sebas5384 [22:02] fwereade: ping [22:16] Simple PR https://github.com/juju/juju/pull/405 - PTAL [22:23] heya all, I'm getting panics on juju set in 1.20.1.1, fyi. https://bugs.launchpad.net/juju-core/+bug/1348829 [22:23] <_mup_> Bug #1348829: juju-core client panics with juju set empty string === Beret- is now known as Beret === Ursinha_ is now known as Ursinha