menn0wallyworld__: ping?00:10
sinzuiOh fab, CI thinks trunk is bzr because the first 8 chars of the hash are numbers00:43
menn0wallyworld: do you have time for a quick chat about gridfs?00:50
wwitzel3someone have time to hangout, I need an ear to bend about the approach of this refactoring fwereade has suggested to me.01:03
wallyworld__thumper-afk: meeting? when you get back?02:05
wallyworld__axw: you had any breakthroughs on the session closed errors etc?02:06
axwwallyworld__: nope02:07
wallyworld__it will probably be something simple once the cause is found02:08
wallyworld__axw: so you checking that precise cloud init supports the new apt feature?02:09
axwwallyworld__: I have checked it works with cloud-init, I'm just checking the sshinit bit works on precise too02:09
axwno reason for it not to, but I should be thorough02:09
wallyworld__great, thank you02:10
wallyworld__just checking you aren't stuck for stuff to do02:10
wallyworld__the address change stuff still wip i assume02:10
axwwallyworld__: well, not actually working on that atm. I want to get some more agreement first. I did finish the unit config-change bit02:11
wallyworld__np, do you need me to poke william?02:11
axwwallyworld__: need some more discussion with hazmat I think02:12
wallyworld__ok. the next largish chunk of work is to replace http storage. but i'd like to see if we can get the tests sorted first02:13
axwokey dokey02:13
wallyworld__worth spending some time on the tests as it will have a big affect on team velocity plus we will learn lessons that can be shared and used02:14
axwwallyworld__: I think you said perrito666 was working on separating StateInfo from storage?02:14
axwI think that will be a prereq to get it to work02:15
wallyworld__yeah, there's supposed to be a new api or some such - that's what william told me02:15
wallyworld__so we can do the http stuff and also replace cloud storage02:15
wallyworld__for tools, charms02:15
wallyworld__but i also have to move the storage stuff to a separate repo02:16
wallyworld__but i want martin to get the lander sorted out first02:16
wallyworld__i'll check the StateInfo progress also02:16
katcowallyworld__: unit tests pass; doing empirical testing now, and should have a pull request contingent on that02:18
perrito666wallyworld__: axwI am not working on such feature02:18
wallyworld__katco: great :-D02:18
perrito666wallyworld__: axw not that I can remember02:18
axwperrito666: ah ok. maybe someone else02:19
wallyworld__perrito666: william indicated there would be an api to allow state server addresses to be found without having to reply on a file stored in environment storage02:19
axwkatco: hello! you're working rather late aren't you?02:19
wallyworld__maybe it wasn't you? i thought i was but i could be wrong02:19
katcoaxw: i am :p but i'm interested. i want to get this change in so i have a clean plate tomorrow. i won't make a habit of it ;)02:20
katcoi also got distracted by my stupid addiction to food.02:21
waiganiaxw: do you have an example of an error path releasing resources? I know you and davecheney have been working on it recently. What's the correct and incorrect way now?02:21
perrito666wallyworld__: mm, I am about to sleep now but if you could email me that It would be greatly appreciated we might be only having misscomunication due to the fact that  should be sleeping02:21
wallyworld__ok :-)02:21
wallyworld__good night02:21
perrito666wallyworld__: tx02:21
davecheneytoday in "Dave waits for the build bot": listening to podcasts and filing bugs :(02:21
axwwaigani: I just meant make sure files and such are closed when a function exits02:22
waiganiah right02:22
axw"defer f.Close()" usually02:22
davecheneymy god, who thought that was a good idea02:22
* katco pulls up a seat next to davecheney. ah, bootstrapping juju machine agent. a fascinating show.02:22
wallyworld__katco: well, you'll have 2 clean plates - one the food was on the the other your todo list :-)02:23
* davecheney ages visibly waiting for juju bootstrap02:23
axwdavecheney: you should disable apt-get upgrade... oh wait.. :)02:23
* davecheney grins, morbidly02:24
waiganiit's like a magic spell - you have write say 'juju' at least three times for it to work ;)02:24
axwwallyworld__: bootstrapping precise works with eatmydata02:24
davecheneyhmm, https://bugs.launchpad.net/juju-core/+bug/133703802:24
_mup_Bug #1337038: cmd/juju: map ordering test failure <juju-core:New> <https://launchpad.net/bugs/1337038>02:24
wallyworld__axw: \o/02:24
davecheney i wonder how this happened02:24
axwwallyworld__: or rather, it works despite eatmydata not being installed02:25
axwby default02:25
katcowallyworld__: i suppose i should assign this bug to myself on launchpad?02:25
wallyworld__katco: yes, sorry i should have mentioned that02:26
axwI'm tempted to write a program to transform the tests so that it randomise everything that isn't guaranteed to be deterministic02:26
katcowallyworld__: no worries... i just wasn't sure what the workflow was02:26
wallyworld__katco: and before we moved to github, it would be marked as fix commited automatically after the branch  merged but now we need to do it manually02:26
wallyworld__axw: or upgrade Go to use the new map implementation :-)02:27
katcowallyworld__: ew bummer. maybe we can do a jenkins or github trigger to update it. i assume launchpad has an api?02:27
wallyworld__katco: yeah, it's on the "do this to make things nicer once the core stuff works" list02:27
katcowallyworld__: should i flag this fix for a milestone? or is that someone elses purview?02:27
katcowallyworld__: gotcha. i think i have a slide in my presentation that says something along the lines of, "your iteration is the only thing that will happen again and again. making it better has multiplicative returns"02:28
wallyworld__katco: normally the bug would be assigned a milestone, usually "next-stable-release", and then moved to the correct actual milestone one the release number milestone gtes created02:28
katcowallyworld__: ok, i'll do that02:29
wallyworld__katco:  someone would normally do that, but i got distracted as I just picked out some simple bugs for you that were not on the radar so to speak02:30
katcowallyworld__: oh ok. np. thanks for the bugs :)02:30
wallyworld__anytime, i have *lots* more :-)02:30
katcogee, sorry. i only fix 1 bug per team. (cough)02:30
axwwallyworld__: I think we should remove the second "go test" from the lander now02:34
axwit's just holding up the queue now02:34
wallyworld__axw: i'm inclined to agree, but i think we can (and do) still get spurious failures on full parallelisation?02:34
axwwallyworld__: I've seen it once since I made my change02:35
axwwallyworld__: I think that's low enough rate to get people to resubmit02:35
wallyworld__true, and if there's a real failure, it will report quicker02:36
wallyworld__makes it harder to now if we've fixed the race too :-)02:37
axwheh. I'll see if I can reproduce the bugs in a VM with slower I/O02:37
wallyworld__axw: martin should be calling the bog standard script from the release tools repo - but i think he still needs to switch over. i'll get him to turn off retry when he does that today/tonight02:38
wallyworld__katco: the logging stuff - loggo comes with a default stderr writer registered. the various agents are configured to run via upstart, and have their stdout/err directed to a log file - see juju/upstart/service.go02:40
wallyworld__so that's how the log calls get stuff to a log file02:40
katcowallyworld__: thank you!02:41
wallyworld__katco: so, next step is to figure out how to tell upstart how to create the file with different permissions02:41
sinzuiwallyworld__, If I read this run correctly, only 2 tests fail in lxc with -p 202:41
wallyworld__that i do not know off hand02:41
wallyworld__sinzui: which run?02:42
sinzuiwallyworld__, looks like 1.20 at f325c87bd1dc92ac58bdc347568a6d901b60717202:43
wallyworld__sinzui: with andrew's change to use tmpfs, tests are now very reliable. so more may fail in lxc due to slower i/o as it seems slow i/o has a repeatable negative impact on the tests02:43
wallyworld__sinzui: you mean that the above revision looks like it is good for release as 1.20?02:45
waiganidavecheney, menn0: thanks for your input :)02:45
sinzuiwallyworld__, that log claims to be the 1.20 we were testing all day02:46
menn0waigani: no problems. that list might well help me.02:46
sinzuiwallyworld__, I see a new round of tests started with master. I can run the lxc version of the test with this run02:46
wallyworld__sinzui: can you point me at the log toy refer to?02:46
katcowallyworld__: ok, i think i've submitted a pull request. what would i paste here to get a review?02:47
wwitzel3so I have a package in environs that contains a bunch of interfaces and struct all related to exposing parts of the environ to state. Right now I have that package named "hackage" .. obviously that won't work, looking for suggestions.02:47
wallyworld__katco: you can reasonably expect the on call reviewer to pick it up. but you can also paste the pull request url here and beg offer $$$$ for a review. i only accept $100 bills02:47
katcowell here it is: https://github.com/juju/juju/pull/23202:48
* menn0 thinks wallyworld__ hates him ... :)02:48
katcoi expect that i have done something wrong02:48
katcoso let me know :p02:48
sinzuiwallyworld__, This the log I was reading: http://juju-ci.vapour.ws:8080/job/walk-unit-tests-trusty-amd64/1115/consoleText02:48
wallyworld__katco: you for getting something..... ?02:48
katcooh right02:48
wallyworld__menn0: why?02:48
* katco hands wallyworld__ a $100 bill and a wet trout02:48
menn0I've been ping and PMing you all day02:48
menn0wallyworld__: ^^02:49
menn0wallyworld__: but no response02:49
* menn0 puts on big sad puppy dog eyes02:49
wallyworld__menn0: sorry, i often miss private pings because i don't hear the notification and your nic is off my screen, and also my connecton for irc has been flakey :-(02:49
wallyworld__sorry :-(02:49
katcooh wow davecheney is all over that. thanks :)02:49
wallyworld__menn0: also you didn't give me money like katco just did02:50
menn0wallyworld__: so that's what it takes these days...02:50
katcopsst, menn0, it was monopoly money. he doesn't notice!02:50
menn0katco: thanks for the tip. I wonder if he takes dogecoin?02:51
wwitzel3menn0: also, he told me he hates you02:51
menn0wwitzel3: I KNEW it!02:52
wwitzel3menn0: hey wanna help me name something? :)02:52
menn0wwitzel3: ummm sure02:52
* menn0 wonders if this is a trap02:52
wallyworld__wwitzel3: i hate you too :-)02:52
wwitzel3menn0: see about comment .. I have a package currently called hackage in environs that contains interfaces and a struct that is used to represent information needed about an environ to state.02:53
wallyworld__sinzui: that's not a bad test run for being inside lxc - only a few things to fix :-)02:53
katcook so now i've commented with $$merge$$, and jenkins will pick that up and perform a build and then merge if it's clean?02:53
wallyworld__katco: yep02:53
wwitzel3wallyworld__: haha, well at least I know you feel something! :P02:53
katconice! which build am i interested in?02:53
wallyworld__wwitzel3: there's a line there but this is a family channel02:54
wwitzel3wallyworld__: hah02:54
wallyworld__katco: http://juju-ci.vapour.ws:8080/job/github-merge-juju/02:54
* menn0 thinks02:54
wallyworld__katco: but the queue is full of other jobs right now02:55
katcowallyworld__: ty. how long does it usually take the worker to pick that up? assuming workers are free02:55
wallyworld__katco: we are moving the landing job to it's own slave soon02:55
wallyworld__katco: you will see an email within a minute02:55
axwkatco: you need to make your juju membership public on github02:55
wallyworld__if the queue is not blocked02:55
axwotherwise the bot ignores your comment02:55
wallyworld__oh yeah, that too02:55
axwkatco: https://github.com/orgs/juju/members02:55
rick_h__wallyworld__: whatever happened to cake being the official offering?02:56
wallyworld__rick_h__: cake can't buy love02:56
wallyworld__$$$$ can02:56
rick_h__wallyworld__: thought back in the LP days cake was the offering for things, sad to see that sell out and go all $$02:56
menn0wwitzel3: what kind of stuff about environs is being exposed to state?02:56
wallyworld__rick_h__: indeed. but these here are crazy time. new world order. survival of the fittest02:57
katcoaxw: ok thanks, i've done that02:57
wwitzel3menn0: ConfigValidator, PrecheckerInstance, EnvironCapability, and InstananceDistributor .. state combines them all under a Policy interface to represent a given environ.02:57
wallyworld__katco: your job is now pending02:57
menn0wwitzel3: environ_policy or environ_state_policy?02:59
menn0wwitzel3: environ_state?02:59
menn0wwitzel3: not that great I realise...02:59
wwitzel3menn0: yeah, was thinking something along those lines, environs already has a statepolicy which does some of the marshalling of the data, so I was thinking of creating an environ_state and moving that under along with the current "hackage" stuff.03:00
wwitzel3menn0: but then, I hate to use state again anywhere, lol03:00
axwwwitzel3: are there new bits in hackage, or are you just moving existing things?03:00
menn0wwitzel3: yeah - it sounds reasonable (based on my limited understanding on what you're doing)03:01
wwitzel3axw: just moving things so that environs no long depends on state03:01
wwitzel3axw: I was running in to some import cycle issues when implementing the EnvironmentAPI and fwereade pointed out this would be good chance to sever that dep which really isn't needed.03:01
katcowallyworld__: so say this fails for some reason, what is the workflow?03:01
wallyworld__katco: you fix the failure, push, and type $$merge$$ again03:02
wwitzel3axw: hrmm, yeah that actually makes sense since it is the environ policy and the whole point is that is doesn't care about state.03:02
wallyworld__katco: if it's a suprious failure in the bot, just type $$merge$$03:02
wwitzel3axw: I guess I thinking about it too much03:02
axwwwitzel3: yup. it's just a way for things to hook into environment behaviour03:02
rick_h__wallyworld__: dont' you all have to remove the 'merge request accepted' comment in github?03:02
katcowallyworld__: so i should be very interested in the results of this job, as it's on me to fix the merge? is the merge gated? will it still merge if the build fails?03:03
wallyworld__rick_h__: we don't / haven't been03:03
rick_h__wallyworld__: and the extra $$merge$$ should do nothing. :/03:03
wwitzel3menn0, axw: thanks, I will go with environs/policy and people can suggest alternatives during review if they so desire :)03:03
wallyworld__katco: merge is gated, yes03:03
rick_h__ummm, ok. That's interesting03:03
wallyworld__katco: won't merge untl the tests pass03:03
wallyworld__rick_h__: why?03:03
menn0wwitzel3: sounds ok to me03:03
katcoi was interested that the tests take so long. is it b/c it's tied into mongo?03:04
rick_h__wallyworld__: because that's the way I wrote it to work. Extra $$merge$$ aren't supposed to do anything03:04
rick_h__wow, you guys are crazy, 35 running pull requests03:04
axwwwitzel3: SGTM. I *think* you just want to move the interfaces in there, and leave the statepolicy.go (impl) stuff where it is03:04
axwwwitzel3: does that sound right?03:04
wallyworld__rick_h__: seems to work for us :-)03:04
rick_h__wallyworld__: yea interesting. Trying to figure out why. lol03:04
axwwwitzel3: just so the state and environs packages have a common interface to reference03:05
axwwithout depending on one another03:05
rick_h__wallyworld__: heh so it works by accident fyi. The idea was that the bot checks if there's 'merge request accepted' comment and if so, it doesn't rerun the merge job. https://github.com/juju/juju/pull/22403:06
wwitzel3axw: yeah, I realized that looking at it, you're right.03:06
rick_h__wallyworld__: so the way to rerun is supposed to be to remove that 'merge request accepted' comment.03:06
wallyworld__rick_h__: lol ok03:06
rick_h__wallyworld__: glad it's working for you, I'll have to make sure not to fix that 'bug' :)03:06
wallyworld__rick_h__: it's now a feature :-)03:07
rick_h__hah, extra added feature03:07
katcocurious why my job doesn't have any text on it03:08
davecheneyaxw: thanks for the review03:16
davecheneythe rabbit hole just keeps going03:16
axwdavecheney: nps03:16
katcoyay i landed my first change :)03:16
katcothank you for the help everyone!03:17
davecheneykatco: and you didn't break the build03:17
davecheneynor did you delete the whole CI infrastructure03:17
davecheney(long story)03:17
katcothere's still time! i can make another change!03:17
davecheneyso, thumbs up!03:17
katcogive me a chance!03:17
rick_h__davecheney: lol03:18
sinzuiWe can put CI back in a couple hours, all that ci machines can be deploy with juju03:19
sinzuiThis is the 3rd ci because canonistack lost the first 203:20
rick_h__sinzui: yea, we have some sublte steps. The lander, system deps, etc are manual still03:21
rick_h__sinzui: though we're going to work on automating it more.03:21
rick_h__sinzui: but we had a new team member wipe out CI on his frist day on accident03:21
rick_h__sinzui: so it's the nice story going around03:22
sinzuirick_h__, :)03:22
=== thumper-afk is now known as thumper
thumperwallyworld: sorry, have been having a sick day and away03:23
thumperthought I might have come back after lunch03:23
thumperbut still not feeling so shit hot03:23
thumperso I'm going to sign off03:24
thumperand see how I am tomorrow03:24
thumperwallyworld: perhaps we can chat tomorrow?03:24
sinzuirick_h__, there are 14 machines in ci 3's env, but the machine count is 53. I have lost 40  machines in the last 3 months03:24
rick_h__sinzui: ouch03:24
rick_h__sinzui: we're up to 4 in one env now, but only because of the ec2/co-locating limitation now03:24
wallyworldthumper: sure np. i'm off tomorrow. the main thing was the resources stuff. but you can reply to the email and we have a tentative meeting next week with rick_h__ and friends03:25
rick_h__bwuhahaha, how can I ruin more of thumper's days?03:25
wallyworldkatco: sorry, was on another call03:26
wallyworldkatco: you can click the console output link to see the job text03:26
katcowallyworld: np. it landed03:26
sinzuidavecheney, Maybe you want to look into this issue soon, or at least advise someone about how to fix it https://bugs.launchpad.net/juju-core/+bug/133706303:26
katcoyeah i had stood up jenkins at my last shop :)03:26
wallyworldkatco: \o/ yay, you are now *officially* a juju-core team member :-P03:26
rick_h__lol congrats katco03:27
katconow to grok more so i can contribute more difficult changes03:27
wallyworldrick_h__: or should that be commisserations :-)03:27
rick_h__wallyworld: not sure what kind of crappy medal you all hand out to the new folks :P03:27
katconah we will do great things together.03:27
wallyworldah, the newbies are always so optimistic :-)03:27
rick_h__katco: what TZ are you?03:27
katcoalexisb told me i get $100 for each commit? is that right?03:28
katcorick_h__: GMT-603:28
davecheneysinzui: we have two options03:28
davecheney1. roll back that change03:28
wallyworldkatco: yep, here you go .... $10003:28
rick_h__katco: oh get out of here03:28
davecheney2. fork the ssh/terminal package03:28
rick_h__katco: don't be like wallyworld and I working at night.03:28
sinzuiyuck for 203:28
wallyworldrick_h__: it's not my night yet :-)03:28
wwitzel3rick_h__: haha, was just going to say, I know what TZ you're in :P03:28
katcolol, i just wanted to get that 1st change in while wallyworld was on03:28
rick_h__wallyworld: yea, but I'll see you in my morning your night and we know it :P03:28
rick_h__wwitzel3: some of us don't know any better any more, but katco has time yet to get on the right path03:29
wallyworldlast night i had a night off :-) drinking with friends :-)03:29
rick_h__wallyworld: woot! I'm going into the woods for the holiday. No cell coverage03:29
rick_h__wallyworld: only a 'clubhouse' with 500kbs wifi connection to the world03:29
wallyworldrick_h__: enjoy that. fireworks in the forrest not so good tough03:29
rick_h__wallyworld: there's a lake they set them off over03:30
wallyworldrick_h__: 500kbps. party likes it's 2001 :-)03:30
rick_h__hoping to get some nice pics with my new camera gear03:30
wwitzel3rick_h__: nice, I'm going to shoot toxic powdered metal in to the sky after lighting it on fire.03:30
* wallyworld loves photography03:30
rick_h__wwitzel3: woot!03:30
wallyworldrick_h__: what gear you got?03:30
rick_h__wallyworld: yea, my new hobby, having fun03:30
rick_h__wallyworld: pany gx7 micro 4/3 with a suite of lenses, mefoto tripid, etc03:30
wwitzel3he uses iPhone + Instagram03:30
rick_h__no apple allowed!03:31
wallyworldrick_h__: nice. i got a nikkon D7000 with nice wide angle, a 70-300 tele, and 35mm prime03:31
wallyworldrick_h__: those portraits are nice03:32
wwitzel3I have Sony aSomething or other with 3 lenes .. and I use my phone for all my pictures :/03:32
wallyworldwwitzel3: rotrl03:32
rick_h__wallyworld: yea, learning and practicing03:32
rick_h__wwitzel3: heh, that's why I went with micro 4/3. It's smaller and closer to something I can carry around03:33
wallyworldrick_h__: just no naked selfies, PLEASE03:33
rick_h__though with my 100-300 lens (200-600 effective) it's a bit big03:33
wwitzel3rick_h__: yeah, I like that form factor, will probably sell my full size and try it out.03:33
rick_h__https://www.flickr.com/photos/7508761@N03/14497325923/ the boy with a 45mm oly prime I got. I just focused on the wrong eye for this pic :/03:33
wwitzel3rick_h__, wallyworld: the only thing I really use it for is doing portraits, I have a fixed focal length lense.03:34
wwitzel3"How do you zoom out?" .. "With your feet"03:34
wallyworldwwitzel3: yep, i here you. i use my 35mm prime as my main lens03:34
rick_h__heh, ok I need to close up shop and go to bed at some point, have fun all.03:35
wallyworldrick_h__: see ya03:35
wwitzel3rick_h__: ttyl03:35
rick_h__wallyworld: thanks for the notes/docs, and so forth. Will look forward to causing each other work soon :)03:35
wallyworldrick_h__: yeah, right back at ya03:35
wallyworldrick_h__: i really want to porgess this stuff :-)03:35
wallyworldaxw: if we want to see lots of spurious failures, look at the output of the job to run tests inside lxc that sinzui set up eg http://juju-ci.vapour.ws:8080/job/walk-unit-tests-trusty-amd64/1116/console03:48
wallyworldand 1115 before that etc03:48
sinzuiwallyworld, yeah03:48
sinzuiI was just pondering a --safe-retry switch to just run tests with -p2, and do it twice03:49
wallyworldif we make makes that job happy, our test suite will indeed rock03:49
axwwallyworld: ok03:49
axwyuck :(03:49
wallyworldsinzui: not a bad idea. we are considering turning off retry option for landing tests now that they seem a lot more reliable running with tmpfs03:50
wallyworldaxw: yeah, shows how far we've got to go03:50
wallyworldbecause we do have ambitions of running the tests isolated in lxc03:50
sinzuiwallyworld, I don't know what your considering. I try tests 4 times with all procs. I was thinking of trying 2 times with only 2 procs. It might be faster on average03:51
=== vladk|offline is now known as vladk
wallyworldsinzui: for the landing tests to gate commits to trunk, we have been running once and then again with -p 2 if the first run failed. now the tests are more reliable, we are looking to turn off the retry option and just fail the run03:52
sinzuiwallyworld, My samples of those tests shows that -p 2 was making them pass most of the time, just run with -p 203:53
wwitzel3wallyworld, axw: https://github.com/juju/juju/pull/234 .. I'm off for the night, but any feedback would be great.03:53
sinzuiwell, I will set that up in some parallel testing to get so better data03:53
wwitzel3wallyworld: the Environment API implmentation is "done", but I'll want to get #234 in first, since I've re-worked it branched off that.03:54
wallyworldsinzui: that's a fair bit slower, and since axw switched to tmpfs, we have had maybe 1 spurious falure out of several runs03:54
axwwwitzel3: no worries, will take a look a bit later.03:54
sinzuiThat would be nice wallyworld03:54
wallyworldwwitzel3: looking, thank you03:54
wwitzel3wallyworld: so once I get #234 merged, I'll get the EnvironCapability API stuff up for review.03:54
wallyworldgreat :-)03:54
wallyworldsinzui: the tmpfs change shows how fragile our tests are and that we have work to do03:55
wallyworldbut for now, it has helped the landing tests be more reliable03:55
davecheneywallyworld: axw nice one04:07
davecheneythe bot is landing changes in 10 minutes04:07
davecheneywell, it runs the tests in 10 minutes04:07
davecheneysetup is still a few minutes04:07
davecheneybut it is significantly better than a few days ago04:07
wallyworlddavecheney: set up will disappear "soon" also04:07
wallyworlddavecheney: and using tmpfs marks our poor tests/race conditions, but gives us scope to fix without holding people up04:08
davecheneywallyworld: i always mount /tmp with a ramfr04:11
davecheneywallyworld: i always mount /tmp with a ramfs04:11
davecheneyi don't think it's an invalid setup04:11
wallyworlddavecheney: slow i/o should not cause tests to fail in a racey way04:12
wallyworldthe setup is valid but the tests ares till broken04:12
wallyworlddavecheney: and there's lots of failures running the tests inside an lxc container04:12
wallyworlddue to the same/similar root causes04:13
wallyworldaxw: nice doc04:16
axwwallyworld: thanks04:17
axwis that addition of supported providers ok?04:17
axwfor automatic spread04:17
wallyworldaxw: yep, +1. thanks04:21
=== vladk is now known as vladk|offline
jcw4PTAL https://github.com/juju/juju/pull/21605:26
=== urulama-away is now known as urulama
=== vladk|offline is now known as vladk
rogpeppeha, i've just seen this: https://godoc.org/github.com/dropbox/godropbox/errors#Wrap06:23
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
wallyworld__jam1: so we currently use a mechanism at bootstrap time to save the inst id of the bootstrap machine of cloud storage ie bootstrap.SaveState bootstrap.LoadState etc. Do we still need that with all the api and login etc changes since that was all done?07:13
wallyworld__s/of cloud storage/in cloud storage07:15
wallyworld__axw: agree existing tests are shitty. sadly i think if we truly want to fix all the races we'll need to touch a lot more of them07:18
axwyeah :/07:18
axwI cna't see a way to do it without major changes07:18
wallyworld__understood :-(07:19
wallyworld__might be a chance to blaze th trail07:19
wallyworld__Guten Morgen07:20
axwwallyworld__: we *could* get rid of the provider-state file from storage (with some minor updates to bootstrap?), but if the addresses change and the client does not have any valid addresses it has no way to get back in07:20
TheMuewallyworld__: hehe, yes o/07:20
wallyworld__axw: agreed. i had heard mention though we were working around that somehow07:21
wallyworld__that's what i'm not sure about the status of07:21
wallyworld__i'm not sure how though as if we don't know the address, how do we discover the new one07:21
wallyworld__will be impossible t get rid of cloud storage without figuring this out07:22
axwwallyworld__: for the CLI, there's options, but I don't know about agents07:25
axwwallyworld__: for the CLI we could tag instances and query via the provider interface07:25
wallyworld__axw: yeah, that did occur to me also. not sure how portable it would be07:26
axwwallyworld__: for agents, we could do something horrible like push the addresses to each of the agents via SSH07:26
axw(from the state server)07:26
wallyworld__juju run new-addresses :-)07:27
axwyeah that'd work I guess07:27
wallyworld__i was not really serious :-)07:27
wallyworld__but it could be something at the correct level of abstraction07:28
davecheneyaxw: EUREKA!07:29
davecheneyi've caught mgo doing something stupic07:29
axwdavecheney: ?!07:29
davecheneythe mgo pinger, v2/mgo/server.go07:30
davecheneyhas a loop07:30
wallyworld__davecheney: don't you mean "something else"07:30
mattywmorning folks07:30
davecheneywhich is supposed to exit the pinger if there is an error07:30
wallyworld__oh you mean the driver, not mongo itself07:30
davecheneyexcept it is very selective about the thigns it consisders and error07:30
davecheneythos prints 'pinger discarded'07:30
davecheneyare all things the pinger things are _not_ errors07:30
davecheneyand so stays alive, probing a dead ass mongo db over and over again07:31
axwso that's why we have so many goroutines lying about?07:31
davecheneyespecially in the tests07:32
wallyworld__davecheney: nice pickup, well done07:32
axwdo you think it has anything to do with "session already closed"?07:32
davecheneyaxw: it is at least related07:32
davecheneyalthough probbably not the direct cause07:32
davecheneyther is other dodgy shit happening, for sure07:32
dimiternmgz, wallyworld__, what instance type are we using for the github lander bot?07:32
davecheneydimitern: an m3 xlarge is roughly 80% of the speed of my two year old x22007:33
dimiternI've just seen the console log with the tests - it takes 80s to run the joyent tests - it takes like 650s on my machine07:33
davecheneythis cloud thing isn't good value07:33
wallyworld__davecheney: you going to email gustavo?07:34
davecheneywallyworld__: when I have something concrete07:34
axwdavecheney: it *should* break out of the loop when the mongoServer is closed07:36
davecheneyaxw: yup07:36
davecheneyand it probably did a long time ago07:36
davecheneybut i suspect there are paths that can return an error aside from errServerClosed [sic]07:37
davecheneyespecially when we mix in timeouts, tls and your own custom dialer functions07:37
axwdavecheney: ah right, it doesn't check that flag in the other error condition07:37
davecheneyaxw: insert sad trombone07:39
davecheneyaxw: its on my list of things to glare at07:40
=== vladk is now known as vladk|offline
* axw glares at other flaky tests07:40
davecheneyaxw: at the moment I am composing a manifesto entitled "teardownTest considered harmful"07:41
davecheneyi want to replace all our teardown logic with cleanupSuite style logic07:41
davecheneyie, somehign like07:41
davecheneyst, err := state.Open(...)07:41
davecheneyc.Assert(err, gc.IsNil)07:41
davecheneys.State = st07:41
davecheneys.DeferTest(func( ...))07:42
davecheneyor even07:42
dimiternjam1, hey, i was thinking - now that the apiserver listens by default on ipv4 and ipv6, do we need the test suite at all?07:42
axwdavecheney: SGTM, but we need to be careful about mixing the two. I've had to fix things where a cleanup happened after a teardown but should have come before07:42
davecheneyaxw: yup07:42
davecheneyordering will continue to be an issue07:42
davecheneyat the moment, as a generalisation all the teardown stuite / test stuff is written expecting the setup to succeed07:43
davecheneywhich makes sense07:43
davecheneywhat does a TearDownTest do ?07:43
davecheneyit tries it's hardest to undo everything setup test did07:43
davecheneybut there is a communication issue here07:43
davecheneyfor every action that setup test / suite does07:43
davecheneywe need to signal somehow to teardown that the action succeeded, not exploded07:44
davecheneyso I think a pattern that looks like a test or suite scoped defer makes more sense than the current way teardown works07:44
dimiternhey davecheney - any progress on adding the on call reviewer to the calendar?07:44
davecheneydimitern: none whatsoever07:44
davecheneyi've looked at the spreadsheet a few times07:44
davecheneybut the care factor is very low07:45
davecheneyit's thurstday today07:45
dimiternright :)07:45
davecheneywhich means' i'm going to have to own up to not doing it ...07:45
=== vladk|offline is now known as vladk
davecheneystill, tim too like three months to not do something on his action list07:45
davecheneyi think I should be ok07:45
davecheneyaxw: pinger discarded error: dial tcp invalid argument07:46
davecheneythis one is very concerning07:46
davecheneythat says that mgo is starting a pinger before the first db connections has been opened07:46
davecheneyso it's going to sit there07:46
davecheneytrying to dial, and will never get errServerClosed, becuase the server will never be opened ...07:47
davecheneyi think i can open a bug on that basis07:49
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
davecheneythese two constants are side a pain the backside08:04
voidspacemorning all08:15
mattywaxw, still awake?08:45
axwmattyw: otp08:56
mattywaxw, ok no problem, I'll just keep typing and you can response whenever is good08:57
mattywaxw, just wanted to check I understood your feeback. For -n 1 just returning the error is fine. for -n > 1 we should just return the error (failed to create n machines). And then the second part is make sure all error messages go to stderr08:58
voidspacehmmm... it looks like initiating a replicaset with ipv6 ip address (rather than hostname) fails08:58
voidspacetrying with ipv4 ip address08:58
axwmattyw: at the moment the single error case just returns the error. the multi-error case prints *and* returns the error. I think we should be consistent between single and multi09:01
axwmattyw: so actually probably the best thing to do is to create an error that will look nice when printed by the cmd code09:01
axw(for the multi error case)09:01
axwand not print them in there at all09:02
axwmattyw: make sense?09:02
axwatm the multi-error case will print twice: once in the addmachine.go code, and once in the cmd code09:02
axw(because an error was returned)09:02
mattywaxw, I think I understand. In both cases don't print, just contruct a nice error and return it. In the single error case it's fine as it is. In multiple errors contruct an error that joins all the errors that happened09:07
axwmattyw: yup09:09
mattywaxw, got it, thanks for the feedback09:09
=== urulama is now known as urulama-away
voidspacejam1: I seem to be bumping into this with ipv6 replicaset configuration09:17
voidspacejam1: https://jira.mongodb.org/browse/SERVER-1166409:17
voidspacejam1: I get the error in this bug report when I create a replica set with ipv6 addresses09:17
voidspacejam1: "couldn't initiate : can't find self in the replset config my port"09:18
voidspaceit says resolved09:18
voidspacethe report is against 2.4.8, Trusty has 2.4.909:18
jam1voidspace: that bug says it is a dupe of : https://jira.mongodb.org/browse/SERVER-543609:18
voidspacewhich is unresolved09:18
voidspaceeven if you disambiguate the ipv6 address ([::1]:port) it serializes it in an ambiguous form it seems09:19
jam1voidspace: the thing is https://jira.mongodb.org/browse/SERVER-5436 says ::1:PORT is bad, but it should be using [::1]:PORT which is not ambiguous09:19
voidspacethat's what I'm using09:19
jam1voidspace: so what are the actual values that you're setting?09:21
voidspacewhere the port comes from the MgoInstance09:21
voidspacefmt.Sprintf("[::1]:%v", inst.Port())09:21
voidspaceand that code works fine for creating and dialling a mongo instance09:22
voidspaceit's just the replicaset config that fails09:22
jam1voidspace: sure, the bug for https://jira.mongodb.org/browse/SERVER-11664 is saying that it can't find its own address in your replicaset config, so we have to figure out what it thinks its own address is.09:22
jam1voidspace: ugh... https://jira.mongodb.org/browse/SERVER-961209:23
jam1"Backport: No"09:23
jam1"Fix Versions: 2.7 desired"09:24
TheMuevoidspace: jam1: shit09:25
jam1voidspace: TheMue: this is why we investigate if Mongo *actually* supports ipv6 :)09:25
TheMuejam1: but with the hope to get a better result :D09:26
voidspacemaybe this is why they disable it by default09:26
jam1voidspace: https://jira.mongodb.org/browse/SERVER-5436 also says "Fix Versions: 2.7"09:26
jam1so not even 2.6 has the fix... ?09:26
jam1vladk: you've poked around the mongo source code, can you confirm if things might be better in 2.6?09:26
voidspacejam1: 5436 is unresolved anyway09:26
voidspacejam1: so not fixed yet09:26
jam1voidspace: same for https://jira.mongodb.org/browse/SERVER-961209:27
jam1now, we don't use "mongos" in our setup (I believe)09:27
jam1TheMue: this is the kind of Port/Address parsing that is broken in IPv6 that I was worried we were doing in *our* code, looks like we aren't but Mongo is.09:28
voidspacejam1: we could use /etc/hosts and hostnames...09:28
TheMuejam1: so we’ve done our homework ;)09:29
mwhudsonjam1: there is no mongos in juju-mongodb so i hope you don't try to use it :)09:30
voidspacemwhudson: mongo serialises ipv6 addresses in a format it can't then parse...09:30
TheMuejam1: when testing the go funcs I first stumbled with addresses like ::1:12345 too and got an error returned09:30
mwhudsonvoidspace: yeah, sounds like fun09:30
voidspacemwhudson: yep :-)09:30
jam1voidspace: well "can't parse correctly" it parses it, just gets the wrong answer :)09:31
vladkvoidspace: I have tested replicaset, I didn't use brackets in host string and specified port: host: "fd00::30:27017". It worked.09:31
TheMuevladk: aha? *wonder*09:32
voidspacevladk: I could try getting the address of this machine instead of ::109:32
voidspacejust trying ::1:port09:32
voidspacenot looking good so far (either the test passes quickly or I have to wait for the timeout to see the error)09:33
voidspaceso getting coffee09:33
vladkvoidspace: see my yesterday doc: https://docs.google.com/a/canonical.com/document/d/1mfLSIUAV5V7_uj3oxBDIGxlT5jPOKIXsWlmyO6pa23Y/edit09:34
voidspacevladk: ok, so your rs.initiate call works09:34
voidspacevladk: that's where in the code it's dying for me09:35
voidspaceok, so with "::1:port" it fails for a very different reason that might be fixable09:35
voidspace&mgo.QueryError{Code:13144, Message:"exception: need most members up to reconfigure, not ok : ::1:40577", Assertion:false}09:35
voidspacejam1: so the specific bug is that it always treats the last :port as :port09:36
voidspacejam1: so long as we're *always* specifying a port (which we are) I think we avoid that bug09:36
voidspacejam1: *and* they don't like the square brackets syntax09:36
voidspacejam1: so we might be ok09:36
jam1voidspace: so (a) we have to be giving external addresses, because the other hosts have to be able to see this one, right?09:36
jam1and then we can't use [::]:port because when it looks for self it usesf ::1:port syntax09:37
jam1and string compare09:37
jam1voidspace: well https://jira.mongodb.org/browse/SERVER-9612 says 'mongos' will treat everything after the *first* : as a port, but we don't directly use mongos09:37
voidspacejam1: what do you mean by " so (a) we have to be giving external addresses, because the other hosts have to be able to see this one, right?"09:37
jam1voidspace: "we can't use ::1" (a loopback address),09:37
voidspacejam1: ah right, yeah - but that's not a problem in practise09:38
TheMuevoidspace: and in tests?09:38
jam1(13:36:00) voidspace: &mgo.QueryError{Code:13144, Message:"exception: need most members up to reconfigure, not ok : ::1:40577", Assertion:false}09:38
voidspaceTheMue: failing for a different reason now that I haven't worked out yet - but it looks hopeful09:38
jam1looks like we are trying to reconfigure09:38
jam1but don't have quorum09:38
voidspacejam1: that is when we remove a member, which is a reconfigure09:39
voidspacejam1: but that same code passes when using "localhost:port", it's the ipv6 version that raises that error09:39
jam1voidspace: so probably if you were getting that error, we just hadn't reached stability yet09:39
TheMuevoidspace: did you pushed your current code to your GH? so that I can also see it?09:39
voidspaceTheMue: not yet I can09:39
jam1voidspace: are you sure it isn't just a timing thing?09:39
TheMuevoidspace: thx09:39
voidspacejam1: it's just a copy paste - may well be a timing error09:39
voidspacejam1: this is a new failure reason - furthest I've got!09:40
jam1voidspace: "most members up" certainly looks timing related. :)09:40
voidspacejam1: and it's this bug that says that mongo will always parse the address with last part as port09:40
voidspacejam1: https://jira.mongodb.org/browse/SERVER-543609:40
voidspacejam1: the mongos is a red herring for us I think09:40
voidspacejam1: just "yet another mongo ipv6 parsing bug"09:40
voidspacecool, so it's probably not a dealbreaker which I thought it was09:41
jam1voidspace: https://github.com/mongodb/mongo/blob/master/src/mongo/util/net/hostandport.cpp looks to just be doing "string.rfind(':')"09:42
jam1so yeah, as long as we always supply port (which we do) it should be ok09:42
voidspaceTheMue: https://github.com/voidspace/juju/tree/replicaset-ipv609:43
voidspaceTheMue: voidspace/juju/replicaset-ipv609:43
* voidspace *really* goes for coffee09:43
TheMuevoidspace: thanks, just had to finish a mail. I’m fighting in parallel with the fussiness to get docs online. :D09:44
jam1voidspace: I'm curious, what is ipv6 specific about: dialAndTestInitiateIPv609:44
TheMuejam1: not using the test root instance and passing an address09:48
TheMuejam1: in the test itself a new server as root is created09:49
jam1TheMue: I still don't see what is *ipv6* related about that code09:50
axwwallyworld__: http://paste.ubuntu.com/7741178/   :(09:50
TheMuejam1: we yesterday discussed if then later we’ll parameterize this test to run once for IPv4 only and once for IPv6 addresses09:50
TheMuejam1: so far only building ::1:port as address09:51
wallyworld__axw: is that with trunk?09:51
axwwallyworld__: yep09:51
axwwallyworld__: oh wait. I did make a modification... *possibly* related09:52
TheMuejam1: IMHO simply to allow testing without touching the current TestAddRemoveSet09:52
axwwallyworld__: I'll let you know if I repro on trunk09:52
axwfor now, ignore me09:52
wallyworld__ok :-)09:53
jam1TheMue: fwiw, I'd rather see the functions collapsed into ones that take a root (which might be self.root) rather than duplicated.09:53
jam1TheMue: similarly, if the only difference for TestAddRemoveSetIPv6 is that we are using "::1" as addresses, that sounds like something that could be pulled into common code.09:54
TheMuejam1: as I wrote above, that’s the goal. this code is simply a intermediate test bed09:55
TheMuejam1: it shall be combined later09:56
jam1TheMue: ah, I missed that line, hard to catch everything with a couple distractions and other conversations going on :)09:56
TheMuejam1: yeah, know that feeling. multiple discussion here and in parallel via mail while digging in own code or docs. sadly we haven’t implemented internal goroutines09:57
TheMuejam1: regarding the docs it seems to be not simple to place them on j.u.c. the web team already wanted them on help.u.c and is also planning a docs.u.c09:59
jam1TheMue: we have 2 eyes, right? we should be able to follow at least 2 conversations at the same time.09:59
TheMuejam1: nick is already frustrated. I’m happy that at least GH renders markdown so that we can point interested users there09:59
TheMuejam1: *lol* just imagined how the eyes look (like in comics) when trying that :D10:00
wallyworld__c7z: mgz: meeting?10:03
davecheneyi thought there was a team meeting at 8 tongiht ?10:03
davecheneythat is, now10:03
wallyworld__davecheney: not today10:03
davecheneyor is that only once every blue moon10:03
c7zwallyworld__: thanks10:03
wallyworld__davecheney: this week it's at 5am for us10:03
wallyworld__it rotate over 3 slots10:04
davecheneyum, yeah, nope10:04
davecheneyhave fun at your leadership cabal10:04
davecheneyvoidspace: did i read that mongo can't listen on ipv6 in repl mode ?10:06
TheMuedavecheney: it seems more to be a problem with the address notation and also with localhost10:06
TheMuedavecheney: voidspace is currently investigating10:07
TheMuedavecheney: they cannot parse [::1]:port10:07
TheMuedavecheney: fixed with 2.710:07
jam1davecheney: it appears to be able to listen, but it does'nt support [] syntax for disambiguating :10:07
jam1TheMue: actually, not fixed yet10:08
jam1but *if* fixed, not until 2.710:08
TheMuejam1: ok, thought 2.7 is available at least as developer release10:08
jam1TheMue: I just checked out the github source and it isn't fixed there10:09
davecheneytrusty ships with 2.410:09
TheMuejam1: *hmpf*10:09
davecheneyso we'll be back to shipping things via the cloud archive again10:09
jam1TheMue: so the issue is that we have to use ":dead:beef:17017" and just always specify :PORT at the end10:09
mwhudson2.7 is the unstable release series10:10
mwhudson(of mongo)10:10
TheMuejam1: but this also works with 2.4.*10:10
mwhudsonso you guys won't get to use any fix until 2.8 is released10:10
TheMuejam1: ?10:10
davecheneyjam1: that isn't a valid ipv6 address, http://play.golang.org/p/mtv1LPeghP10:10
mwhudson(not that it seems this bug actually matters to you guys)10:10
TheMuedavecheney: not? ;)10:11
jam1davecheney: no, what I typed was not valid, just psuedocode10:11
davecheneyi think it needs some more [ ] 's10:11
davecheneyfrom memory10:11
jam1davecheney: so the issue is... we can write it correctly in our code as http://play.golang.org/10:12
jam1sorry: http://play.golang.org/p/srNH2QbtR310:12
jam1davecheney: but when we configure the replicaset information10:12
jam1mongo actually trnsforms [::1]:17017 into ::1:17017 internally10:12
jam1and looks to see if it knows about the addresses you are passing in.10:12
jam1so when we tell mongo about other mongod's, we have to give it the "invalid" form10:12
davecheneythat's pants10:13
jam1we still dial [::1]:1701710:13
perrito666good morning juju people10:18
jam1morning perrito66610:19
voidspaceperrito666: morning10:25
voidspacejam1: note about your comments earlier10:31
voidspacejam1: I *really* wasn't intending to leave the ipv6 tests as just copy-pasted versions of the original10:32
voidspacejam1: I started with copy-pasta so I could tinker with just the ipv6 version before re-combining them10:32
jam1voidspace: I understand, I was just looking at it and going... there doesn't seem to be anything ipv6 in here.10:32
voidspacejam1: TheMue asked me to push what I had so far, so I did...10:33
voidspacejam1: both the test and the inititiate function can be collapsed back together and parameterised10:33
jam1I have to say, my proficiency reading C++ has gone down significantly in 8 years of working only in python and go :)10:34
voidspaceheh, not really a surprise10:34
jam1all those mysterious namespaced functions10:34
jam1where is this "host()" defined that you are calling :)10:34
voidspacemy C++ skills are as sharp as they've ever been :-)10:38
TheMuevoidspace: yes, your pushed branch helps me to get better into the discussion10:38
voidspaceTheMue: good, it's just not a finished article10:39
TheMuevoidspace: my C++ skills too, below 010:39
voidspaceTheMue: I hope I've fixed it now - just waiting for test10:39
TheMuevoidspace: great10:39
voidspacewe'll see10:39
vladkdimitern: does it make sense? https://github.com/juju/juju/pull/23710:41
jam1vladk: dimitern: TheMue: voidspace: standup10:44
TheMuejam1: oh, almost forgotten, in vladks PR10:45
jam1vladk: poke ?10:47
vladkjam1: just a second10:47
davecheneydid the jenkins machine go away ?10:54
c7zdavecheney: looking10:55
c7zdavecheney: looks fine to me, just has test build failure:10:56
c7z# github.com/juju/juju/state/apiserver_test state/apiserver/server_test.go:138: cannot use stm.Tag().String() (type string) as type names.MachineTag in function argument state/apiserver/server_test.go:150: cannot use stm.Tag().String() (type string) as type names.MachineTag in function argument FAILgithub.com/juju/juju/state/apiserver [build failed]10:56
davecheneyok, i'll fix that10:56
davecheneyi cna't reach the build machine atm10:56
davecheneyoh well10:56
davecheneyit's after stumps anyway10:56
c7zdavecheney: can you access it by IP?
voidspacewwitzel3: morning10:58
TheMuewwitzel3: o/10:58
wwitzel3voidspace, TheMue: morning10:59
wwitzel3jam1: you have a bit to chat about your review comments on #234 (removing the state dep from environs)11:00
wwitzel3jam1: mainly, I believe you .. I'm just not sure how to go about doing that :)11:00
alexisbjam1, ping11:03
jam1alexisb: just finishing up our standup, brt11:03
voidspacejam1: just got the ipv6 replicaset test passing, will refactor and submit PR11:11
voidspacejam1: just FYI...11:12
TheMuevoidspace: \o/ also here again11:12
jam1wwitzel3: so it is a route that we've wanted to go, and I can at least outline it for you.11:12
jam1but basically, we've already done all the work to know what address the bootstrap machine has to ssh into it and set itup.11:12
jam1if the last step of bootstrap was to connect to the API using the address that we already know about11:13
jam1then I think we could drop all of the fallback code, and simplify a lot of stuff.11:13
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
TheMuevoidspace: i’m available for next chat in a few moments, just moving into the garden, weather is too fine11:38
voidspaceTheMue: sure11:45
TheMuevoidspace: so, sitting on the veranda11:47
TheMue voidspace ;)11:47
TheMuevoidspace: if I’m right we’ve got two cards left11:49
=== liam_ is now known as Guest45753
TheMuevoidspace: peer grouper, dummy privider, and oh, lxc templates. is it new or did I missed that one?11:51
wallyworld__jam1: wanna come back to team leads hangout?11:54
=== urulama-away is now known as urulama
voidspaceTheMue: we missed discussing that yesterday12:00
voidspaceTheMue: that sounds like a fun one to pick up12:00
voidspaceTheMue: I'm going to finish refactoring this test, submit a PR and then go on lunch12:00
voidspaceTheMue: and then sync up with you12:00
TheMuevoidspace: sounds like a plan o/12:01
=== psivaa is now known as psivaa-lunch
bodie_morning all12:05
wwitzel3morning bodie_12:05
jam1wwitzel3: so it looks like wallyworld__ also has a stake in fixing the state.Info stuff (he wants to get rid of the bootstrap-state file because of complexities wrt in-environment storage{)12:10
jam1so I just had a chat with him, and he's going to put it on the agenda for the sprint next week.12:10
wallyworld__wwitzel3: we can do it together :-)12:11
=== psivaa-lunch is now known as psivaa
voidspaceTheMue: https://github.com/juju/juju/pull/23813:00
TheMuevoidspace: *click*13:01
TheMuevoidspace: LGTM, nice idea with the address handling13:06
voidspaceTheMue: cool, thanks13:08
voidspaceTheMue: what would you call it instead of getAddr?13:08
TheMuevoidspace: simply address13:09
voidspaceTheMue: I agree in general "get" is unnecessary for getter methods - but this isn't a getter method13:09
voidspaceTheMue: heh, I think that's less descriptive13:09
TheMuevoidspace: serverAddress13:09
voidspacebut matter of taste I guess13:09
voidspacethat's not bad13:09
TheMuevoidspace: I’m afk for a few moment, then we can have our chat13:10
voidspaceTheMue: I'm about to go on lunch - so after that I'll catch up with you13:13
voidspaceTheMue: dang, I get a test failure so not merging yet13:14
voidspaceTheMue: the *non* ipv6 variant fails13:14
sinzuijam, cmars: I would like your opinion in the "Options for releasing 1.20.0 which is stalled" thread in your email.13:19
cmarssinzui, looking now13:19
cmarssinzui, i'm +1 for "release HA as an 'experimental tech preview'"13:21
sinzuicmars, I think you mean restoration of HA state-server is experimental13:22
cmarssinzui, my mistake, yes, backup/restore13:22
wwitzel3wallyworld__: sounds good :)13:25
fwereadewwitzel3, ping13:25
wwitzel3fwereade: pong13:25
fwereadewwitzel3, LoadState/SaveState -- complexity/ugliness?13:26
wallyworld__fwereade: i'm off to bed, can you discuss with jam1 also13:26
fwereadewallyworld__, maybe -- jam1, to what is wallyworld__ alluding? 1.20?13:27
wallyworld__fwereade: he indicated that only the client needs it, and we can modify bootstrao to cahce addresss so we don't need the stte file13:27
fwereadewallyworld__, ah, ok, I see13:27
wallyworld__fwereade: i'm talking about the load/save state stuff13:27
fwereadejam, I am kinda -1 on that: ISTM that LoadState/SaveState work perfectly, and I don't see how we're having to do any extra work to maintain the ability to look up an environment from scratch without a cached address13:28
fwereadejam, cos addresses *do* change13:28
wwitzel3fwereade: to answer your question .. no idea, haven't looked13:29
fwereadejam, if we're really making things *that* much simpler/cleaner by dropping the feature I could maybe be swayed13:29
fwereadewwitzel3, ah, there was a mail claiming you were having trouble with LoadState/SaveState in the environ/state dependency-munging13:29
voidspaceTheMue: I'm going to look at this after lunch, I need a break13:29
fwereadewwitzel3, AFAICS we should keep those funcs, and keep on using them internally to discover state server addresses in the providers that have storage13:30
fwereadewwitzel3, the really nasty stuff around those -- the flagrant layering violations by which we had jujud of all things depending on them -- is I think gone already13:31
wwitzel3fwereade: well, I didn't make any effort to refactor them? Maybe that was the issue :)13:31
voidspaceTheMue: actually, I seem to have fixed it :-o13:31
fwereadewwitzel3, so they're just a common chunk of code, useful for providers that implement storage, and unless they're actively causing trouble we should just leave them alone13:31
fwereadewwitzel3, the only refactoring required AFAIK is making the state-file path *either* private *or* a param13:32
fwereadewwitzel3, although I think I'd favour private13:32
fwereadewwitzel3, and even that is totally orthogonal to what you're actually doing anyway13:33
wwitzel3fwereade: I'm completely lost atm and feel like i've miss a piece of this converstaion somewhere.13:33
wwitzel3sorry :/13:33
voidspaceon that note13:33
* voidspace really goes on lunch13:33
wwitzel3does the LoadState/SaveState stuff related to the comments about StateInfo on the review?13:34
wallyworld__fwereade: the issue as i understood it was it complicated removing state as a dependency of environ due to shared use of the state.Info, and if Load/SaveState were gone, that dependency would go with it13:34
fwereadewwitzel3, I don;t think you need to worry, I can fight it out with jam in-thread :)13:34
fwereadewallyworld__, I think Load/SaveState are irrelevant13:34
wwitzel3fwereade: it probably doesn't help I haven't checked my email yet13:35
fwereadewallyworld__, they're an implementation detail13:35
wwitzel3I've only read the review comments.13:35
fwereadewallyworld__, the StateInfo method usually uses those under the hood13:35
wallyworld__wwitzel3: jam mentioned that removing load/save state would make your refactoring easier in a review comment13:35
wallyworld__if i recall recorrectly13:35
wwitzel3wallyworld__: ok, I was going to follow-up on that comment because I had no idea what the "fallback code" was.13:36
fwereadewallyworld__, jam: is it really in any way hard/complex to have an environs.Environ be able to return the addresses of its state servers?13:36
wwitzel3wallyworld__: so if the fallback code is Load/Save State, and that is related to the Info struct, then I'm mostly caught up I think.13:36
fwereadewallyworld__, jam: we tell the environ when it's starting a state server13:36
TheMuevoidspace: great that it’s fixed and enjoy your lunch13:36
wallyworld__wwitzel3: as i understand it yes13:36
wwitzel3wallyworld__: thanks, sometimes I just need my hand held13:37
fwereadewallyworld__, jam: is it so much to ask that it record which ones are state servers, for the convenience of the bootstrap users?13:37
wallyworld__wwitzel3: me too, it make me feel safe :-)13:37
fwereadewallyworld__, jam: to be fair, we would occasionally want to update it in an ideal world, when a state server gets demoted13:38
wallyworld__fwereade: i think the issue is not that we ask the environ to do it, but that it not use cloud storage for it13:38
wallyworld__if we can break that link, things become simpler13:38
fwereadewallyworld__, jam: we have provider storage already implemented in all these cases, though13:38
fwereadewallyworld__, jam: I don't think so13:38
fwereadewallyworld__, jam: asking the Environ for the storage inside the state server becomes incoherent, it's true13:39
fwereadewallyworld__, jam: but that's independenyt13:39
wallyworld__fwereade: it's implemented now, but new providers without storage are difficult13:39
wallyworld__and the use case is - clients need to connect, the last api address they had doesn't work, where do they get another from to try13:39
fwereadewallyworld__, jam: the environ's responsible for knowing what its state servers are -- I don't really believe we actually have any providers that don't allow *some* way of tagging the state servers13:39
wallyworld__if we properly cached the addresses in jenv, then we don't need to query state file13:40
wallyworld__we save the last connected one, but not the others13:40
wallyworld__it's about the client connecting, not the environ knowing13:41
wallyworld__ideally there would be no provider code in the client13:41
fwereadewallyworld__, how do you propose one bootstraps a new state server? I really don't think we want a separate tool for that...13:42
fwereadewallyworld__, I agree we want better caching13:42
wallyworld__yeah bootstrap needs provider code13:42
wallyworld__but would be nice to minimise it13:42
fwereadewallyworld__, but I don't yet see a good reason to drop the fallback code -- we would hopefully hardly ever need it, it's true13:42
wallyworld__if we drop it, it makes it easier to divorce state from environ, and remove need for provider storage13:43
fwereadewallyworld__, completely disagree13:43
wallyworld__we can use env blob storage instead13:43
wallyworld__see wwitzel3's branch and jam's comment13:44
fwereadewallyworld__, we can and will always use env blob storage for everything -- but if you internally implement the environ Storage interface, you can use it with L/SState and the fallback stuff continues to Just Work13:44
fwereadewallyworld__, that particular file happens to be in "env" storage, but it's not really for the env's use at all, it's for the client's -- and I don't see how the env storage change needs to actually impact it13:45
wallyworld__that was my original thought but jam was quite certain we should or could drop it13:45
wallyworld__fwereade: ah because13:45
wallyworld__the client needs to access the api to get the blob storage13:46
wallyworld__but it uses the state file to get the api to connect to13:46
wallyworld__catch 2213:46
fwereadewallyworld__, the client shouldn't need to use the blob storage directly, should it?13:46
wallyworld__no, that's the point13:46
wallyworld__the client needs state file if address it has doesn't work13:47
wallyworld__it currently talks to cloud storage directly to get it13:47
fwereadewallyworld__, and the *client* will not need any direct knowledge of the state file either -- because an environ doesn't *have* to use that mechanism in the first place13:47
wallyworld__if we move state file to blob storage, client can't get to it13:47
wallyworld__when it needs to13:47
fwereadewallyworld__, we certainly shouldn't do that13:48
fwereadewallyworld__, the state file is an *detail* of certain provider *implementations*13:48
wallyworld__which the client uses directly when needed because the whol epoint it that there's no api to connect to13:49
wallyworld__because the address the client has is not working13:49
fwereadewallyworld__, sorry, I'm keeping you up, but I am happy to continue arguing this out if you're really of a mind to...13:49
fwereadewallyworld__, I feel like we're talking past each other though13:50
wallyworld__fwereade: should we take this toa hangout?13:50
fwereadewallyworld__, if you're free, let's13:50
fwereadewallyworld__, tanzanite?13:50
perrito666niemeyer: hey, are you around?13:54
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
niemeyerperrito666: I am14:05
niemeyerperrito666: In a call, though14:05
jamespage__dimitern, fwereade?14:05
wwitzel3perrito666, ericsnow: I'm running a bit behind on standup, be there shortly (in another call)14:05
jamespage__coming :-) ?14:05
niemeyerperrito666: What's up? Will be with you soon14:05
dimiternjamespage__, sorry, brt14:05
fwereadejamespage__, hell, other meeting running over14:05
ericsnowwwitzel3: np14:05
perrito666niemeyer: ouch, I was tying to lure you into another call for a moment :p14:07
TheMuevoidspace: sh.., TestAddRemoveSetIPv6 is failing /o\14:10
TheMuevoidspace: „couldn't initiate : can't find self in the replset config my port: 35060“14:11
c7zrick_h__: (or a delegee) I've got a a bunch of jenkins-github-lander changes to land, first one up here: <https://github.com/juju/jenkins-github-lander/pull/13/files>14:15
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
voidspaceTheMue: how annoying14:46
voidspaceTheMue: passes for me :-/14:46
voidspaceTheMue: it may be a problem running on a slower machine perhaps14:47
rogpeppefwereade: is it possible to have a charm resource that's not associated with a particular series?14:47
voidspaceTheMue: it takes two minutes to run, but it passes consistently for me14:57
TheMuevoidspace: strange14:58
TheMuevoidspace: I hate timing problems14:58
TheMuevoidspace: is there a way to define a different retry behavior?14:58
voidspaceTheMue: trying again in case it's spurious14:58
voidspaceTheMue: the other possibility is that this is precise. *Or* it's a machine without an ipv6 stack.14:59
voidspaceTheMue: this is the first ipv6 dependent test in juju-core, right?14:59
TheMuevoidspace: that’s what I thought first too, the missing IPv614:59
voidspaceTheMue: ah14:59
TheMuevoidspace: yep14:59
voidspaceTheMue: I didn't bump the gittesting revision number in dependencies.tsv15:00
voidspacethat will be the problem15:00
voidspacegrabbing coffee then fixing15:00
TheMuevoidspace: hehe, when it’s that simple than it’s fine15:00
fwereaderogpeppe, I think a resource is always acssociated with a specific charm, and last I heard we were pretty solidly committed to having a single charm be a single series15:18
fwereaderogpeppe, so yes, but it's implicit rather than explicit15:18
fwereaderogpeppe, er, so, the answer to your posed question is actually *no*15:19
fwereaderogpeppe, but there's no explicit association between a resource and a series, it's implicit in the association between a resource and a charm15:19
rogpeppefwereade: so there's an association with a resource and a series because you can't specify a resource without specifying a fully qualified charm name including the series, right?15:23
fwereaderogpeppe, yeah15:24
rogpeppefwereade: specifically, it would be nice to know if this looks sane: https://docs.google.com/a/canonical.com/document/d/1ILHRpOe-qDlmjxHBbLUea7InDpehx5_roJ1ynZmcZDc/edit  (search for "resources")15:24
perrito666niemeyer: what I needed is for you to talk a moment with gsamfira about adding a few things to gocheck to make it more windows friendly, so let us know if you have a moment so we can talk about the patch he proposes15:26
jcw4hi fwereade; jam1 had a great comment on https://github.com/juju/juju/pull/216 and I'd like to get your thoughts... you'd need to look at the diff though since I changed it in response to your review yesterday.15:28
fwereaderogpeppe, jcw4, I'm queuing tabs for you both, hope I will pop enough from my stack to get to them soon15:29
rogpeppefwereade: ta!15:29
jcw4fwereade: lol, thanks :)15:29
mfoordTheMue: ok, updated dependency and resolved resulting conflict (!?!)15:40
mfoordTheMue: waiting on the bot - I think it's probably running the old revision again unfortunately15:41
=== vladk is now known as vladk|offline
TheMuemfoord: doesn’t it always starts from zero, so retrieving all dependencies based on the dependencies file?15:42
mfoordTheMue: I mean that I initially thought the problem was a spurious timing related one15:42
mfoordTheMue: so I added another $$merge$$ comment which the bot picked up15:43
mfoordTheMue: so I think it's running tests from before I updated the dependencies15:43
TheMuemfoord: ah, ok15:43
mfoordTheMue: so I need to wait for that to fail so I can retry the merge a third (and hopefully final) time15:43
mfoordTheMue: did you start looking at lxc templates?15:44
TheMuemfoord: the latest one had a panic during build?15:44
TheMuemfoord: only a short look, mostly I’m writing on the API spec15:44
mfoordah, ok15:44
TheMuemfoord: but we can talk about, my brain needs a little distraction from the API stuff15:45
mfoordTheMue: I don't know what the panic is about, but the previous test failed again for the same reason15:45
mfoordand that at least is fixed now15:46
mfoordTheMue: ok, let's talk in two minutes15:46
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
fwereaderogpeppe, the api proposal is slightly difficult for me to map onto the action of juju publish -- is there another doc that covers that? if not, I think that needs to be defined before we can reasonably judge an api proposal15:53
mfoordTheMue: ok, I'm ready - hangout?15:53
rogpeppefwereade: juju publish is, I believe, just the action of POSTing a new charm to the store, right?15:55
fwereaderogpeppe, I think it also needs to do resources15:56
fwereaderogpeppe, either charm+resources, or charm alone, or resources alone15:56
rogpeppefwereade: they're independent things then?15:57
katcois there a reason that there's one function in this file all by its lonesome? github.com/juju/juju/upstart/service.go. can i roll this into upstart.go?15:57
fwereaderogpeppe, and we need to figure out how we update the (charm-rev, resources-rev) pairs that define the "current" version of a charm(+resources)15:57
rogpeppefwereade: so they have two independent endpoints (/archive and /resources)15:57
rogpeppefwereade: the version is updated automatically and returned in the post response15:57
rogpeppefwereade: at least, that's the current plan - perhaps there's a reason that's not good?15:58
fwereaderogpeppe, doesn't a resources revision refer to a list of N files?15:58
sinzuikatco, what TZ are you in. I saw you at my midnight last night, and now I see you at my Noon15:58
katcosinzui: GMT -6. little known fact, i am actually a robot.15:58
rogpeppefwereade: yes, but the revision is incremented any time one of those files is uploaded15:59
rogpeppefwereade: so the result is the same, i *think*15:59
fwereaderogpeppe, I don't think that makes sense15:59
rogpeppekatco: aren't we all15:59
katcobeep boop16:00
fwereaderogpeppe, if two files need to match, and we inc rev every time one is uploaded, we end up with a whole bunch of broken resource-stream revisions16:00
rogpeppefwereade: i'm not sure what you mean by "two files need to match"16:00
fwereaderogpeppe, ok, even simpler16:02
sinzuikatco, wgrant was suspected of being a robot until we discovered we couldn't put him into an N-1 configuration16:02
fwereaderogpeppe, one version of a charm defines resources a, b, c; another defines d, e16:02
sinzuiSleep gives you cancer anyway.16:02
katcosinzui: lol16:02
fwereaderogpeppe, how does the POST approach work?16:03
rogpeppefwereade: resources? streams? filenames?16:03
rogpeppefwereade: i thought resources weren't associated with a specific version of a charm?16:03
fwereaderogpeppe, sorry, just a mo16:04
katcoprocess question: if i merged a partial-fix in under a branch, should i do the rest of the work in a different branch, or in the same branch w/ a new PR?16:09
c7zkatco: new branch16:10
c7zwell, depends exactly what you mean by partial16:10
c7zbut if it's landed, you should just take a new checkout of trunk (including that change) for your followup16:11
katcoc7z: specifics: log perms are wrong. i fixed 1 class of log, working on remaining class.16:11
katcoc7z: but the bug is for all log perms16:11
mfoordTheMue: http://containerops.org/2013/11/19/lxc-networking/16:11
katcoc7z: it has landed, but i can just rebase the branch from trunk. the naming nomenclature i'm using lends itself to doing the remaining work in this same branch, but i wasn't sure if there were downsidexz16:12
c7zyou want a new pr, so it's easiest with a fresh branch16:13
katcoc7z: ok, ty!16:13
=== vladk is now known as vladk|offline
sinzuiwwitzel3, perrito666 : Do either of you have a moment to review https://github.com/juju/juju/pull/24016:19
c7zstate/api/client.go:// TODO(axw) 2014-04-11 #XXX16:20
c7zace :)16:20
niemeyerperrito666: Hi16:28
niemeyerperrito666: Sure16:28
niemeyerperrito666: Any time16:28
=== hatch__ is now known as hatch
jrwrenjuju local mongodb grows to 6.5GB rather fast, how much does a tiny juju local need?16:49
niemeyerjrwren: I suppose the usual flags for reducing pre-allocatoin are not being used?16:54
niemeyerjrwren: --smallfiles --noprealloc etc16:54
jrwrenthose are used.16:54
niemeyerjrwren: How come it grows to 6.5G then?16:54
jrwrenthat is what I'm asking :)16:54
niemeyerjrwren: Should be easy to see what's inside the database16:55
fwereaderogpeppe, sorry, meeting is taking a while :/16:59
rogpeppefwereade: np16:59
rogpeppefwereade: although i will be stopping soon16:59
wwitzel3sinzui: LGTM16:59
perrito666niemeyer: do you have a moment now to jump into a hangout?17:02
niemeyerperrito666: Yep17:02
perrito666niemeyer: https://plus.google.com/hangouts/_/canonical.com/cloudbase?authuser=317:02
perrito666lemme know if it does not work I will issue an invite17:02
sinzuithank you wwitzel317:03
niemeyer"This party is over..."17:04
perrito666mm hangout lies a lot like that17:04
niemeyerHave never seen that one..17:04
perrito666do I invite you to your canonical email?17:04
niemeyerperrito666: Ahh, it's the authuser part17:04
niemeyerperrito666: That's your user.. the link isn't valid for me.. fixed it by hand17:04
fwereaderogpeppe, hmm, on rereading that mail it's about *next* week, so we're not meeting about resources this evening as I was expecting17:10
fwereaderogpeppe, I'm going to have to drop off very shortly myself17:10
rogpeppefwereade: ha17:10
rogpeppefwereade: we're chatting in a hangout if you wanted a quick chat17:10
fwereaderogpeppe, but mainly I am still not understanding how we can do the resource POSTing17:10
rogpeppefwereade: but i imagine you're pooped :-)17:10
rogpeppefwereade: yeah, i'm pretty fuzzy over the whole thing now myself17:11
fwereaderogpeppe, I'm fine but I will not be popular if I'm online for more than 10 mins17:11
fwereaderogpeppe, what hangout?17:11
rogpeppefwereade: https://plus.google.com/hangouts/_/canonical.com/daily-standup?authuser=117:11
=== psivaa is now known as psivaa-afk
jcw4c7z, mgz http://juju-ci.vapour.ws:8080/job/github-merge-juju/373/console ? InvalidInstanceID?17:27
c7zseems like ec2 flakiness17:28
jcw4just $$merge$$ again?17:29
perrito666sorry, wrong window17:29
c7zI've hit rebuild there17:29
jcw4c7z: ta17:29
jcw4mgz: that worked, thanks!17:50
menn0anyone joining the core team meeting?18:03
* perrito666 has been connected to some form of hangout the whole day18:11
fwereadewwitzel3, katco: https://plus.google.com/hangouts/_/canonical.com/juju-core-team?authuser=118:13
alexisbwwitzel3, katco ^^^18:13
fwereademgz, it's probably late for you?18:13
katcoalexisb: sorry, i'm in! is there an invite or something i need to be added to?18:20
alexisbkatco, yes, let me get you added18:21
katcoalexisb: ty :)18:22
alexisbcmars, just fyi, we are having a team call if you are available18:30
alexisbI assume your team is done for the day18:30
perrito666fwereade: you seem to have frozen18:33
=== vladk|offline is now known as vladk
fwereadecmars, ping18:36
alexisbanyone know if thumper is going to be online today?19:08
alexisbmenn0, waigani ^^19:09
waiganialexisb: morning :)19:09
menn0alexisb: he was sick yesterday so not sure19:09
mfoordg'night all19:09
alexisbmorning waigani19:10
alexisbbtw, did you see the video link I posted the other day?19:10
alexisbthe one that reminded me of you19:10
perrito666could someone PTAL https://github.com/juju/testing/pull/18 ?19:32
=== vladk is now known as vladk|offline
=== vladk|offline is now known as vladk
=== vladk is now known as vladk|offline
bacsinzui: your release notes for 1.20 are amazingly thorough and informative.  thanks!19:51
sinzuibac: thank you19:52
perrito666sinzui: you do know that we eventually will build you a monument and worship it before each release for our tests to pass, right?19:55
sinzuiperrito666, Ice cream will be fine19:55
perrito666sinzui: given that I am about 15kkm from you I think a monument is much easier than sending you ice cream19:58
sinzuiperrito666, :)19:59
sinzuiI have a similar problem getting Aussie pies delivered to my house in the US19:59
alexisbalrighty all, I am off for a long weekend20:16
jcw4have fun alexisb20:17
alexisbsee everyone on monday!20:17
wwitzel3have a good one alexisb20:17
alexisbthose in the US enjoy your 4th!20:17
=== alexisb is now known as alexisb_vac
wwitzel3alexisb_vac: thanks you too20:18
katcoalexisb_vac: ditto :)20:19
jrwrento where does a charm install? I want to make sure my hook changes were deployed correctly20:30
katcocan anyone help me understand what this means? "godeps: "/home/kate/workspace/go/src/github.com/juju/cmd" is not clean; will not update"20:35
katcowhen running godeps -u dependencies.tsv20:35
katcoi did a go clean, didn't seem to help20:35
jcw4katco: do you have changes in the juju/cmd repository?20:35
katco jcw4: i do not20:36
jcw4hmm; if you go to /home/kate/workspace/go/src/github.com/juju/cmd and do a straight git pull -u ?20:37
katcooh jees... i see my error.20:37
katcoi was looking at juju/juju/cmd, not juju/cmd20:37
katcothat gets just a bit confusing at times :p20:38
jcw4katco: ah... that's easy to do20:38
katcoty for your help jcw4 :)20:39
jcw4katco: yw :)20:39
stokachuin the api, what are the watchers used for? just a general overview20:56
jcw4stokachu: in general watchers watch for changes to collections in the stateserver21:03
jcw4stokachu: and send events to the consumers of the watchers21:04
stokachujcw4, ah ok21:04
stokachuive got another question about the ServiceDeploy api, there is a ServiceName and CharmUrl. is CharmUrl a requirement?21:06
jcw4stokachu: I don't know much about that21:07
jcw4thumper: o/21:08
thumpermorning jcw421:09
stokachuit looks like i can't just call ServiceDeploy(ServiceName='wordpress')21:09
stokachui have to give it a charmurl21:09
jcw4stokachu: yeah, looking at the code it seems like any kind of deployment does need the CharmUrl21:10
stokachuim guessing just doing 'juju deploy wordpress' has some checking for setting that if isn't provided21:10
stokachuhaven't checked21:10
jcw4stokachu: hmm; the name CharmUrl only appears in 3 non-test files, and they all seem to just assume it's set21:11
stokachuthe only complication i see with having to set the url everytime is that you're forced to pick either trusty or precise. some cases i just want it to deploy the latest charm21:13
stokachuwhich is the behavior of 'juju deploy X'21:13
stokachuim also not sure what the point of ServiceName is wrt ServiceDeploy if we require a charmurl21:14
stokachu{"RequestId":4,"Error":"charm url must include revision","Response":{}}21:16
stokachuif i pass 'cs:trusty/juju-gui' as the CharmUrl thats the response i get back21:17
jcw4stokachu: I'm afraid most of my experience with juju is in the state back-end, not at all with charms :-/21:18
stokachuthats cool21:18
jcw4stokachu: github.com/juju/charm/url.go around line 102 shows the url parsing21:21
jcw4stokachu: looks like you can use local: instead of cs: for the schema possibly21:21
stokachuyea thats for deploy from a local repo21:21
jcw4stokachu: fwiw the revision seems to be set in the url by appending -<revision number> to the name21:23
stokachuyea that works but how do i find the revision via the api?21:24
stokachuor do i have to search the charmstore?21:24
jcw4stokachu: oh, I see; I thought you were authoring a charm21:24
stokachuim querying the juju api to try and deploy one currently21:25
jcw4stokachu: right you did say something to that effect earlier on21:25
jcw4stokachu: are you trying to deploy it programatically or using `juju deploy`21:27
jcw4stokachu: and you're wanting to find the right charm url in your code rather than having it supplied by a user?21:28
stokachuso my routine basically is deploy(charm, dictionary_of_settings)21:29
stokachucontaing ToMachineSpec etc21:30
jcw4and 'charm' is a user friendly name, supplied by a user somehow, but not including the charm url21:30
stokachuyea so like deploy('mysql')21:30
stokachuwould in turn call ServiceDeploy21:30
jcw4stokachu: okay; so looking at the tests for ServiceDeploy it's clear the charm url is required and must be fully specified including revision.21:32
jcw4stokachu: so you'd need to find how to query the charm store, given a friendly name and get back a charm url21:32
jcw4stokachu: resolving possibly many results21:32
stokachuok that works21:32
stokachujcw4, im curious how just calling juju deploy mysql works then21:33
stokachui thought it used the same api21:33
jcw4stokachu: it does... juju/cmd/juju/common.go around line 58 is where it starts resolving the common name to a charm url21:35
stokachuok reading that now21:36
jcw4stokachu: it populates things like series from the environment21:36
stokachui see the resolveCharmUrl but i dont see how it resolves the revision21:37
jcw4stokachu: ah, there is a ResolveCharms method on the apiserver Client too21:37
jcw4resolveCharmUrl uses that21:37
jcw4and the apiserver/client defers that resolving to an implementor of the Repository interface21:38
jcw4which I can't find an implementor in the juju repo21:40
jcw4stokachu: but conceptually it seems to figure out an apropriate repostitory to query and then that repository returns a URL21:41
stokachuok i think i understand the workflow now21:42
stokachujcw4, thanks :)21:42
jcw4stokachu: yw... one last comment; this seems helpful: http://juju-docs.readthedocs.org/en/latest/internals/charm-store.html#charm-revisions21:44
stokachuah looks like there is some sort of REST within the charmstore i could utilize21:45
davecheneyit's 8:30, about 10c in my house and i'm weargin hobo gloves -- #beautiful sydney22:33
thumperdavecheney, waigani, menn0: it is the last day of the school term and my daughter has a guitar solo in assembly (starts in about 7 minutes)22:38
thumperI may be late for the standup22:38
menn0thumper: no probs. That doesn't sound like something you should miss.22:38
waiganithumper: nice. My girl has a dance performance this afternoon!22:38
davecheneythumper: lets skip standup today then22:39
davecheneyi'm fixing bugs22:39
thumperok, I'm fine with that22:39
davecheneythumper: is writing documents and hating himself22:39
* thumper is looking at docs and trying to stay sane22:39
davecheneymenn0: is blocked on schema upgrades22:39
davecheneyand waigani is doing reviews22:39
davecheneyta-da: 15 second standup (tm)22:40
menn0davecheney: I'm not actually blocked so much now but yes, am definitely working on schema upgrade related stuff.22:41
menn0davecheney: what are you doing?22:41
menn0davecheney: never mind. I just saw.22:41
* menn0 needs more coffee22:41
menn0or less blood in my coffeestream ...22:42
menn0davecheney, thumper: I went to this morning's core team meeting. It was good but I can't think of anything that came up that's particularly relevant or that you don't already know.22:44
menn0davecheney, thumper, waigani: one other thing ... I'll be in Brisbane next week and will be working from there on Tues, Wednesday and Friday.23:04
waiganimenn0: nice!23:05
waiganimenn0: you could work at wallyworld's ;)23:05
menn0that was the plan originally and I had that lined up but then he ended up having to go to the sprint in Boston23:06
menn0I may be catching up with him the following Monday (leaving Brisneyland on the 15th). he gets back that day. I'm going to meet bigjools at any rate.23:06
davecheneymenn0: oh, you'll enjoy that23:07
davecheneythumper: menn0 waigani alos, but set of ppc64 bugs is growin23:10
davecheneyi have 3 atm23:11
davecheney1 waiting on the upstream23:11
davecheney1 waiting on the reporter for more informatoin23:11
davecheneyi can't remember the status of the third23:11
davecheneyi guess axw and wallyworld are on a plane now ?23:45
thumperwell that went on longer than expected23:47
davecheneythumper: wanna stand up23:47
davecheneyseeing as you're still standing23:47
thumper davecheney: probably not until saturday23:47
thumperdavecheney: standup hangout23:47

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