[07:15] <rogpeppe> niemeyer: morning!
[07:16] <niemeyer> rogpeppe: Heya!
[07:16] <rogpeppe> niemeyer: thanks for the LGTM, BTW
[07:18] <rogpeppe> niemeyer: will submit after i've upgraded to precise this morning. thought it might be a good idea before heading to UDS. i'm hoping the battery life will have reverted towards what i got under natty...
[07:20] <niemeyer> rogpeppe: Ah, super
[07:21] <niemeyer> rogpeppe: Just finishing reviews to get some sleep here as well
[07:23] <rogpeppe> niemeyer: hmm, precise says it's going to remove libzookeeper-dev, i wonder why
[07:24] <rogpeppe> niemeyer: oh yes, one thing i discussed with william last night
[07:25] <rogpeppe> niemeyer: how do you feel about upload-tools being a separate subcommand rather than a flag?
[07:26] <niemeyer> rogpeppe: Where would it upload to?
[07:26] <rogpeppe> niemeyer: to private storage
[07:26] <niemeyer> rogpeppe: Which private storage?
[07:26] <niemeyer> rogpeppe: There's no environment..
[07:26] <rogpeppe> niemeyer: the storage mentioned in environments.yaml
[07:26] <niemeyer> rogpeppe: The environment doesn't exist
[07:27] <rogpeppe> niemeyer: it is created when necessary. it doesn't matter if it's created by bootstrap or upload-tools, i think
[07:27] <niemeyer> rogpeppe: bootstrap is what creates it.. we can't expect the private storage to work before that happens.
[07:27] <niemeyer> rogpeppe: Heh
[07:27] <niemeyer> rogpeppe: So you're turning upload-tools into bootstrap..
[07:27] <niemeyer> rogpeppe: Doesn't feel great.
[07:27] <rogpeppe> niemeyer: bootstrap is all about starting the first machine, i think. the storage is somewhat incidental.
[07:28] <niemeyer> rogpeppe: bootstrap is all about creating the environment. Everything else is a side effect of that.
[07:28] <niemeyer> rogpeppe: Storage can't be assumed to work at all before the environment has been bootstrapped.
[07:29] <rogpeppe> niemeyer: ok, so if it's not a command, which commands should get --upload-tools (or --upload-client?) as a flag?
[07:29] <niemeyer> rogpeppe: There are environments that already depend on that (local) and it's pretty much certain that private storage will move out of S3 in the future and into a custom service
[07:29] <niemeyer> rogpeppe: Right now, bootstrap
[07:29] <rogpeppe> niemeyer: and what if you want to upload tools for several architectures before bootstrapping?
[07:30] <niemeyer> rogpeppe: You can't. There's no where to upload to before bootstrap happens.
[07:31] <rogpeppe> niemeyer: if there was a separate command that could only run after bootstrap, in addition to the --upload-tools flag on bootstrap, that could work
[07:32] <rogpeppe> niemeyer: something to think about anyway. for the time being, i'll just do the flag on bootstrap.
[07:32] <rogpeppe> niemeyer: thanks for the input.
[07:32] <niemeyer> rogpeppe: Maybe, but it might work fine to have --upload-tools as a flag of upgrade-juju as well
[07:33] <niemeyer> rogpeppe: Hmm.. not sure
[07:33] <niemeyer> rogpeppe: Maybe upload-tools would be cleaner
[07:33] <rogpeppe> niemeyer: yeah, not sure either.
[07:34] <rogpeppe> niemeyer: it seems like it's mostly orthogonal
[07:34] <niemeyer> rogpeppe: Yeah, you're right
[07:37] <niemeyer> Okay.. really need some sleep now
[07:37] <rogpeppe> niemeyer: yeah, you do!
[07:37] <rogpeppe> niemeyer: yeah, you do!)
[07:37] <rogpeppe> :-)
[07:37] <niemeyer> rogpeppe: Have a great day :)
[07:37] <niemeyer> and talk to you in a few hours maybe
[07:37] <rogpeppe> niemeyer: yeah
[07:38] <rogpeppe> niemeyer: sweet dreams..
[07:38] <niemeyer> Thanks man
[07:38]  * niemeyer => sweetness
[16:04] <wrtp> niemeyer: mornin'
[16:05] <wrtp> niemeyer: sleep well? :-)
[16:24] <niemeyer> wrtp: Heya!
[16:24] <niemeyer> wrtp: Yep
[16:24] <niemeyer> wrtp: All good, thanks
[16:24] <niemeyer> wrtp: How was the day?
[16:25] <wrtp> niemeyer: not quite as productive as hoped. i'm a little unsure about the best way to proceed.
[16:26] <wrtp> niemeyer: i might change the proposal i made earlier - i'm currently thinking that an "uploadTools" bool argument to Bootstrap might be better.
[16:27] <niemeyer> wrtp: We might have both, I suppose
[16:27] <niemeyer> wrtp: Actually, hmm..
[16:27] <wrtp> niemeyer: i think that's the best way
[16:27] <niemeyer> wrtp: What's the background?
[16:27] <wrtp> niemeyer: one current problem is that given the Environ interface, i'm forced to call PutFile before Bootstrap
[16:28] <wrtp> niemeyer: i thought about having a separate "Create" call to create the environment's state, but that seems wrong.
[16:29] <niemeyer> wrtp: Yeah, I see what you mean.. maybe the bool is the best solution.. let me think for a moment as well
[16:29] <wrtp> niemeyer: the other problem is how to tell the Environ to do exact version matching.
[16:30] <wrtp> niemeyer: i'm also trying to think forward with an eye towards constraints.
[16:34] <niemeyer> wrtp: Talk me through it
[16:35] <wrtp> niemeyer: my current idea is that if the uploadTools bool arg to Bootstrap is true, the environ creates the state appropriately and calls environs.UploadTools. it also triggers exact version matching (which will need to be an argument to the provisioning agent).
[16:36] <wrtp> niemeyer: *and* (for the future) it adds the current architecture to the bootstrap constraints.
[16:37] <wrtp> niemeyer: in addition to that, we'd have an upload-tools command to juju which would upload tools for the current version/arch with no other side effects.
[16:39] <wrtp> niemeyer: how does that sound?
[16:41] <niemeyer> wrtp: It sounds reasonable
[16:42] <wrtp> niemeyer: cool.
[16:42] <niemeyer> wrtp: Both things seem interlocked really
[16:42] <niemeyer> wrtp: We can't bootstrap without the tools, and we can't upload the tools without bootstrapping
[16:43] <niemeyer> wrtp: So it makes sense to have the chicken being fabricated to get started :)
[16:43] <wrtp> niemeyer: yeah. well, maybe - it works ok on ec2, but maybe not with other providers as you've said
[16:43] <wrtp> niemeyer: and we'd need another arg to bootstrap anyway to ask for an exact version.
[16:43] <niemeyer> wrtp: Even EC2 itself may not work so well with that in the near future
[16:44] <niemeyer> wrtp: Think environment storage moving onto the nodes
[16:44] <Aram> hi folks.
[16:44] <wrtp> niemeyer: how can that work?
[16:44] <niemeyer> Aram: Heya
[16:45] <wrtp> niemeyer: how can we know what node to contact without some storage?
[16:45] <wrtp> Aram: hi
[16:45] <niemeyer> wrtp: There are good ways to tag machines in EC2 nowadays
[16:46] <wrtp> niemeyer: ah, yeah, that seems reasonable then. ec2 metadata becomes the storage...
[16:47] <niemeyer> wrtp: Not really the storage..
[16:47] <wrtp> niemeyer: the storage for the initial contact info
[16:47] <wrtp> niemeyer: replacing zookeeper-addresses (or whatever the name is)
[16:47] <niemeyer> wrtp: yeah.. this is really a lookup mechanism rather than actual storage
[16:47] <niemeyer> wrtp: It'll actually be a lot nicer that way
[16:48] <niemeyer> wrtp: We can even move into this direction today, I guess
[16:48] <niemeyer> wrtp: Well, not yet
[16:48] <niemeyer> wrtp: We'd still need the control bucket either way
[16:48] <wrtp> niemeyer: yeah
[16:48] <niemeyer> wrtp: But it'll be awesome to drop that ugly setting
[16:48] <wrtp> niemeyer: although calling it "control-bucket" would soon be a bit wrong
[16:49] <niemeyer> wrtp: Well, I hope we kill it for good
[16:49] <niemeyer> wrtp: It'll also be a lot nicer to port it across providers
[16:50] <niemeyer> Oops.. time to talk about juju here..
[16:50] <wrtp> niemeyer: have fun
[17:03] <wrtp> niemeyer: off for the day. see you tomorrow some time, hopefully.
[18:20] <niemeyer> andrewsmedina: Heya
[18:20] <niemeyer> andrewsmedina: How're things going there?
[19:08] <andrewsmedina> niemeyer: hi
[19:10] <andrewsmedina> niemeyer: I'm finishing the works in the networking for local provider
[19:10] <andrewsmedina> niemeyer: rog did the review
[19:10] <andrewsmedina> niemeyer: https://codereview.appspot.com/6099051/
[19:49] <niemeyer> andrewsmedina: I noticed, that's awesome.. a bit rushy this week due to the event here, but I'm looking forward to checking it out