/srv/irclogs.ubuntu.com/2012/11/12/#juju-dev.txt

rogpeppedavecheney, fwereade: mornin'08:10
fwereaderogpeppe, davecheney, heyhey08:10
fwereadeTheMue, morning08:15
TheMuefwereade: hiya08:16
fwereaderogpeppe, re https://codereview.appspot.com/6819115/ I am concerned that ServerCertAndKey is fundamentally part of the environment config, but that it's not being treated as such... comments?08:17
rogpeppefwereade: it's actually not part of the environment config, and it's important that it doesn't go in it08:17
fwereaderogpeppe, jolly good -- please expand?08:17
rogpeppefwereade: it's private information passed particularly to the state server only08:18
rogpeppefwereade: you don't need any of that information in order to connect to the state server08:18
fwereaderogpeppe, I though we were meant to be able to switch on state-serveriness for arbitrary machines08:18
rogpeppefwereade: we want to be able to start new state servers, but i think that's a slightly different thing08:19
fwereaderogpeppe, (and I don't think that applies -- what about authorized-keys, which is similarly broken, but at least we have a route to unbreak it because it's in the env config)08:19
fwereaderogpeppe, for that matter, what about ec2 keys? they also go in the env config08:19
rogpeppefwereade: authorized-keys is different - it only has public keys08:19
fwereaderogpeppe, I don't see how that's a consideration -- isn't env config access going to be restricted?08:20
rogpeppefwereade: yeah, and that's an interesting issue too - we may actually need to provide different levels of env config access08:21
fwereaderogpeppe, I've been saying this for months, AIUI niemeyer will magically fix it all :/08:21
rogpeppefwereade: oh that's good then :-)08:22
fwereaderogpeppe, but he was so keen to slap down the segregation suggestion I made in oakland -- like *weirdly* keen -- that I just haven't bothered to keep on about it08:22
rogpeppefwereade: anyway, the certificate is for the eyes of that state server only - it may or may not be shared by other state servers08:22
rogpeppefwereade: unlike the ec2 keys which are global to whoever needs them08:23
fwereaderogpeppe, ah, ok, I thought it was an env-global certificate... maybe I don't understand what's going on at all here08:24
rogpeppefwereade: also, the ec2 keys can be passed with the other secret keys, after bootstrap, but the server certificate and key need to be passed earlier08:24
rogpeppefwereade: the thing that's env-global is the root CA certificate08:25
rogpeppefwereade: that's the thing that can authorize servers08:25
fwereaderogpeppe, then isn't that needed by everything that needs the ec2 keys?08:25
rogpeppefwereade: also, if the state server wants to spawn new state servers, it can pass its key to newly spawned instances08:25
rogpeppefwereade: i don't *think* so08:26
TheMuemorning dimitern08:27
rogpeppefwereade: well... it depends how we spawn new state servers08:27
fwereaderogpeppe, ah ok -- it's attached to the machine not the instance, and it's only the client that needs it so it can add machines, maybe?08:27
dimiternTheMue: morning :)08:27
rogpeppeTheMue: hi08:27
fwereaderogpeppe, yeah, I'm very unclear on this, I probably should have been following along more08:27
fwereadedimitern, heyhey08:27
TheMuerogpeppe: moin, didn't wanted to interrupt you ;)08:27
dimiternfwereade, rogpeppe, hey guys08:28
rogpeppedimitern: hiya08:28
fwereadedimitern, fwiw, this is the blueprint mentioned last night08:28
fwereadedimitern, https://blueprints.launchpad.net/ubuntu/+spec/servercloud-r-juju-resource-map08:28
dimiternfwereade: ah, 10x! I'll take a look08:28
fwereadedimitern, don't expect to actually implement anything directly related to it, but bear it in mind :)08:28
fwereadedimitern, thanks :)08:28
rogpeppefwereade: you don't need the state-server cert to add new machines08:29
fwereaderogpeppe, can we step back a bit so I get a fresh overview of the whole plan?08:29
rogpeppefwereade: sgtm08:29
fwereaderogpeppe, AIUI, the end purpose of this work is to allow us to verify the identities of machines and units -- how inaccurate am I so far?08:30
rogpeppefwereade: pretty inaccurate, tbh :-)08:30
fwereaderogpeppe, sweet, I am about to learn something :)08:30
rogpeppefwereade: machines and units identify themselves with a password. they're the client side. this is the server side, which identifies itself with a tls certificate, like a normal https web server08:31
rogpeppefwereade: if it was about allowing us to verify the identities of machines and units, we *definitely* wouldn't have an environment-global cert anyway08:33
fwereaderogpeppe, wait, who's going to be allowed to look in env config anyway?08:33
fwereaderogpeppe, I'm approaching this from a perspective in which generally the env config is not accessible08:34
rogpeppefwereade: anyone that can access the state and has the right authorisation08:34
fwereaderogpeppe, (fwiw, I thought we were doing the thing mentioned in the 3rd bullet at http://www.openssh.org/txt/release-5.4 which STM to imply that we can actually use a root CA to verify SSH keys)08:36
fwereaderogpeppe, yeah, but the "right authorization" needs to be finely gradated, doesn't it?08:36
fwereaderogpeppe, just because you can see one part of it doesn't mean you should be able to see it all08:37
rogpeppefwereade: something in me says it's wrong to have a private key in the state (i'm fairly reluctant even to pass it over the network, but i don't see a decent alternative)08:37
rogpeppefwereade: i agree. there are different parts of the state appropriate for different roles08:37
rogpeppefwereade: it may well be the case that we need to put the state server private key in the state (i now realise)08:38
fwereaderogpeppe, well, yeah -- isn't it going to also be hanging around forever, accessible to anything deployed on a machine that runs a state server?08:38
rogpeppefwereade: no; at least not eventually08:38
fwereaderogpeppe, ie anything that can access the metadata service on that machine?08:38
fwereaderogpeppe, I thought stuff in cloud-init stayed available forever, effectively08:39
rogpeppefwereade: the plan is to change the state server cert when we first connect08:39
fwereaderogpeppe, ah! ok cool08:39
rogpeppefwereade: similarly to admin-password08:39
rogpeppefwereade: we're skipping that bit for the time being though08:39
fwereaderogpeppe, ok, consider that objection sidelined08:39
rogpeppefwereade: anyway, even if we *do* have the state server cert in the environment, we'll still need to pass it in cloudinit.Config, i think08:40
fwereaderogpeppe, yeah, that's the only channel we have, and it's fine if we're replacing things08:41
rogpeppefwereade: exactly. the state server needs to know its key before there *is* a state08:41
fwereaderogpeppe, huh, I just thought08:41
fwereaderogpeppe, but I can't articulate, bah08:42
rogpeppefwereade: once we've bootstrapped a state server, the key can probably be passed in the state. in fact, it probably doesn't need to be part of the environment config, as it's independent of the environment08:42
fwereaderogpeppe, ok, I am confused: we pass up a cert+key, but those have to be replaced because they must be considered compromised by virtue of being in cloud-init08:43
rogpeppefwereade: yeah. go on.08:43
fwereaderogpeppe, how can we end up with a replacement that is not specific to the env that generated it?08:43
rogpeppefwereade: it's just part of the state.08:44
fwereaderogpeppe, but the state is not independent of the environment, is it?08:44
rogpeppefwereade: it doesn't interact with the environs providers at all08:44
rogpeppefwereade: ok, sorry, "independent of the environment" i meant in a fairly specific way08:45
rogpeppefwereade: i meant "independent of environs/*"08:45
rogpeppefwereade: or perhaps "independent of Environ"08:45
fwereaderogpeppe, hmm, ok, that still doesn't quite sit right with me but I'll take it on trust (until I suddenly derail another conversation when I figure out my objection ;))08:45
rogpeppefwereade: anyway, this is to do with high availability stuff, which we haven't figured out yet entirely, but i know at least that we need to pass a server cert and key in the initial cloudinit08:46
rogpeppefwereade: which is what this CL does08:47
rogpeppefwereade: i am about to change it though, so that the cert and key are in different fields. and i'm probably going to add another field, RootCACert08:48
fwereaderogpeppe, ok, that does sound sane to me, given the basic assumptions above08:50
fwereaderogpeppe, my brain still itches, though; I may well keep on hassling you about it ;)08:51
rogpeppefwereade: please do :-)08:51
fwereaderogpeppe, not right now though ;)08:51
TheMueSo, made another mint tea, still barking too much, damn cold.08:54
fwereadepopping out for a mo, bbs09:09
jammgz, dimitern: I hope your weekends went well10:05
dimiternjam: oh, yeah, yours?10:12
jampretty good overall, went to the beach, did some work around the house, etc.10:12
dimiternjam: so, I'm done with the nova stuff in the client, just the swift api left, and I'm looking into writing table based tests for everything10:13
niemeyerGood morning11:29
sidneio/11:30
sidneiis there anyone working on an openstack provider for juju-core?12:19
niemeyersidnei: Yeah, work on it is starting just now12:26
sidneiawzm12:26
sidneijust 'go got' juju-core :)12:26
rogpeppeniemeyer: yo!12:27
dimiternniemeyer: hey :)12:28
niemeyersidnei: Superb :)12:28
niemeyerrogpeppe, dimitern: Heyas!12:28
sidneiis there a wiki page on how to hack on it?12:29
sidneiniemeyer, ^12:29
niemeyersidnei: Not yet12:31
fwereadesidnei, https://codereview.appspot.com/6816114/ and https://codereview.appspot.com/6817113/ are not yet merged but may cover much of what you seek12:31
niemeyersidnei: Best is to ask questions here (and perhaps build such a page :)12:31
fwereadeniemeyer, heyhey :)12:31
niemeyerfwereade: Oh, wow.. I'm out-of-date :-)12:32
niemeyerfwereade: Heya12:32
fwereadesidnei, (those two links contain README and CONTRIBUTING files :))12:32
fwereadeniemeyer, nice holiday?12:32
niemeyerfwereade: Yeah, very.. hmm.. distracting :)12:32
fwereadeniemeyer, in a good way, I hope :)12:33
niemeyerfwereade: Yeah, a bit exhausting at times, but was certainly fun12:33
niemeyerfwereade: We've been doing some home improvements lately, and last week was the peak12:34
niemeyerfwereade: With plaster installation.. plaster is both the most amazing thing and something I don't ever want to see again (but I said that before..)12:35
fwereadehaha12:36
rogpeppeniemeyer: plastering is an amazingly skilled job12:36
niemeyerrogpeppe: Agreed12:43
mrammfwereade: those docs look nice, dave is rocking it out.13:15
mrammFYI all it's a national holiday here in the US so lots of folks will be out for the day13:16
fwereademramm, cool, thanks, and np :)13:17
sidneifwereade, thanks!13:24
fwereadesidnei, np :)13:25
* fwereade cheerfully takes credit ;p13:25
niemeyermramm: Enjoy13:25
mrammfwereade: I'm reading lp:~fwereade/+junk/juju-braindump now13:26
mrammfwereade: you get full credit for that one!13:26
mrammniemeyer: thanks!13:26
fwereademramm, :)13:26
sidneiit's a bit unclear from the contributing doc how tests from the branch get run13:28
fwereadesidnei, when you run `go test launchpad.net/juju-core/...`, all the tests will be run; if that dir contains some particular branch, the tests from that branch will be run13:29
fwereadesidnei, does that address the confusion?13:29
sidneinope :) so bzr branch lp:juju-core trunk; cd trunk; go test launchpad.net/juju-core/... will run the tests from the trunk branch?13:30
fwereadesidnei, sorry, nope -- the branch has to be checked out to $GOPATH/src/launchpad.net/juju-core13:31
fwereadesidnei, hence the utility of cobzr13:31
fwereadesidnei, which lets you use just the one filesystem location for the N branches you're working on13:31
sidneii see. so that 'branching' section needs some clarification13:32
TheMuefwereade: Reading your braindump too. Reads very good.13:34
fwereadesidnei, ah, yes, I see -- do you think it will be clear if we just add a note to the beginning of that section stating that you're expected to be in the go got juju-core directory to run these commands?13:34
fwereadeTheMue, cool13:34
TheMuefwereade: And especially your side notes like "… and be left for ages.". *lol*13:35
sidneifwereade, yes, and probably removing the mention of 'bzr branch lp:juju-core' completely, and just using 'bzr checkout -b' to make a branch from the go-got directory13:35
fwereadesidnei, isn't 'bzr branch lp:juju-core` exactly what should be done there though?13:36
sidneifwereade, nope, because go get already did that13:36
fwereadesidnei, it's assuming you're using cobzr, which does clever things with the branch command13:36
sidneiwell, the document starts with installing cobzr ;)13:37
fwereadesidnei, good point re checkout, indeed, sorry I misunderstood13:40
niemeyerfwereade: Glossary brings me memories.. I hope it's less controversial this time around.. ;)13:41
niemeyerfwereade: ("I don't wanna manage the wiki!")13:42
fwereadeniemeyer, really? ha, I think I missed that13:42
fwereadeniemeyer, lolo13:42
fwereademramm, TheMue, other readers: whoops, I forgot to add the glossary13:45
fwereadeit's there now13:45
TheMuefwereade: Great, thanks.13:45
sidneifwereade, should probably include a list of dependent packages too, running the tests complains that 'zip' and 'mongod' are not available for example.13:52
fwereadesidnei, I could swear that were covered somewhere13:53
fwereadesidnei, ah, they're in the readme, but zip is not mentioned (and nor is 'git' for that matter) -- thanks!13:55
* niemeyer goes for lunch13:56
fwereadesidnei, ah, and maybe both of those are covered by 'build-essential'13:57
sidneibuild-essential the meta package? pretty sure that doesn't install mongodb-server :)13:57
fwereadesidnei, the README has `sudo apt-get install mongodb build-essential bzr`13:57
* TheMue steps out, bbl13:58
fwereadesidnei, if that's inaccurate, though, ofc we want to know :)13:58
sidneii see13:58
sidneiso zip and git-core need to be added there14:00
sidneifwereade, next up: http://paste.ubuntu.com/1353151/14:01
sidneifwereade, there's this warning when running the tests, but the command it tells me to run doesn't work14:01
fwereadesidnei, ha, yeah, I grew used to that as a minor annoyance a while ago14:02
fwereadesidnei, it never crossed my figure-out-what-the-problem-is threshold though14:02
fwereaderogpeppe, are you familiar with the `go test -i foo/...` thing?14:03
rogpeppebzr14:03
rogpeppeoops14:03
rogpeppefwereade: you can't do that AFAIK14:04
rogpeppefwereade: it's a bit annoying14:04
sidneimaybe that warning can be removed/silenced?14:04
Aramsidnei: just go install foo/... before running the tests14:04
Aramusually go test -i works14:04
Aram(never seen it not working here)14:04
rogpeppeyeah, you can do 'go test -i' but not 'go test -i package'14:04
rogpeppeit's a bug. it may well have an issue for it.14:05
sidneineither works here, only 'go test' without the '-i'14:06
dimitern-i didn't work for me either14:07
rogpeppeah, this was issue 3896, but it's fixed in tip14:07
rogpeppedimitern: you have to be in the directory that has failed14:08
* Aram only runs tip14:08
rogpeppehttps://code.google.com/p/go/issues/detail?id=389614:08
dimiternrogpeppe: yes, both in the dir, and out, specifying full path14:08
rogpeppeAram: i try to run against 1.0.3 mostly because i don't want us to be incompatible with that because of later-fixed bugs14:09
rogpeppeAram: although currently i'm running against tip because i've got a few Go CLs pending14:09
fwereaderogpeppe, btw, re https://codereview.appspot.com/6811091/diff/1/worker/firewaller/firewaller.go#newcode54614:10
rogpeppesidnei: you can always just ignore that warning14:10
Aramrogpeppe: I run tip because lbox requires it, I'm making sure it will work with future Go versions (we already found problems this way) and I am sure most people run Go 1.0.3 so we will be compatible with that :-).14:10
sidneii can yes, just thinking about the next guy that gets the warning :)14:10
fwereaderogpeppe, it's not my code, but it looks to me like it's trying to make sure that ports and change aren't using the same underlying array14:10
Aramoh, and I like to play with exp/types14:10
rogpeppefwereade: they won't, even with my suggested change14:11
rogpeppesidnei: yeah, it's annoying. there are quite a few things which are fixed in tip but not 1.0.3. nothing crucial, but little things like that.14:12
fwereaderogpeppe, can you describe the mechanism that prevents that? I think I'm a bit slow today14:14
rogpeppefwereade: we're appending changes to ports, not assigning the changes slice to the ports slice.14:14
rogpeppefwereade: currently it reallocates the ports slice each time. that's unnecessary - all we need to do is copy the elements, and potentially reuse the old ports slice.14:15
rogpeppefwereade: it's minor stuff tbh14:15
fwereaderogpeppe, ok, and appending to the (empty) slice is safe because append knows that someone else is using the following slots, and copes automatically?14:15
fwereaderogpeppe, I had clearly misunderstood that then14:16
Aramrogpeppe: fwereade: I'd also appreciate an eye on https://codereview.appspot.com/6820112/ and https://codereview.appspot.com/6814108/ when you have some time.14:16
rogpeppefwereade: append only reallocates if the capacity of the slice isn't already large enough14:16
fwereaderogpeppe, ok, that was what I thought14:16
fwereaderogpeppe, so... GAAAH sorry14:17
fwereaderogpeppe, forget I said anything ;p14:17
rogpeppefwereade: what was that?14:17
rogpeppefwereade: someone was talking14:17
fwereaderogpeppe, no idea :)14:18
fwereadeAram, I shall get right on those, sorry to have neglected them14:18
Aramoh, BTS, Y U DON'T UNDERSTAND ME14:24
Aramthey are awful14:24
=== TheMue_ is now known as TheMue
rogpeppeAram: BTS?14:27
Aramrogpeppe: our travelling agency.14:27
rogpeppeAram: i think i must use a different one14:28
AramI see.14:28
* Aram is back in a couple of hours or so14:39
mrammAram: you gone yet?14:43
rogpeppeniemeyer: ping16:18
niemeyerrogpeppe: pongus16:18
rogpeppeniemeyer: i'm just in the process of writing a test that does *yet another* setup and teardown of a fake home directory16:18
rogpeppeniemeyer: and wondering if there's room for something like a HomeSuite16:18
niemeyerrogpeppe: Isn't that just a SetupFakeHome function?16:19
rogpeppeniemeyer: well, yes, but there needs to be a teardown function too16:20
niemeyerrogpeppe: Well, I guess we have to undo the var16:20
niemeyerYeah16:20
niemeyerrogpeppe: Sounds reasonable16:20
rogpeppeniemeyer: cool16:20
niemeyerrogpeppe: FakeHomeSuite16:20
rogpeppeniemeyer: +116:20
rogpeppeniemeyer: in juju-core/testing16:21
niemeyerrogpeppe: Yeah16:21
TheMueAram: My evaluation code so far is at lp:~themue/+junk/golxc. Real tests are missing, only a main using the implementation. It's corrently no rocket science, but opposite to the Python code it covers no Juju aspects, it's just a base package for later usage in the providers.17:23
rogpeppessh is too clever for its own damn good17:52
rogpeppeenv17:52
TheMuerogpeppe: rofl17:54
TheMuerogpeppe: how comes?17:55
rogpeppeTheMue: i tell it that $HOME is one thing, and it still finds out my $HOME via some other, as yet unknown, mechanism17:55
rogpeppeTheMue: i suspect it's doing a getpwuid17:55
TheMuerogpeppe: And how do you set $HOME?17:56
rogpeppeTheMue: i'm trying to get the state tests to pass irrespective of what the user's home directory contains17:56
rogpeppeTheMue: os.Setenv("HOME", ...)17:56
rogpeppeTheMue: you can try it yourself: cd juju-core/state; chmod 0 $HOME/.ssh; go test17:57
TheMuerogpeppe: On the remote site?17:57
rogpeppeTheMue: no, in the test code17:57
TheMuerogpeppe: Yes, test code. I'm only trying to get the mechanism.17:58
rogpeppeTheMue: i'd be interested to know if the above commands succeed or fail for you, actually17:59
TheMuerogpeppe: One moment.18:00
niemeyerrogpeppe: Yeah, ssh won't respect $HOME18:00
rogpeppeniemeyer: pity18:01
rogpeppeniemeyer: thanks for the confirmation though18:01
TheMuerogpeppe: ssh_test fails here too18:02
rogpeppeTheMue: yeah, i think we're gonna have to live with it18:02
rogpeppepwd18:03
rogpeppei've run out of time. gotta go. see y'all tomorrow.18:29
TheMuecu18:31
=== bcsaller1 is now known as bcsaller
davecheneyhttps://codereview.appspot.com/6817113/23:13
davecheney^ has two LGTM, but waiting for any final comments23:13
davecheneyi am not a strong wordsmith, i don't expect to get it 100% right on the first go23:13

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