[06:21] <fwereade> morning davecheney
[06:22] <davecheney> fwereade: hello
[06:22] <davecheney> thank you for your reviews
[06:22]  * davecheney is still pondering the theological implication of juju set KEY=""
[06:22] <fwereade> davecheney, a pleasure, sorry they've been a little vague
[06:22] <fwereade> davecheney, yeah, that is definitely a pain point...
[06:23] <fwereade> davecheney, but, have you been reading the "incompatible charm upgrades" thread?
[06:23] <davecheney> fwereade: not closely
[06:24] <davecheney> reading the python juju set
[06:24] <davecheney> it's a lot more complicated than KEY=VALUE
[06:24] <fwereade> davecheney, I *think* what that should always mean, based on clint's point re fallback-to-defaults, is "clear out the setting, use the service default instead"
[06:24] <davecheney> it's actually "key: value" _when_ the charm is a yaml charm
[06:24] <davecheney> and other options when the charm is something else
[06:24] <fwereade> davecheney, yeah, this is something I had not fully appreciated the intricacies of myself
[06:25] <fwereade> davecheney, sorry, what do you mean by "yaml charm"?
[06:25] <davecheney>     charm_format = (yield charm.get_metadata()).format
[06:25] <davecheney>     formatter = get_charm_formatter(charm_format)
[06:25] <davecheney>         options = formatter.parse_keyvalue_pairs(service_options)
[06:25] <fwereade> davecheney, oh, hell
[06:25] <davecheney> (insert dramatic chipmonk)
[06:25] <fwereade> haha
[06:26] <davecheney> however get_charm_formatter does allow for something called "PythonFormat"
[06:26] <fwereade> davecheney, I'm reluctant to claim possession of truth here, but please talk to niemeyer about this... I'm *sure* I saw him saying something to jimbaker yesterday that strongly implied that was not the correct approach on the client side
[06:26] <davecheney> T
[06:27] <davecheney> i'd suggest it's pretty crack for the user of a charm to have to specify the config data in the native charm format
[06:27] <davecheney> given we don't make it obvious what that format is
[06:29] <fwereade> davecheney, I *think* (again) that there was a recent thread which laid this out... or possibly just made reference to an earlier thread which did
[06:29] <davecheney> ill search the archive
[06:58] <rog> davecheney, fwereade: morning!
[07:00] <fwereade> rog, heyhey
[07:01] <fwereade> rog, PATH change is merged
[07:01] <fwereade> rog, is it just the security groups now?
[07:01] <rog> fwereade: i've just seen that. will pull and see what happens in my branch...
[07:01] <fwereade> rog, (that we currently know of ;))
[07:01] <rog> fwereade: no, they're in
[07:02] <rog> fwereade: it should just work now
[07:02] <fwereade> rog, ah, cool, I didn't try because https://code.launchpad.net/juju-core/+activereviews still shows it aproved but unmerged
[07:02] <rog> fwereade: although of course you won't be able to *tell* that it's working - the uniter-upgrade branch will do that
[07:02] <davecheney> hello lads
[07:02] <fwereade> rog, oh? what does that do
[07:03] <fwereade> rog, well, obviously it upgrades the uniter
[07:03] <rog> fwereade: good point - i'd moved it in to my "submitted" list, but it seems i never did
[07:03] <fwereade> rog, but... can't we tell anyway?
[07:03] <rog> fwereade: i suppose so, from the unit status
[07:03] <fwereade> rog, via status
[07:03] <fwereade> rog, yeah
[07:04] <rog> fwereade: will submit the security groups stuff pronto
[07:04] <fwereade> rog, cool
[07:05] <rog> fwereade: ah, no, it *is* submitted, but i had to remake the merge proposal because the prereq changed
[07:05] <rog> fwereade: i'll add a comment to the original
[07:09] <fwereade> rog, ah cool
[08:13] <fwereade> rog, dammit, it's the addresses again
[08:13] <rog> fwereade: ah, sorry, that fix is in the unit-upgrader branch
[08:14] <fwereade> rog, ahh that's why :)
[08:14] <rog> fwereade: i should push it out as a trivial
[08:14] <fwereade> rog, do it do it :)
[08:14] <rog> fwereade: although it's not *entirely* trivial - there's the arguable case over "latest" vs some fixed version number
[08:15] <rog> fwereade: which others might wish to weigh in on
[08:15] <rog> davecheney: ping
[08:15] <rog> fwereade: i have a feeling it was me that pushed for the fixed version in the first place. oh i am fickle.
[08:16] <rog> fwereade: anyway, if you want it to work, just change "1.0" to "latest"
[08:22] <fwereade> rog, I *kinda* think it's probably best to go with any specific version that has the metadata we need
[08:22] <fwereade> rog, I do in general trust amazon not to screw it up
[08:22] <fwereade> rog, but yu never know
[08:22] <rog> fwereade: ok, i'll do that then.
[08:22] <fwereade> rog, it's just one extra thing that *might* go wrong
[08:22] <rog> fwereade: perhaps a relatively recent version, so that we have access to other stuff as well if we want
[08:23] <fwereade> rog, yeah, the current target of latest would be fine with me
[08:23] <rog> fwereade: BTW what state are the relation hooks in?
[08:23] <fwereade> rog, basically, they're not
[08:24] <fwereade> rog, because so many of the details depend on lifecycles not just existence
[08:24] <rog> fwereade: ahhh
[08:24] <fwereade> rog, I have a branch that I'm 90 sure will work with only minor tweaks once the substrate is available
[08:24] <fwereade> rog, but it is 3 weeks old now
[08:24] <rog> substrate is such a good word
[08:24] <fwereade> rog, and I'm a bit worried about when I'll be able to make actual *progress* on it
[08:25] <fwereade> rog, fingers crossed for lisbon
[08:25] <rog> fwereade: yeah ikwym
[08:25] <rog> fwereade: what i tend to do is keep things roughly up to date, so i don't have an almighty job when i come to merge it later
[08:26] <rog> fwereade: but that can have its own problems of course
[08:26] <fwereade> rog, I gave up on that a long time ago, I'm just planning to recreate everything using it for inspiration
[08:26] <rog> fwereade: lol
[08:38] <fwereade> rog, ffs, git is not installed by default :)
[08:38] <rog> fwereade: nbd. we have other dependencies too.
[08:39] <fwereade> rog, indeed
[08:39] <fwereade> rog, just another irritating step ;)
[08:39] <rog> fwereade: and some time later, we will should provide images that don't take 5 minutes to get all their stuff before becoming usable
[08:39] <rog> s/will //
[08:40] <fwereade> rog, yeah, definitely
[09:05] <fwereade> rog, can I get a trivial LGTM on https://codereview.appspot.com/6495129 before I pop out for coffee please?
[09:06] <rog> fwereade: assuming it works, LGTM
[09:06] <fwereade> rog, it appeared to :)
[09:06] <rog> fwereade: cool
[09:07] <rog> fwereade: did you see the charm actually running some commands then?
[10:36] <fwereade-on-juju> so, the *only* hack this is using (compared to trunk) is the latest metadata
[10:37] <fwereade-on-juju> http://ec2-174-129-106-129.compute-1.amazonaws.com:3000/
[10:37] <fwereade-on-juju> rog, *surely* we can make that a trivial and get trunk actually *working* ..?
[10:38] <rog> fwereade-on-juju: so... you're actually connecting from a charm?
[10:39] <rog> fwereade-on-juju: YAYAYYAYAYAYAAYYA!!!!
[10:39] <rog> fwereade-on-juju: ok, i'll frikkin' do it
[10:40] <fwereade-on-juju> rog, oh yes I am :)
[10:40] <fwereade-on-juju> oops, bugger, need cash for cleaner, brb
[10:41] <rog> fwereade-on-juju: while you've got an instance up, could you do a quick curl http://169.254.169.254/ and paste me the results please?
[10:41] <rog> fwereade-on-juju: that is - do that on an ssh session in your instance
[10:42] <rog> fwereade-on-juju: actually, scratch that
[10:46] <rog> fwereade-on-juju: https://codereview.appspot.com/6498128
[10:53] <rog> fwereade-on-juju: hmm, pity your server doesn't seem to be actually connecting to IRC for me
[10:54] <rog> fwereade: oh yes, that CL also renames a directory, which the codereview page doesn't show.
[10:56] <fwereade-on-juju> rog, sorry, back; looking
[10:57] <fwereade-on-juju> rog, LGTM
[10:57] <fwereade-on-juju> rog, but... what's not working for you?
[10:58] <fwereade-on-juju> rog, you *should* just be able to do new connection to chat.freenode.net and pick a name
[10:58] <rog> fwereade-on-juju: i tried, but it hung. i did use "irc.freenode.net" though
[10:58] <fwereade> rog, tbh subway *does* apear to be a touch flaky, it misses messages occasionally
[10:59] <fwereade> rog, but I *think* we can blame the service rather than juju for that ;)
[10:59] <rog> fwereade: i tried it in two windows, different server names, etc
[10:59] <rog> fwereade: but yeah, i see the page!
[10:59] <rog> fwereade: i just wanted to join you as rog-on-juju :-)
[10:59] <fwereade-on-juju> rog, yeah, indeed
[10:59] <fwereade-on-juju> it's lonely up here ;p
[10:59] <rog> fwereade-on-juju: ok, so trunk should now be working!
[11:00] <fwereade-on-juju> rog, ok, I'm shutting this down and trying it out :)
[11:00] <rog> fwereade: "you were disconnected from the server" :-)
[11:01] <fwereade> rog, that works, anyway ;p
[11:01] <rog> fwereade: yeah, i could navigate other pages too
[11:01] <rog> fwereade: just not get through to irc
[11:37] <fwereade> rog, sorry, but I'm getting 404s from 2012-06-01...
[11:37] <rog> fuck
[11:37] <rog> fwereade: that's the version they mentioned on the web page
[11:37] <rog> fwereade: i just assumed...
[11:37] <rog> fwereade: bloody amz
[11:38] <rog> fwereade: have you got an instance up now?
[11:38] <fwereade> rog, bad luck
[11:38] <fwereade> rog, yeah, I was just about to poke around and try to figure out what it should be
[11:38] <rog> fwereade: ssh to it and do curl http://169.254.169.254/
[11:38] <rog> fwereade: that should give you the list of available versions i think
[11:39] <fwereade> rog, huh, latest is 2012-01-12
[11:39] <rog> fwereade: ok
[11:39] <rog> fwereade: i *so nearly* went for a 2011 version!
[11:39] <fwereade> rog, haha
[11:39] <fwereade> rog, wonder wtf the deal is with versions not existing :/
[11:40] <rog> fwereade: only amazon knows
[11:40] <rog> fwereade: ok, will change it
[11:40] <fwereade> rog, 2012-01-12 verified live btw ;)
[11:41] <rog> fwereade: thanks. i didn't want to wait for another live test to complete :-)
[11:42] <rog> fwereade: could you verify 2011-01-01
[11:42] <rog> ?
[11:42] <rog> fwereade: i think i'll go for that, as who knows how consistent amz is across regions
[11:42] <fwereade> rog, sorry, just killed the env -- but it was advertised
[11:43] <rog> fwereade: that gives us everything we want, i think
[11:43] <fwereade> rog, sgtm
[11:51] <rog> fwereade:  https://codereview.appspot.com/6494136
[11:52] <fwereade> rog, LGTM
[11:53] <rog> fwereade: submitted
[11:53] <fwereade> rog, trying it out
[12:14] <fwereade-on-juju> oh yes indeed
[12:16] <rog> fwereade-on-juju: fanbloodytastic!
[12:16] <fwereade-on-juju> rog, ain't it :D
[12:16] <fwereade-on-juju> rog, not one lick of manual intervention
[12:16] <rog> fwereade-on-juju: am very glad you got to be the first!
[12:17] <fwereade-on-juju> rog, bah, there's more than enough credit to go around :)
[12:17] <fwereade-on-juju> rog, http://ec2-23-20-195-110.compute-1.amazonaws.com:3000/ -- maybe subway will be happier this time
[12:17] <rog> fwereade-on-juju: you don't have to log in or register first?
[12:17] <fwereade> rog, I just picked a name and a server and that ws it
[12:20] <rog> fwereade: nah
[12:21] <rog> fwereade: tried from my phone too. page serves fine though
[12:21] <fwereade> rog, weird
[12:21] <fwereade> rog, ah well
[13:01] <mramm> For those wondering about sprint plans, Marianna says: "I'm booking the same venue as for the July's sprint"
[13:01] <fwereade> mramm, cool
[13:02] <mramm> something went wrong in the notification system, so she got started late
[13:02] <mramm> but is finalizing the details this morning
[13:02] <mramm> so we should be all set to go
[13:02] <fwereade> mramm, not sure if you saw that I just deployed a charm on trunk :)
[13:02] <mramm> rock and roll
[13:02] <mramm> great work everybody!
[13:27] <niemeyer> Hellos!
[13:46] <fwereade> niemeyer, heyhey
[13:47] <fwereade> niemeyer, with a pair of trivials merged by me and rog this morning, current trunk can deploy subway :)
[14:02] <niemeyer> fwereade: Wooooooo
[14:02] <fwereade> :D
[14:02] <niemeyer> fwereade: Sooooo awesome.. we should have a beer on Sunday :-)
[14:02] <fwereade> niemeyer, SGTM :) when are you getting in?
[14:04] <Guest96454> niemeyer: yo!
[14:05] <niemeyer> fwereade: Let me check
[14:05] <niemeyer> Guest96454: Morning! :-)
[14:05] <rogpeppe> how did that happen?!
[14:06] <rogpeppe> guess i was on the last available name
[14:38] <niemeyer> fwereade: Just sent another reply on the upgrade thread
[14:38] <fwereade> niemeyer, cool, looking
[14:58] <fwereade> niemeyer, replied
[14:58] <niemeyer> fwereade: Cheers
[15:16]  * fwereade acknowledges a good point by niemeyer, and goes off to think for a bit
[16:36] <niemeyer> Lunch time!
[17:10]  * rogpeppe wishes there was an easy way of splitting a branch in two
[17:21] <rogpeppe> gah!
[17:28] <niemeyer> rogpeppe: git is *slightly* better at that, via rebase
[17:29] <niemeyer> rogpeppe: Unfortunately we don't yet have something as complete as git's rebase yet
[17:29] <rogpeppe> niemeyer: i'm just gonna copy the files into a branch off trunk and lose the revision history
[17:29] <rogpeppe> niemeyer: sucks a bit, but i don't mind much
[17:36] <niemeyer> rogpeppe: Well, that's unavoidable unfortunately
[17:36] <niemeyer> rogpeppe: Splitting content in half always trashes or modifies history somehow
[17:37] <rogpeppe> niemeyer: unless you use darcs apparently
[17:37] <rogpeppe> niemeyer: well "alters" i'm sure
[17:37] <niemeyer> rogpeppe: I believe this is a theoretical constraint
[17:45] <rogpeppe> we have a place to stay!
[17:46] <niemeyer> rogpeppe: Yeah, that was tight :-)
[17:46] <rogpeppe> niemeyer: not quite as convenient as before
[17:52] <rogpeppe> niemeyer: here's the upgrader logic we talked about: https://codereview.appspot.com/6492123/
[17:54] <rogpeppe> niemeyer: unfortunately i can't propose the uniter upgrade branch until we decide about UnitWatcher
[17:55] <niemeyer> rogpeppe: I don't get the comment about WaitForEnviron
[17:55] <rogpeppe> niemeyer: WaitForEnviron absorbs the first event
[17:55] <rogpeppe> niemeyer: but we need to see it
[17:55] <niemeyer> rogpeppe: Yeah, it absorbs to return the environ
[17:55] <niemeyer> rogpeppe: We don't "miss it"
[17:55] <niemeyer> rogpeppe: It's handling the event for us
[17:55] <rogpeppe> niemeyer: yes, but we need that event in the upgrader loop
[17:56] <rogpeppe> niemeyer: unless...
[17:56] <rogpeppe> niemeyer: we could just start an independent environ watcher
[17:56] <niemeyer> rogpeppe: It just sounds a bit confusing.. the comment says that we can't use it because it does precisely what it should do
[17:56] <niemeyer> rogpeppe: The goal is precisely to "initialize the environ when we're first able"
[17:57] <rogpeppe> niemeyer: ok. i'll try to think of another way of phrasing the comment
[17:57] <niemeyer> rogpeppe: So far I'm arguing mainly about the comment.. I don't understand what's the constraint yet
[17:58] <niemeyer> rogpeppe: It says something like "we initialize the environ when we're first able, so we can't use WaitForEnviron" but that's *exactly* what WaitForEnviron does.. not sure if you see what I mena?
[17:59] <niemeyer> rogpeppe: It feels like we could just use it, to be honest
[17:59] <niemeyer> rogpeppe: Why can't we?
[18:00] <rogpeppe> niemeyer: if we use it and the environ config does not change, we won't see any more events on the watcher, so we'll never do an upgrade.
[18:02] <rogpeppe> niemeyer: here's a possible updated version of the comment:
[18:02] <rogpeppe> 	// We can't use worker.WaitForEnviron because then we don't
[18:02] <rogpeppe> 	// see the first event from the watcher, which we need
[18:02] <rogpeppe> 	// to see because it has version information in that we
[18:02] <rogpeppe> 	// must see.
[18:03] <rogpeppe> niemeyer: slightly better:
[18:03] <rogpeppe> 	// We can't use worker.WaitForEnviron because then we don't
[18:03] <rogpeppe> 	// see the first event from the watcher, which contains version information
[18:03] <rogpeppe> 	// that we must see.
[18:05] <rogpeppe> niemeyer: i need to go, i'm afraid
[18:05] <rogpeppe> niemeyer: looking forward to an awesome sprint!
[18:05] <rogpeppe> niemeyer: hope your travel goes well
[18:05] <niemeyer> rogpeppe: I see, it's still not entirely right, though
[18:05] <rogpeppe> niemeyer: oh?
[18:05] <niemeyer> rogpeppe: WaitForEnviron does more than simply waiting for first event
[18:06] <niemeyer> rogpeppe: We need it to handle the bootstrap behavior
[18:06] <rogpeppe> niemeyer: i *think* i do that
[18:06] <niemeyer> rogpeppe: Doesn't look like so..
[18:06] <niemeyer> rogpeppe: The logic within the switch says
[18:06] <niemeyer> 139 »       »       »       »       »       // continue on, because the version number is stil
[18:06] <niemeyer>      l significant.
[18:06] <niemeyer> rogpeppe: We can't move on with an invalid configuration
[18:06] <niemeyer> rogpeppe: We talk to the environment mid-way through
[18:07] <rogpeppe> niemeyer: what about line 132?
[18:07] <niemeyer> rogpeppe: Ah, yeah, you're right
[18:08] <niemeyer> rogpeppe: Anyway, we can talk next week.. have fun there
[18:08] <niemeyer> rogpeppe: and safe travels
[18:08] <rogpeppe> niemeyer: and you too.
[18:08] <niemeyer> rogpeppe: Thanks
[18:09] <rogpeppe> niemeyer: you too!