[00:00] SpamapS: plus metadata [00:00] does facter know the ec2 public hostname? thats the tough one to get right now [00:00] SpamapS: it's really easy [00:00] SpamapS: wget -q -O- http://169.254.169.254/latest/meta-data/public-hostname [00:00] SpamapS: if that fails, then use hostname -s [00:00] SpamapS: Heh [00:01] SpamapS: https happens to be a superset of http [00:04] SpamapS: http://paste.ubuntu.com/626933/ [00:04] niemeyer: hmm, i'm not sure about that ... try https://ec2-50-17-174-12.compute-1.amazonaws.com:80 [00:05] niemeyer: ie, point https to a port that talks http [00:05] niemeyer: yes, I can see where you could also just add 'ssl=1' to the http interface.. [00:05] niemeyer: and the browser is unhappy [00:05] kirkland: Ok, my apologies for the imprecise wording... [00:05] HTTPS is merely an encryption wrapping on top of HTTP itself [00:05] niemeyer: oh, sorry, i wasn't trying to be an ass; i just thought for a second, "whoa, that's neat, I didn't know that!" then tried it, and it didn't work :-) [00:06] niemeyer: okay, cool [00:06] kirkland: sure, I'd like to abstract that into a tool that is like facter, but not as clunky as facter. :) [00:06] But either way, website is a much better term [00:06] SpamapS: +1 from me [00:06] kirkland: I was reading facter, and one thing it gets really, really wrong, is that it only runs one process at a time. [00:06] SpamapS: i posted something like this to ubuntu-devel@, if you can to comment there [00:06] and "http" would lead to all kinds of confusion regarding protocol vs. relation.. [00:06] So I stand corrected. [00:06] kirkland: it runs 100+ external processes, but waits on each one before moving to the next. [00:06] SpamapS: i got *reamed* in #ubuntu-devel today, though [00:06] kirkland: eh? [00:06] niemeyer: okay, i've changed it to website [00:07] kirkland: I saw your post to the ml .. [00:07] SpamapS: see today's log, between me, keybuk, cjwatson, and friends [00:07] SpamapS: they have a few good points [00:07] SpamapS: but still, i think we could use something, if it's named and documented appropriately [00:13] bzr: ERROR: Invalid url supplied to transport: "lp:~kirkland/principia/oneiric/byobu-web/trunk": No such source package byobu-web. [00:13] SpamapS: did you warn me about this yesterday? [00:14] kirkland: no, but its a known problem [00:14] kirkland: and being worked on [00:14] SpamapS: okay... what's the solution? [00:14] kirkland: for now you have to use +junk, or upload a package naemd 'byobu-web' to a PPA somewhere [00:14] SpamapS: hah, seriously? [00:14] :-) [00:14] kirkland: re the conversation w/ Keybuk .. his point about DNS is *quite* good. [00:14] we could just simply stop passing around IP [00:15] The good thing about using DNS is it can be contextualized for the requester... [00:15] SpamapS: mokay [00:15] It was glossed over, but I see the point [00:51] Dinner time! [00:53] <_mup_> ensemble/expose-watch-exposed-flag r245 committed by jim.baker@canonical.com [00:53] <_mup_> Fixed tests with respect to watch_exposed_flag using its callback on its first value, instead of yielding it [00:54] <_mup_> ensemble/expose-watch-exposed-flag r246 committed by jim.baker@canonical.com [00:54] <_mup_> PEP8 [01:00] <_mup_> ensemble/expose-watch-exposed-flag r248 committed by jim.baker@canonical.com [01:00] <_mup_> Better comments [01:01] <_mup_> ensemble/expose-provision-service-hierarchy r293 committed by jim.baker@canonical.com [01:01] <_mup_> Merged upstream expose-watch-exposed-flag [01:07] SpamapS: hmm, so my relation-set items are not showing up in 'ensemble status' [01:08] No ENSEMBLE_AGENT_SOCKET/-s option found [01:11] relation-set shouldn't show in status unless a new change was made [01:11] that error though, means that the environment is screwed up somehow [01:11] kirkland: is your formula in a branch I can look at? [01:12] SpamapS: lp:~kirkland/+junk/byobu-web [01:13] SpamapS: thanks for your review and all your help [01:15] kirkland: no problem.. its fun. :) [01:16] SpamapS: ;-) [01:17] kirkland: are you running that via debug-hooks ? [01:17] SpamapS: um, no [01:21] kirkland: where are you seeing the error about ENSEMBLE_AGENT_SOCKET? [01:27] SpamapS: oh, i just tried to run the relation-set by hand [01:27] kirkland: right, that won't ever work. :) [01:27] SpamapS: heh [01:28] kirkland: I mean, you can make it work but you need to be on the machine, the socket is for talking to the local unit agent [01:28] kirkland: thats why debug-hooks is so pimp [01:28] SpamapS: then that should probably be moved to /usr/lib/ensemble [01:28] kirkland: tried it yet? [01:28] SpamapS: if it's not meant be run by hand [01:29] kirkland: not really, you can run it in a cron job.. :) [01:29] SpamapS: no, how do i do that? [01:29] ensemble debug-hooks service/0 [01:29] you MIGHT recognize the interface.. ;) [01:29] do that, then relate something to it [01:31] SpamapS: nice ;-) [01:34] SpamapS: hmm, okay, i'm missing something, conceptually here [01:34] kirkland: about to wrap up and go join the cloudcamp pre-camp cocktail party. :) [01:35] kirkland: whats up? [01:38] SpamapS: meh, it can wait [01:38] SpamapS: perhaps you can help me more tomorrow [01:40] kirkland: I've got 5 more minutes [01:47] alright.. I'm out.. good luck. :) [03:35] just wondering if anyone's around for some more formula help [03:38] okay, i've been beating my head against the wall for a while now and I'm just now realizing [03:38] that I'm changing the formula in my local repository [03:39] and then i'm trying to deploy it [03:39] but the modified formula isn't getting deployed [03:41] <_mup_> Bug #797493 was filed: unresolved revision %r in upgrade-formula error message < https://launchpad.net/bugs/797493 > [04:07] i'm getting a lot of these: [04:07] 2011-06-15 02:50:48,534: hook.output@ERROR: debconf: unable to initialize frontend: Readline [05:08] niemeyer: i'm disappointed to see byobu pruned from head :-( [05:08] niemeyer: for tmux [05:08] niemeyer: i see an obscure note about "race" conditions, but no other explanation [05:17] kirkland: We didn't intend to exclude byobu specifically, of course [05:17] kirkland: We replaced screen [05:17] kirkland: I did, actually [05:18] niemeyer: right, bzr-blame told me :-) [05:18] kirkland: Because tmux behaves in a better way when facing concurrent executions [05:18] kirkland: If we fix that, we can bring screen back [05:18] niemeyer: so I'd love to help you fix that so that ensemble can use screen/byobu for this [05:18] niemeyer: by all means, I'm at your disposal [05:18] kirkland: Sounds good.. I have no special attachment to either in this case [05:18] niemeyer: right-o; I sorta do :-) [05:19] kirkland: Used screen for a long time.. have been experimenting with tmux lately.. can use either without worries [05:19] kirkland: Yeah, I know ;) [05:19] niemeyer: it doesn't have to be now, but can you explain to me your concurrency problems? [05:19] kirkland: Will be happy to put your stuff to crank :) [05:19] kirkland: We just need to sort the race [05:19] kirkland: It's pretty simple to explain, actually [05:19] niemeyer: and i'll gladly write a custom configuration file for ensemble-debug-hooks-byobu [05:20] kirkland: Given a session name, screen offers no way that I could perceive to avoid the same user from potentially getting two different sessions started [05:20] niemeyer: as I'm using it now, I can see the things I want to know about a system when I'm logged into it through debug [05:20] niemeyer: do you want 1 session, or 2? [05:20] kirkland: The first [05:21] niemeyer: okay, so you want 1 session, call it "ensemble-debug" or something, right? [05:21] kirkland: For both [05:21] niemeyer: okay, and you also want to attach to that one and only one session? [05:22] kirkland: Yes, just a non-racy way to create a named session [05:22] kirkland: If the same user executes the same command twice in different terminals, the command should fail or succeed, but it should never yield two different sessions [05:23] kirkland: We can't _join_ the session, though.. [05:23] kirkland: Simply new-session + exec command in new session, without races [05:24] niemeyer: to reproduce the problem you're experience in screen ... [05:24] niemeyer: i'm going to create a screen session with "screen -S debug" [05:25] niemeyer: okay, now I have a session [05:25] niemeyer: called 'debug' [05:25] niemeyer: and now I want to run a command in that sesion [05:25] Ok [05:25] kirkland: You want to create it if it doesn't exist, and run it in the single session [05:26] niemeyer: okay, using the "at" command [05:26] niemeyer: i mean, screen's at [05:28] kirkland: Executing the command isn't the problem.. the problem is creating the session in a non-racy way [05:33] niemeyer: byobu -xRS %s-hook-debug -t shell [05:33] niemeyer: that's what you were using before, right? [05:33] niemeyer: and that's what you found to be racy? [05:34] kirkland: No, that'd join the session [05:34] niemeyer: what were you using to create it? [05:35] niemeyer: i'm trying to reproduce the race [05:35] kirkland: This is being run from a script.. it can't join the session [05:35] niemeyer: right, so you create the session detached [05:35] kirkland: You don't have to reproduce the race.. any solution will do :-) [05:35] niemeyer: some people create their byobu session in a cronjob at boot [05:36] niemeyer: so that they can launch irssi and use byobu+irssi as their irc proxy [05:36] kirkland: Yeah, that should be fine.. the machine won't boot twice at the same time. [05:36] niemeyer: if it does, I want to see it! [05:36] +1! :-) [05:36] niemeyer: let me find my emails where I've helped someone do this [05:37] niemeyer: it's a permutation of this: [05:37] -d -m Start screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts. [05:38] niemeyer: one more question... you want this session owned by root, or ubuntu? [05:38] niemeyer: i've noticed both your tmux and byobu solutions use sudo to get to a shell [05:38] kirkland: Yeah [05:38] niemeyer: i found a minor bug with the way that was being called [05:38] niemeyer: which I'll fix as I work on this [05:38] kirkland: What was it? [05:38] niemeyer: but I'm curious about the motivation and design [05:40] kirkland: It's just a script on the server feeding a screen/tmux session [05:40] niemeyer: right [05:40] niemeyer: but putting the user in a root shell [05:41] niemeyer: rather than an ubuntu shell [05:41] kirkland: The race comes from the fact that the session can be started by the server feeding a new shell, or by the user starting the debugging session [05:41] niemeyer: is that by design? [05:41] niemeyer: sorry, this is aside from the race :-) [05:41] kirkland: There are details, but that's the core idea [05:41] kirkland: It's root because the formula runs as root for good reasons [05:41] kirkland: So to emulate the same environment, we run the hook as root too [05:41] niemeyer: okay [05:42] niemeyer: fair enough; that's the explanation i was looking for [05:42] kirkland: Cool.. we should document that there too [05:52] niemeyer: so basically, we just need this in /etc/rc.local or an upstart boot script: [05:53] byobu -d -m -S byobu.debug bash [05:53] niemeyer: which will start a screen+byobu session, in detached mode at boot; name it "byobu.debug", and run a single window called bash [05:53] [niemeyer@gopher ~]% screen -d -m -S byobu.debug bash [05:53] [niemeyer@gopher ~]% screen -d -m -S byobu.debug bash [05:53] [niemeyer@gopher ~]% screen -ls [05:53] There are screens on: [05:53] 20923.byobu.debug (06/15/2011 01:53:33 AM) (Detached) [05:53] 20792.byobu.debug (06/15/2011 01:53:31 AM) (Detached) [05:53] niemeyer: obviously we can doctor this up a bit [05:54] niemeyer: right, but you'd do that on boot, just once, no? [05:54] kirkland: This is done withing the script which starts the debugging session [05:55] kirkland: and by the user's ssh [05:56] niemeyer: okay, so my first thought, what i've been working on here, is to start the screen debugging session at boot; and then attach to it when/if the user decides to go into the debug_hook mode [05:56] kirkland: This has to be started by the script that starts the debugging session, or the user ssh shell, whatever comes up first [05:56] kirkland: This session is terminated when the user leaves the debugging sessoin [05:57] niemeyer: okay [05:57] niemeyer: so the trigger is when the user starts the debug session [05:57] kirkland: Yeah.. the problem is really how to start two sessions without races [05:57] niemeyer: and if the user ssh's in (outside of the debug hook), do you want them in the debug session or not? [05:57] Erm.. [05:57] a single session without races [05:58] kirkland: A single session with the given name should be created [05:58] kirkland: In tmux, that's "tmux new-session" [05:59] kirkland: It prevents the same session from being started multiple times === almaisan-away is now known as al-maisan [06:05] niemeyer: hmm, perhaps still racy, but what about: [06:05] niemeyer: byobu -r byobu.debug || byobu -S byobu.debug [06:05] niemeyer: so reattach, if possible; if not, create [06:06] kirkland: Yeah the window even has a nice shape in the middle ;-) [06:07] niemeyer: let me dig through the screen source code [06:07] kirkland: Ok.. it's very late here.. I'll really have to step out to bed now [06:08] niemeyer: sure; I am *going* to solve this for you ;-) [06:08] kirkland: but please let me know what you find.. we can switch back if there's an elegant way to do this in screen [06:08] kirkland: Awesome, thanks :-) [06:08] Night! [06:08] niemeyer: night === al-maisan is now known as almaisan-away === almaisan-away is now known as al-maisan === daker_ is now known as daker [14:03] * hazmat catches up on the night discussion [14:10] if anyone has a moment to approve a trivial.. https://pastebin.canonical.com/48502/ [14:10] which fixes bug 797493 [14:10] <_mup_> Bug #797493: unresolved revision %r in upgrade-formula error message < https://launchpad.net/bugs/797493 > [14:11] <_mup_> Bug #797696 was filed: FAQ page needs updating < https://launchpad.net/bugs/797696 > [14:36] * niemeyer waves [14:52] hmm.. compiz update.. let's hope it fixes some of the stability issues. [14:53] niemeyer, indeed [14:53] niemeyer, if you haz a moment to approve a trivial.. https://pastebin.canonical.com/48502/ [14:53] hazmat: Hey man [14:53] Looking [14:54] its a fix for the upgrade reporting output in bug 797493 [14:54] <_mup_> Bug #797493: unresolved revision %r in upgrade-formula error message < https://launchpad.net/bugs/797493 > [14:54] hazmat: +1! [14:54] niemeyer, just looking over the google lang performance.. i hadn't realized how much slower golang was [14:54] hazmat: How much slower than what? [14:54] niemeyer, https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf [14:55] java, c++, scala are the comparisons [14:58] hazmat: Ah, yeah, I've seen that paper [14:58] hazmat: Go is slower than hugely optimized C++, no questions about that :-) [14:59] what was surprising was how well the naive scala did [15:00] hazmat: Also note that there's really no "Go Pro" in the paper [15:01] niemeyer, right their just doing optimizations a go 'pro' developer would do [15:01] hazmat: The person doing the optimization reportedly didn't spend much time on it [15:01] ah [15:01] hazmat: and was surprised when the paper was published [15:01] niemeyer, i thought they solicited robP for feedback on the pro stuff [15:02] hazmat: No, it was Ian Tailor, the guy from gccgo [15:03] Taylor even [15:03] hazmat: http://j.mp/lwuiAv [15:04] will the bootstrap instance be unhappy if: A) I restart zookeeper on a node during install, and B) zookeeper comes back up on that node with a sun-java6-jdk instead of openjdk? [15:04] (trying to install sun java as part of a formula) [15:05] m_3: We haven't exercised much that kind of scenario yet [15:05] I'd rather do a update-alternatives which would probably effect zookeeper [15:05] m_3: Restarting ZooKeeper is supposed to work fine, and it's not hard even [15:05] I'll experiment... [15:05] m_3: We know about a few issues that may complicate it right now [15:06] Specifically, we get a spurious event about the session that we're not handling properly yet [15:06] m_3: The event has to be ignored.. [15:07] hey guys, is the multiple formulas per machine feature landing soonish ? Also is this the same as, machine policy formulas or whatever its called [15:07] niemeyer: is there a way to mute events from that node before I do a zk restart? [15:08] m_3: mute? [15:08] m_3: What kind of event? [15:08] sorry, don't know the txzk infterface... [15:09] m_3: No worries.. just trying to figure what do you really mean [15:09] is there a way to warn the bootstrap instance before bouncing zk on a node [15:09] kim0: We're not working on it right now, so it won't land _soon_, but we don't want to take too long either [15:10] m_3: I still don't get what you mean.. it sounds a bit reversed.. [15:10] ...so it can ignore the bad session events you mentioned [15:10] m_3: zk is _inside_ the bootstrap node [15:12] niemeyer: if I bounce the zk instance running on the new node you said the bootstrap instance gets spurious session events that it doesn't like [15:13] niemeyer: so is there a way for the new node to warn the bootstrap instance about the pending bounce of zk on the new node [15:14] m_3: Right now there's only a single zk instance, and it is inside the bootstrap node [15:14] niemeyer: oh wow... [15:15] niemeyer: I see zk instance running on new node... let me make sure I'm on the right instance [15:16] niemeyer: yeah, running on both [15:18] m_3: That's likely an artifact of installing the package on the second instance [15:18] m_3: Can you please investigate how zookeeper is being started on the second instance? [15:18] m_3: It's certainly not being used [15:20] niemeyer: ok, will do... thanks [15:20] niemeyer, its because its part of the install image [15:21] niemeyer, we should probably just go ahead and install java, but not zookeeper, and let cloud-init install zk [15:21] that will remove the extraneous zk [15:21] on the service machines [15:21] hazmat: You mean it's indeed an artifact of installing the package? [15:21] niemeyer, yes [15:21] hazmat: Ok, hmm [15:22] niemeyer, we don't need it on the service machines, just the python zk extension and libzk [15:22] hazmat: Your suggestion feels good [15:22] hazmat: I was going to suggest we disable starting the service, but indeed there's no reason for the package to even exist there [15:22] niemeyer, has upstart grown a nice way to do that? [15:23] my understanding was you need to do some sort of override file that explicitly depended on a nonexistant event [15:23] hazmat: Not sure.. I recall hearing that it would. Either way, several services check /etc/default/* for info on whether to start or not [15:23] hmm.. true [15:25] niemeyer, hazmat: thanks y'all [15:25] it looks like the other way (via upstart in natty) is echo manual >> /etc/init/zookeeper.override [15:27] niemeyer, i think ben's is blocked on bleeding test failures in one of the service lifecycle integration branches.. [15:27] i had a quick look on monday.. but its going to take some more time to dig into. [15:28] <_mup_> ensemble/trunk r254 committed by kapil.thangavelu@canonical.com [15:28] <_mup_> [trivial] fix formatting for upgrade error [r=niemeyer][f=797493] [15:28] hazmat: Ok.. it'd be good to have more of that conversation happening in the open [15:29] hazmat: So that we can get a feeling of what to do about it.. I'd really like to make our tests rock solid in this milestone [15:29] hazmat: and not rely on any kind of timing [15:30] niemeyer, this isn't a timing issue, the its some sort of bleeding issue.. the tests run fine looped in isolation, but full test runs are busted [15:30] i suspect its the reset_logging/save_logging stuff.. because its overly ambitious in the reset, which cascades to others [15:30] which depend on the default [15:31] hazmat: Have you seen Jim's branch? [15:31] at least that was the case last time around [15:31] niemeyer, yeah.. i've discussed it with him, there are more timing issues there.. but i think the problem is having async cb chained call stacks without an explicit control point [15:31] ie. more of a design issue there [15:32] i've also expressed i'd prefer to see that encapsulated better so that refactoring it to the machine agent is a bit easier [15:32] hazmat: One of the things there is that it kills reset and save_logging entirely [15:32] niemeyer, ah that branch [15:32] i haven't looked at it.. that might certainly help [15:38] <_mup_> ensemble/bootstrap-shutdown-environment r250 committed by kapil.thangavelu@canonical.com [15:38] <_mup_> note the shutdown prompt in the user guide [15:41] <_mup_> ensemble/trunk r255 committed by kapil.thangavelu@canonical.com [15:41] <_mup_> merge bootstrap-shutdown-environment [r=bcsaller,niemeyer][f=756685] [15:41] <_mup_> Ensemble bootstrap and shutdown subcommands now operate on a single [15:41] <_mup_> environment. The shutdown command also requires a user confirmation [15:41] <_mup_> before destroying the environment. [15:47] The instructions to run from ppa https://ensemble.ubuntu.com/docs/getting-started.html#running-from-ppa [15:47] are missing a apt-get update, does this require filing a bug/branch, or is there a simpler way [15:48] kim0, ugh.. mea culpa.. a trivial for that sounds good [15:48] hazmat: what's the workflow for a trivial fix [15:50] kim0, change the files, paste a diff, ask for an +1 on the trivial [15:51] kim0, after receiving such, commit the diff to trunk with a [trivial] tag in the commit msg [15:51] at least that's the workflow i've been following for such [15:52] hazmat: http://paste.ubuntu.com/627384/ [15:52] kim0, looks good, +1 [15:52] ;-) [15:54] hazmat: +1 on the workflow.. sometimes I cowboy extremely obvious things, but I've also found useful comments from others on things I initially found obvious [15:57] merged [16:00] I'd like to contact Iain Farrel from design team, to ask for an Ensemble mascot. Now is probably a good time for one :) any +1/-1s [16:01] kim0, sounds great === al-maisan is now known as almaisan-away [16:34] hazmat, is there still a timing issue in the standardize-log-testing branch? [16:35] jimbaker, checking.. un momento [16:36] hey guys -- any feedback on my bash-completion branch? :-) [16:37] hazmat, it should be fixing a problem with HookContext that's causing this "bleeding" [16:37] i believe the save_logging/reset_logging simply were masking this issue [16:39] kirkland, i like the idea of completion. but i did wonder, what sort of testing is typically done around stuff like this? [16:40] jimbaker: ensemble [16:40] jimbaker: the framework is there for each subcommand to have completion too [16:40] jimbaker: i tried grepping "ensemble status" for that, but it's too slow [16:41] jimbaker: i think i'd need to cache that output [16:41] jimbaker: from a user experience perspective [16:41] kirkland: Sorry, it wasn't in my radar.. we generally use this view for reviews: [16:41] kirkland: https://ensemble.ubuntu.com/kanban/dublin.html [16:41] kirkland, yeah, that makes sense re ensemble status being too slow [16:42] kirkland: But it only gets there if there's a bug linked, in progress, and attached to the milestone [16:42] kirkland: I'll check it out today [16:42] kirkland: I think completion on status wouldn't be ideal indeed [16:43] kirkland: I'd rather not complete than wait [16:44] kirkland, are you saying that grepping ensemble status -h is too slow for completion? [16:44] it shouldn't be doing any work before it has parsed the cli [16:45] niemeyer: right, i just tried it lightly, and it was really bad performance [16:45] my assumption was that kirkland was actually getting names from ensemble status... [16:45] niemeyer: but getting the initial actions is really fast [16:45] niemeyer: and it keeps me from having to go back to ensemble --help all the time to find the right commands [16:46] jimbaker: no, not doing that [16:46] kirkland, ok [16:47] hazmat: no, not -h [16:49] kirkland, we could probably give a an additional option to status to make if faster for completion [16:49] its pulling in almost the whole subgraph atm, but really we just need one node [16:50] i take that back.. the connection setup would still dominate, we do need a local cache for completion [16:51] <_mup_> ensemble/bash-completion r257 committed by bcsaller@gmail.com [16:51] <_mup_> bash_completion support with some argument support [16:52] assuming that is we were completing actual variable/value names [16:53] hazmat: yeah, i was thinking something like that; caching status to disk; backgrounding an update of the cache when it's deemed expired [16:53] hazmat: anyway, it's not urgent, but would make for a damn cool interface :-) [16:55] kirkland, your background process could simply listen to topology changes like any other zk client can [16:55] in terms of watching a given node [16:56] jimbaker: cool; [16:56] probably better to do that way than using ensemble status (except for spiking) [16:57] jimbaker: hazmat: niemeyer: in any case, we now have the framework for the bash-completion piece; if and when we can get ensemble status instantly (or at least comb a cache of ensemble status), I'll extend the bash-completion for subcommands to leverage the status info [16:57] kirkland: Sounds good [16:58] kirkland: Completion helps for sure [16:58] kirkland, we don't have any client side daemon ... its not clear to me what would do the background update, perhaps just invoking the cli again in the background with a cache option.. although having a daemon might be nice with the ssh tunnel reuse [16:58] hazmat: a daemon would be one approach [16:59] hazmat: another would be in the bash-completion command itself [16:59] hazmat: in there, i'd test the age of the cache [16:59] kirkland, indeed.. yeah. we'd need to show stale data in that case afaics [16:59] hazmat: if it's not expired, then i'd use it; and background an update [16:59] or get random waits [16:59] hazmat: if it is expired; i'd probably just return "null" immediately (ie, no complete) and background an update [17:00] hazmat: where an update is something like 'ensemble status > $HOME/.cache/ensemble-status &' [17:00] FYI, I just updated the builder recipes for ensemble to make the bzr revno part of the upstream version. [17:02] hazmat: a local daemon that does the ssh tunnel and listens to zookeeper updates for all status info would be doable, would it not? [17:02] hazmat: we could even leverage dbus and have it spun up when needed. [17:03] Lunch time! [17:05] SpamapS: do you mind trying out bzr+ssh://bazaar.launchpad.net/~kirkland/%2Bjunk/byobu-web/ ? [17:06] wouldn't such a status daemon also be useful for an indicator? [17:06] kirkland: bootstrapping.. :) [17:07] kirkland: yesterday you were saying you felt like you were missing a concept.. did you figure it out? [17:07] SpamapS: sort of [17:08] SpamapS: i think it was around bumping the formula revision number [17:08] SpamapS: and pushing an upgrade [17:08] SpamapS: i spent 4 hours making changes locally [17:08] SpamapS: but not seeing those in my deployments [17:08] (okay, 4 is an exaggeration :-) [17:09] DOH I hate that [17:09] I still am pretty convinced that users will despise the revno too and just wonder why we don't use a hash of the zip file or something. [17:10] SpamapS: i feel like if my --repository=./ then obviously i want it upgraded every time [17:10] SpamapS: agreed; if we have to use a revno, i want it bumped automatically for me [17:10] SpamapS: i don't want to think about tht [17:10] kirkland: I spent like, 30 seconds trying to write a script to do that automatically, but got annoyed with the yaml libraries available. ;) [17:14] SpamapS: how good or bad is it/ [17:15] maybe a --force on upgrade, to bypass the version checking [17:16] hazmat: sure, i'd use that (probably all the time :-) [17:18] looks pretty straightforward to implement [17:20] SpamapS: the only tricky part is that you have to set a password for ubuntu for the formula to be useful [17:20] SpamapS: so i'm keen on finding a way of doing that, before blogging about it :-) [17:24] SpamapS, we could use a md5 checksum for verifying instead of numbers, but we're playing pretty fast an loose with version numbers at that point [17:32] kirkland: right thats where config settings come. [17:33] hazmat: we've talked about this before.. --force is a nice band-aid. Users will *still* hate the revno. ;) [17:33] SpamapS: right, unimplemented at this point, no? [17:33] principle of least surprise: I changed my formula, it should deploy anew. [17:35] At least warn me that you didn't deploy the same content as whats on disk locally. [17:42] kirkland: --force is unimplemented, as is the config settings (not sure which you were asking about) [17:42] SpamapS: config [17:42] SpamapS: i'm looking for the best work around for setting an ubuntu password [17:42] SpamapS: to a configurable value [17:42] SpamapS: or randomly generating it [17:43] SpamapS: and getting that back to the user [17:43] SpamapS: perhaps as a relation? [17:43] kirkland: randomly generate it, and log it with ensemble-log INFO level [17:44] ensemble-log --log-level INFO password=f94k1X [17:44] kirkland: I suggest pwgen for the generation btw. [18:31] kirkland: ajaxterm runs its own HTTP daemon right? [18:31] SpamapS: yeah, on 8022 [18:32] SpamapS: which doesn't need to be opened to the world [18:32] SpamapS: just to itself [18:32] kirkland: wondering if you could do some kind of SSO thing [18:33] SpamapS: hmm [18:33] SpamapS: openid-ish you mean? [18:33] SpamapS: that would be so sexy .... [18:34] Wordpress has an openid provider plugin.. >:) [18:46] kirkland: I was going to suggest Launchpad.. but how do you know which groups to accept? ;) [18:47] anyone who has signed the CoC is good cookie :) [18:48] SpamapS: i figured you'd just add your LP id as part of the config [18:48] SpamapS: which could be a group, maybe [18:49] Daviey: hm that reminds me I should add that as a requirement for contributing to principia. [18:59] oh aye [19:03] I'm collecting a list of weekly happenings in the Ensemble space, preparing for a blog post [19:03] so far, I've collcted these http://paste.ubuntu.com/627516/ [19:04] feel free to add any comments on any points, and add new points (perhaps recent development) that I'm not aware of [19:06] kim0: In addition to point 1, principia-tools has a script, 'promulgate', that assigns a branch as the official branch for a formula. [19:07] SpamapS: so a branch like lp:~kim0/+junk/drupal could now be marked as official branch for lp:principia/drupal right ? [19:08] cool [19:10] niemeyer: hazmat if anyone has any development related points I should add .. let me know .. thanks [19:10] kim0: The debug-hooks fixes have landed [19:11] got it [19:11] kim0: Btw, "source package branches" is an internal implementation detail rather than something that would make sense to advertise as such [19:11] kim0: I.e. principia has formulas, not source packages [19:12] yeah, this part I found confusing to understand [19:12] so I'll just say that formulas can now be referenced like lp:principia/mediawiki [19:12] kim0: It's an internal Launchpad detail.. we're reusing existing infrastructure because it's similar to what we need [19:13] kim0: The key point there is that principia is moving forward, and we not have means for tagging officially recommended branches [19:13] kim0: s/and we not/and we now/ [19:13] awesome, I'll note that as well [19:13] daker: o/ [19:14] kim0: sorry i need to leave the office :/ [19:14] daker: oh still at the office .. okie ..catch you at home :) [19:14] :) [19:18] kim0: hopefully nobody will link +junk branches though. :) [19:18] haha :D [19:19] yeah bad example [19:22] +1 :-) [19:24] hi all [19:24] hello kim0 niemeyer [19:24] Hey koolhead17 [19:24] koolhead17: hey hey [19:24] Daviey: hazmat and all :) [19:25] koolhead17: how's the ec2 playing going [19:25] kim0: having fun time :) [19:25] thanks 2 you :) [19:25] awesome [19:25] i make sure to run ensemble shutdown :D [19:25] hehe :) [19:25] niemeyer: kim0 i have a question [19:26] shoot [19:26] the package which is not available via apt-get [19:26] can i write formula for that? [19:27] SpamapS: would kick you though :) [19:27] koolhead17, yes.. you can download and install from anywhere you want in the 'install' hook, however [19:27] I think the discussion for that is ongoing [19:27] * koolhead17 looks at SpamapS :) [19:27] hazmat: yeah that`s what i wanted the permission for :P [19:27] such formulas probably won't be accepted for an official release of principia.. but they can be installed easily from the command line with a different namespace prefix [19:27] my understanding is, ofc you can, but it won't be a blessed formula [19:28] kim0: blessed formula :D [19:28] ie ensemble deploy koolhead17:wordpress [19:28] hazmat: yes i saw and checked that via EC2 [19:28] bcsaller, hazmat - were you able to see if standardize-log-testing branch was helpful for looping problems? [19:29] jimbaker: I haven't merged it, you found an issue with the hook context? [19:29] bcsaller, yes, it was using processExited instead of processEnded [19:30] i think the save_logging etc stuff was masking this [19:32] bcsaller, so it may be helpful for your work, based on what hazmat was saying earlier today [19:32] I'll take a look, thanks [19:39] kim0: That's right.. it's fine to do it, it just won't be part of the core formulas [19:41] although if the only concern is getting security updates, I'm not sure why we can't just request the formula author to add a suitable update mechanism [19:42] like for drupal/drush "drush upc" would update drupal-core and all modules .. many modules are not even packaged [19:43] hazmat: should we keep pushing txaws trunk into the ensemble PPA, or backport the oneiric version? [19:44] SpamapS, hmmm.. i think we're okay with trunk for the foreseeable future ... if we do make a fix to txaws, we want the ppa to capture that [19:44] and most of what's happened there is just bug fixing [19:44] hazmat: at some point we need to make a stable PPA [19:45] hazmat: once we get past beta1 of oneiric maybe.. [19:45] SpamapS, definitely [19:45] hazmat: So that people can get teh 11.10 version of ensemble on natty/maverick/lucid [19:50] kim0: In that case, it won't be an official formula.. we can't enforce how the user will handle security updates [19:50] kim0: We can only offer the mechanisms [19:51] but we're already enforcing, we're saying if you dont use apt-get you wont be accepted in official [19:51] kim0: practically, drush upc is meant to do the same thing. But we don't want to take responsibility for that. [19:52] the formula author takes responsibility [19:52] Hence it not being "official" [19:52] We should only verify that the update mechannism works [19:52] Official means "we take responsibility for it working a certain way" [19:53] We don't know their security update process, we don't know how long they'll support a version.. also what if they break compatiblity with other software in a version that also fixes security? We don't do that. [19:53] kim0: It will be available, but like the thread was saying, it won't be quite as automatic to get it. [19:54] would users be able to query non official repos for all drupal formulas ? [19:55] perhaps we should allow user-rating and commenting, a la android market [19:56] if user formulas (non official) are not searchable/discoverable .. that pretty much kills them though [20:03] No they'll show up in searches.. with a namespace that identifies them clearly as "not official" [20:04] I like the idea of "contrib" .. "These are useful formulas but not part of Ubuntu" [20:05] kim0: I actually think these formulas are the killer app of ensemble.. and making the distinction isn't going to kill them or harm them in any way. It just signals to users what risk is involved. [20:11] kim0: We're not enforcing, in the same way we don't enforce what people put in PPAs [20:11] True, we're still speculating on what we want 'official' to mean. [20:11] kim0: There's a significant difference between "you can't create a package" and "your package is not part of main" [20:12] kim0: Most people don't care that their packages are not part of main [20:12] SpamapS: cool, as long as they show up in searches .. that's lovely :) [20:12] yeah [20:50] back [20:50] niemeyer: license question [20:50] daker: Sure [20:51] my formula is based on the wp one, what should i do ? [20:53] daker: merge the latest copyright file from the wordpress formula, and then add your own copyright to it where appropriate. [20:54] daker: http://bazaar.launchpad.net/~ensemble-composers/principia/oneiric/wordpress/trunk/view/head:/copyright [20:55] SpamapS: can you give an example on how my copyright should be ? [20:55] daker: on the next line after Copyright: Copyright 2011, Canonical Ltd., All Rights Reserved. [20:55] actually [20:55] no, add a Files: section.. [20:55] Files: hooks/db-relation-changed [20:56] Copyright: 2011, Canonical Ltd., All Rights Reserved [20:56] 2011, YOUR NAME [20:56] License: GPL-3 [20:56] That should do it [20:56] ok [20:57] SpamapS: thanks [20:57] daker: if you totally rewrote hooks/install , you can list it there too [21:05] SpamapS: is it good http://paste.ubuntu.com/627597/ ? [21:07] daker: you do not need to create a Files section for anything you did not change. Just let the 'File: *' handle that [21:08] daker: each Files: section needs a License: portion, but does not have to repeat the text. [21:09] headache :/ [21:19] SpamapS: good http://paste.ubuntu.com/627606/ ? [21:21] daker: as I said, you don't have to repeat the text, just the License: GPL-3 part [21:22] daker: the format specification is the first link in that file, it might be helpful [21:24] daker: http://paste.ubuntu.com/627613/ [21:24] daker: much simpler, see? [21:24] ah ok [21:24] err, I repeated hooks/install oops ;) [21:27] SpamapS: one last time http://paste.ubuntu.com/627614/ [21:29] daker: you are missing the original Files: * section [21:29] daker: which you shouldn't be altering [21:31] SpamapS: it will be copyrighted to ? canonical ? [21:31] or me ? [21:33] daker: You have copyrights on anything you changed by more than a few lines. [21:33] daker: so metadata.yaml you also probably deserve copyright on. [21:34] daker: honestly you can just dump the wordpress copyright file in there, without your copyrights.. I'm more concerned with the license than the copyrights. [21:35] SpamapS: just one more time pls http://paste.ubuntu.com/627620/ [21:39] hazmat, i don't think this got through: i've been experimenting with client.connected for watch_expose_flag. this is of course the common pattern for watches [21:41] hazmat, i was trying to determine why my provisioning agent tests would fail after approximately 200 iterations or so. i was under the impression that a single poke i was doing at teardown ensured watches would always run [21:42] jimbaker, a poke is just a roundtrip communication, the watch would have to have already fired for a poke to be sync point [21:43] hazmat, right. so i think there's a very small chance that a new watch is getting setup in the background by another watch as tests terminate [21:44] hazmat, having the watch cb depend on some app state definitely is working, as you suggested [21:45] hazmat, but maybe i can try one more tack here - have the test on app state before each watch setup too [21:47] <_mup_> ensemble/expose-provision-service-hierarchy r294 committed by jim.baker@canonical.com [21:47] <_mup_> Removed unused code, comments [21:57] hazmat, no, that doesn't work [21:58] * niemeyer breaks [21:59] hazmat, maybe what's going on here is the following: test teardown occurs; as part of that, the zk tree is deleted; but this triggers a watch on exposed flag (because it has been exposed, and in a separate node than the topology) [21:59] jimbaker, the tests are supposed to close the client, and open a new client to tear down the tree [21:59] then the watch runs, but the client is already disconnected [22:00] closing the first client, shutsdown extant watches [22:00] hazmat, ok, that theory doesn't work then :) [22:00] jimbaker, you might want to verify your tests are inheriting from the state test base which has this behavior [22:01] hazmat, yes it is: class AgentTestBase(StateTestBase) ... [22:02] hazmat, so i wonder if this argues for reinstating the test on client.connected in the watch... putting it there, i looped > 1000 times, at which point i control-c [22:04] i'm controlling the callback on the agent (a new boolean agent._running), but the watch itself doesn't have access before it does exists_and_watch [22:04] jimbaker, that [22:04] er.. that's fine by me [22:05] hazmat, yes, i know. i think i have spent easily a number of days looking at this question raised by niemeyer on two lines of code [22:06] so that's all good, i think we have a good answer for why it's necessary, and the best pattern to write code [22:07] hazmat, 1) have the watch be guarded by client.connected upon entry, as is our common practice; 2) have the callback be guarded on something at the app level [22:09] hazmat, anyway, i'm going to push up that change to expose-watch-exposed-flag [22:12] <_mup_> ensemble/expose-watch-exposed-flag r249 committed by jim.baker@canonical.com [22:12] <_mup_> Guard entry into the watch with client.connected for watch_exposed_flag (again) [22:13] SpamapS, kirkland i took a look at the force upgrade.. it looked pretty easy initially but it ends up violating some assumptions we have that a formula id (namespace:name-revision) is unique in the deployment [22:14] jimbaker, the standardize-log-testing didn't resolve the issues on bcsaller's branch.. but it looks good to me [22:15] hazmat, cool about my branch, just too bad it wasn't as powerful as i had hoped :) [22:15] <_mup_> ensemble/expose-provision-service-hierarchy r295 committed by jim.baker@canonical.com [22:15] <_mup_> Merged upstream expose-watch-exposed-flag [22:17] hazmat, feel free to grab a review of standardize-log-testing if that works for you - want to get it into trunk and need that 2nd review [22:27] jimbaker, sounds good [22:27] hazmat: so maybe it would be even easier to just use the hash? ;-) [22:28] SpamapS, indeed, it might at that [22:35] hazmat: anyway, thanks for looking into it [22:36] SpamapS: can you give me your opinion http://paste.ubuntu.com/627620/ pls ? [22:36] daker: re your last one.. read it logically (not just based on what I've asked you to do). You have removed Canonical's copyrights and added your own. Thats not appropriate. [22:37] daker: the point of the file is to document what the license and copyright status of each file is. The 'Files: *' means *all files not otherwise specified* [22:38] i am really confused :/ [22:38] You should ask a question then, I am happy to answer. [22:41] you said that i have rights on anything i have changed, and i didn't remove Canonical's copyrights [22:42] Files: * [22:42] Copyright: 2011, Adnane Belmadiaf [22:42] License: GPL-3 [22:42] No mention of Canonical there [22:42] but canonical retains all of its copyrights. [22:42] Unless you completely replaced most of the file. [22:43] At which point you would have an explicit entry that just lists you. [22:46] SpamapS: so the Files: * section is copyrighted to canonical ? [22:48] <_mup_> ensemble/expose-provision-service-hierarchy r296 committed by jim.baker@canonical.com [22:48] <_mup_> Doc string [22:50] daker: yes, then you add a "Files" section for each file that has something other than that for its Copyright/License. [23:26] jimbaker, one comment on the log stuff merge, the sleep looks a little out of place, else its pretty nice (and mp approved) [23:32] Can i confirm that there is no intetion to get ensemble in main for release? [23:37] Daviey: not for 11.10, but I do intend to MIR some of its dependencies. [23:39] <_mup_> ensemble/standardize-log-testing r259 committed by jim.baker@canonical.com [23:39] <_mup_> Removed spurious sleep (shouldn't have been part of push) [23:39] SpamapS: Do you have a list of those? [23:40] What is the reasoning for MIR'ing them, if ensemble will remain in universe for this release? [23:42] Daviey: to spread out the load on the MIR team and give us time to get ensemble ready. [23:42] Daviey: essentially, we know we want ensemble in main for 12.04 .. but we also know it probably won't be ready. [23:43] <_mup_> ensemble/standardize-log-testing r260 committed by jim.baker@canonical.com [23:43] <_mup_> Merged trunk [23:47] SpamapS: Agreed. 'Spreading the burden' doesn't make much sense IMO. We already have to raise enough MIR's for our other commitments, which hasn't been compariable since karmic. [23:47] hazmat, i fixed up that sleep per the commit message, sorry about that! [23:48] i generally try to mark such debug statements with an XXX so they don't sneak in... but forgot this time [23:51] Daviey: Hrm, I figure raise it now because we know we'll need it then. [23:51] jimbaker, sounds good [23:57] seeing trunk fail again: http://paste.ubuntu.com/627672/ (just running ./test ensemble.control) [23:58] jimbaker: Are you sure that's up to date? [23:58] jimbaker: Ah [23:59] jimbaker: find -name '*.pyc' -exec rm {} \;