/srv/irclogs.ubuntu.com/2011/06/15/#ubuntu-ensemble.txt

kirklandSpamapS: plus metadata00:00
SpamapSdoes facter know the ec2 public hostname? thats the tough one to get right now00:00
kirklandSpamapS: it's really easy00:00
kirklandSpamapS: wget -q -O- http://169.254.169.254/latest/meta-data/public-hostname00:00
kirklandSpamapS: if that fails, then use hostname -s00:00
niemeyerSpamapS: Heh00:00
niemeyerSpamapS: https happens to be a superset of http00:01
kirklandSpamapS: http://paste.ubuntu.com/626933/00:04
kirklandniemeyer: hmm, i'm not sure about that ... try https://ec2-50-17-174-12.compute-1.amazonaws.com:8000:04
kirklandniemeyer: ie, point https to a port that talks http00:05
SpamapSniemeyer: yes, I can see where you could also just add 'ssl=1' to the http interface.. 00:05
kirklandniemeyer: and the browser is unhappy00:05
niemeyerkirkland: Ok, my apologies for the imprecise wording...00:05
niemeyerHTTPS is merely an encryption wrapping on top of HTTP itself00:05
kirklandniemeyer: 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:05
kirklandniemeyer: okay, cool00:06
SpamapSkirkland: sure, I'd like to abstract that into a tool that is like facter, but not as clunky as facter. :)00:06
niemeyerBut either way, website is a much better term00:06
kirklandSpamapS: +1 from me00:06
SpamapSkirkland: I was reading facter, and one thing it gets really, really wrong, is that it only runs one process at a time.00:06
kirklandSpamapS: i posted something like this to ubuntu-devel@, if you can to comment there00:06
niemeyerand "http" would lead to all kinds of confusion regarding protocol vs. relation..00:06
niemeyerSo I stand corrected.00:06
SpamapSkirkland: it runs 100+ external processes, but waits on each one before moving to the next.00:06
kirklandSpamapS: i got *reamed* in #ubuntu-devel today, though00:06
SpamapSkirkland: eh?00:06
kirklandniemeyer: okay, i've changed it to website00:06
SpamapSkirkland: I saw your post to the ml ..00:07
kirklandSpamapS: see today's log, between me, keybuk, cjwatson, and friends00:07
kirklandSpamapS: they have a few good points00:07
kirklandSpamapS: but still, i think we could use something, if it's named and documented appropriately00:07
kirklandbzr: ERROR: Invalid url supplied to transport: "lp:~kirkland/principia/oneiric/byobu-web/trunk": No such source package byobu-web.00:13
kirklandSpamapS: did you warn me about this yesterday? 00:13
SpamapSkirkland: no, but its a known problem00:14
SpamapSkirkland: and being worked on00:14
kirklandSpamapS: okay... what's the solution?00:14
SpamapSkirkland: for now you have to use +junk, or upload a package naemd 'byobu-web' to a PPA somewhere00:14
kirklandSpamapS: hah, seriously?00:14
kirkland:-)00:14
SpamapSkirkland: re the conversation w/ Keybuk .. his point about DNS is *quite* good.00:14
SpamapSwe could just simply stop passing around IP00:14
SpamapSThe good thing about using DNS is it can be contextualized for the requester...00:15
kirklandSpamapS: mokay00:15
SpamapSIt was glossed over, but I see the point00:15
niemeyerDinner time!00:51
_mup_ensemble/expose-watch-exposed-flag r245 committed by jim.baker@canonical.com00:53
_mup_Fixed tests with respect to watch_exposed_flag using its callback on its first value, instead of yielding it00:53
_mup_ensemble/expose-watch-exposed-flag r246 committed by jim.baker@canonical.com00:54
_mup_PEP800:54
_mup_ensemble/expose-watch-exposed-flag r248 committed by jim.baker@canonical.com01:00
_mup_Better comments01:00
_mup_ensemble/expose-provision-service-hierarchy r293 committed by jim.baker@canonical.com01:01
_mup_Merged upstream expose-watch-exposed-flag01:01
kirklandSpamapS: hmm, so my relation-set items are not showing up in 'ensemble status'01:07
kirklandNo ENSEMBLE_AGENT_SOCKET/-s option found01:08
SpamapSrelation-set shouldn't show in status unless a new change was made01:11
SpamapSthat error though, means that the environment is screwed up somehow01:11
SpamapSkirkland: is your formula in a branch I can look at?01:11
kirklandSpamapS: lp:~kirkland/+junk/byobu-web01:12
kirklandSpamapS: thanks for your review and all your help01:13
SpamapSkirkland: no problem.. its fun. :)01:15
kirklandSpamapS: ;-)01:16
SpamapSkirkland: are you running that via debug-hooks ?01:17
kirklandSpamapS: um, no01:17
SpamapSkirkland: where are you seeing the error about ENSEMBLE_AGENT_SOCKET?01:21
kirklandSpamapS: oh, i just tried to run the relation-set by hand01:27
SpamapSkirkland: right, that won't ever work. :)01:27
kirklandSpamapS: heh01:27
SpamapSkirkland: I mean, you can make it work but you need to be on the machine, the socket is for talking to the local unit agent01:28
SpamapSkirkland: thats why debug-hooks is so pimp01:28
kirklandSpamapS: then that should probably be moved to /usr/lib/ensemble01:28
SpamapSkirkland: tried it yet?01:28
kirklandSpamapS: if it's not meant be run by hand01:28
SpamapSkirkland: not really, you can run it in a cron job.. :)01:29
kirklandSpamapS: no, how do i do that?01:29
SpamapSensemble debug-hooks service/001:29
SpamapSyou MIGHT recognize the interface.. ;)01:29
SpamapSdo that, then relate something to it01:29
kirklandSpamapS: nice ;-)01:31
kirklandSpamapS: hmm, okay, i'm missing something, conceptually here01:34
SpamapSkirkland: about to wrap up and go join the cloudcamp pre-camp cocktail party. :)01:34
SpamapSkirkland: whats up?01:35
kirklandSpamapS: meh, it can wait01:38
kirklandSpamapS: perhaps you can help me more tomorrow01:38
SpamapSkirkland: I've got 5 more minutes01:40
SpamapSalright.. I'm out.. good luck. :)01:47
kirklandjust wondering if anyone's around for some more formula help03:35
kirklandokay, i've been beating my head against the wall for a while now and I'm just now realizing03:38
kirklandthat I'm changing the formula in my local repository03:38
kirklandand then i'm trying to deploy it03:39
kirklandbut the modified formula isn't getting deployed03:39
_mup_Bug #797493 was filed: unresolved revision %r in upgrade-formula error message <Ensemble:New> < https://launchpad.net/bugs/797493 >03:41
kirklandi'm getting a lot of these:04:07
kirkland2011-06-15 02:50:48,534: hook.output@ERROR: debconf: unable to initialize frontend: Readline04:07
kirklandniemeyer: i'm disappointed to see byobu pruned from head :-(05:08
kirklandniemeyer: for tmux05:08
kirklandniemeyer: i see an obscure note about "race" conditions, but no other explanation05:08
niemeyerkirkland: We didn't intend to exclude byobu specifically, of course05:17
niemeyerkirkland: We replaced screen05:17
niemeyerkirkland: I did, actually05:17
kirklandniemeyer: right, bzr-blame told me :-)05:18
niemeyerkirkland: Because tmux behaves in a better way when facing concurrent executions05:18
niemeyerkirkland: If we fix that, we can bring screen back05:18
kirklandniemeyer: so I'd love to help you fix that so that ensemble can use screen/byobu for this05:18
kirklandniemeyer: by all means, I'm at your disposal05:18
niemeyerkirkland: Sounds good.. I have no special attachment to either in this case05:18
kirklandniemeyer: right-o;  I sorta do :-)05:18
niemeyerkirkland: Used screen for a long time.. have been experimenting with tmux lately.. can use either without worries05:19
niemeyerkirkland: Yeah, I know ;)05:19
kirklandniemeyer: it doesn't have to be now, but can you explain to me your concurrency problems?05:19
niemeyerkirkland: Will be happy to put your stuff to crank :)05:19
niemeyerkirkland: We just need to sort the race05:19
niemeyerkirkland: It's pretty simple to explain, actually05:19
kirklandniemeyer: and i'll gladly write a custom configuration file for ensemble-debug-hooks-byobu05:19
niemeyerkirkland: Given a session name, screen offers no way that I could perceive to avoid the same user from potentially getting two different sessions started05:20
kirklandniemeyer: 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 debug05:20
kirklandniemeyer: do you want 1 session, or 2?05:20
niemeyerkirkland: The first05:20
kirklandniemeyer: okay, so you want 1 session, call it "ensemble-debug" or something, right?05:21
niemeyerkirkland: For both05:21
kirklandniemeyer: okay, and you also want to attach to that one and only one session?05:21
niemeyerkirkland: Yes, just a non-racy way to create a named session05:22
niemeyerkirkland: 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 sessions05:22
niemeyerkirkland: We can't _join_ the session, though..05:23
niemeyerkirkland: Simply new-session + exec command in new session, without races05:23
kirklandniemeyer: to reproduce the problem you're experience in screen ...05:24
kirklandniemeyer: i'm going to create a screen session with "screen -S debug"05:24
kirklandniemeyer: okay, now I have a session05:25
kirklandniemeyer: called 'debug'05:25
kirklandniemeyer: and now I want to run a command in that sesion05:25
niemeyerOk05:25
niemeyerkirkland: You want to create it if it doesn't exist, and run it in the single session05:25
kirklandniemeyer: okay, using the "at" command05:26
kirklandniemeyer: i mean, screen's at05:26
niemeyerkirkland: Executing the command isn't the problem.. the problem is creating the session in a non-racy way05:28
kirklandniemeyer: byobu -xRS %s-hook-debug -t shell05:33
kirklandniemeyer: that's what you were using before, right?05:33
kirklandniemeyer: and that's what you found to be racy?05:33
niemeyerkirkland: No, that'd join the session05:34
kirklandniemeyer: what were you using to create it?05:34
kirklandniemeyer: i'm trying to reproduce the race05:35
niemeyerkirkland: This is being run from a script.. it can't join the session05:35
kirklandniemeyer: right, so you create the session detached05:35
niemeyerkirkland: You don't have to reproduce the race.. any solution will do :-)05:35
kirklandniemeyer: some people create their byobu session in a cronjob at boot05:35
kirklandniemeyer: so that they can launch irssi and use byobu+irssi as their irc proxy05:36
niemeyerkirkland: Yeah, that should be fine.. the machine won't boot twice at the same time.05:36
kirklandniemeyer: if it does, I want to see it!05:36
niemeyer+1! :-)05:36
kirklandniemeyer: let me find my emails where I've helped someone do this05:36
kirklandniemeyer: it's a permutation of this:05:37
kirkland       -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:37
kirklandniemeyer: one more question... you want this session owned by root, or ubuntu?05:38
kirklandniemeyer: i've noticed both your tmux and byobu solutions use sudo to get to a shell05:38
niemeyerkirkland: Yeah05:38
kirklandniemeyer: i found a minor bug with the way that was being called05:38
kirklandniemeyer: which I'll fix as I work on this05:38
niemeyerkirkland: What was it?05:38
kirklandniemeyer: but I'm curious about the motivation and  design05:38
niemeyerkirkland: It's just a script on the server feeding a screen/tmux session05:40
kirklandniemeyer: right05:40
kirklandniemeyer: but putting the user in a root shell05:40
kirklandniemeyer: rather than an ubuntu shell05:41
niemeyerkirkland: 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 session05:41
kirklandniemeyer: is that by design?05:41
kirklandniemeyer: sorry, this is aside from the race :-)05:41
niemeyerkirkland: There are details, but that's the core idea05:41
niemeyerkirkland: It's root because the formula runs as root for good reasons05:41
niemeyerkirkland: So to emulate the same environment, we run the hook as root too05:41
kirklandniemeyer: okay05:41
kirklandniemeyer: fair enough;  that's the explanation i was looking for05:42
niemeyerkirkland: Cool.. we should document that there too05:42
kirklandniemeyer: so basically, we just need this in /etc/rc.local or an upstart boot script:05:52
kirklandbyobu -d -m -S byobu.debug bash05:53
kirklandniemeyer: which will start a screen+byobu session, in detached mode at boot;  name it "byobu.debug", and run a single window called bash05:53
niemeyer[niemeyer@gopher ~]% screen -d -m -S byobu.debug bash05:53
niemeyer[niemeyer@gopher ~]% screen -d -m -S byobu.debug bash05:53
niemeyer[niemeyer@gopher ~]% screen -ls05:53
niemeyerThere are screens on:05:53
niemeyer        20923.byobu.debug       (06/15/2011 01:53:33 AM)        (Detached)05:53
niemeyer        20792.byobu.debug       (06/15/2011 01:53:31 AM)        (Detached)05:53
kirklandniemeyer: obviously we can doctor this up a bit05:53
kirklandniemeyer: right, but you'd do that on boot, just once, no?05:54
niemeyerkirkland: This is done withing the script which starts the debugging session05:54
niemeyerkirkland: and by the user's ssh05:55
kirklandniemeyer: 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 mode05:56
niemeyerkirkland: This has to be started by the script that starts the debugging session, or the user ssh shell, whatever comes up first05:56
niemeyerkirkland: This session is terminated when the user leaves the debugging sessoin05:56
kirklandniemeyer: okay05:57
kirklandniemeyer: so the trigger is when the user starts the debug session05:57
niemeyerkirkland: Yeah.. the problem is really how to start two sessions without races05:57
kirklandniemeyer: and if the user ssh's in (outside of the debug hook), do you want them in the debug session or not?05:57
niemeyerErm..05:57
niemeyera single session without races05:57
niemeyerkirkland: A single session with the given name should be created05:58
niemeyerkirkland: In tmux, that's "tmux new-session"05:58
niemeyerkirkland: It prevents the same session from being started multiple times05:59
=== almaisan-away is now known as al-maisan
kirklandniemeyer: hmm, perhaps still racy, but what about:06:05
kirklandniemeyer: byobu -r byobu.debug || byobu -S byobu.debug06:05
kirklandniemeyer: so reattach, if possible; if not, create06:05
niemeyerkirkland: Yeah the window even has a nice shape in the middle ;-)06:06
kirklandniemeyer: let me dig through the screen source code06:07
niemeyerkirkland: Ok.. it's very late here.. I'll really have to step out to bed now06:07
kirklandniemeyer: sure;  I am *going* to solve this for you ;-)06:08
niemeyerkirkland: but please let me know what you find.. we can switch back if there's an elegant way to do this in screen06:08
niemeyerkirkland: Awesome, thanks :-)06:08
niemeyerNight!06:08
kirklandniemeyer: night06:08
=== al-maisan is now known as almaisan-away
=== almaisan-away is now known as al-maisan
=== daker_ is now known as daker
* hazmat catches up on the night discussion14:03
hazmatif anyone has a moment to approve a trivial.. https://pastebin.canonical.com/48502/14:10
hazmatwhich fixes bug 79749314:10
_mup_Bug #797493: unresolved revision %r in upgrade-formula error message <Ensemble:New> < https://launchpad.net/bugs/797493 >14:10
_mup_Bug #797696 was filed: FAQ page needs updating <Ensemble:New for kim0> < https://launchpad.net/bugs/797696 >14:11
* niemeyer waves14:36
niemeyerhmm.. compiz update.. let's hope it fixes some of the stability issues.14:52
hazmatniemeyer, indeed14:53
hazmatniemeyer, if you haz a moment to approve a trivial.. https://pastebin.canonical.com/48502/14:53
niemeyerhazmat: Hey man14:53
niemeyerLooking14:53
hazmatits a fix for the upgrade reporting output in bug 79749314:54
_mup_Bug #797493: unresolved revision %r in upgrade-formula error message <Ensemble:New> < https://launchpad.net/bugs/797493 >14:54
niemeyerhazmat: +1!14:54
hazmatniemeyer, just looking over the google lang performance.. i hadn't realized how much slower golang was14:54
niemeyerhazmat: How much slower than what?14:54
hazmatniemeyer, https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf14:54
hazmatjava, c++, scala are the comparisons14:55
niemeyerhazmat: Ah, yeah, I've seen that paper14:58
niemeyerhazmat: Go is slower than hugely optimized C++, no questions about that :-)14:58
hazmatwhat was surprising was how well the naive scala did14:59
niemeyerhazmat: Also note that there's really no "Go Pro" in the paper15:00
hazmatniemeyer, right their just doing optimizations a go 'pro' developer would do15:01
niemeyerhazmat: The person doing the optimization reportedly didn't spend much time on it15:01
hazmatah15:01
niemeyerhazmat: and was surprised when the paper was published15:01
hazmatniemeyer, i thought they solicited robP for feedback on the pro stuff15:01
niemeyerhazmat: No, it was Ian Tailor, the guy from gccgo15:02
niemeyerTaylor even15:03
niemeyerhazmat: http://j.mp/lwuiAv 15:03
m_3will 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
m_3(trying to install sun java as part of a formula)15:04
niemeyerm_3: We haven't exercised much that kind of scenario yet15:05
m_3I'd rather do a update-alternatives which would probably effect zookeeper15:05
niemeyerm_3: Restarting ZooKeeper is supposed to work fine, and it's not hard even15:05
m_3I'll experiment...15:05
niemeyerm_3: We know about a few issues that may complicate it right now15:05
niemeyerSpecifically, we get a spurious event about the session that we're not handling properly yet15:06
niemeyerm_3: The event has to be ignored..15:06
kim0hey guys, is the multiple formulas per machine feature landing soonish ? Also is this the same as, machine policy formulas or whatever its called15:07
m_3niemeyer: is there a way to mute events from that node before I do a zk restart?15:07
niemeyerm_3: mute?15:08
niemeyerm_3: What kind of event?15:08
m_3sorry, don't know the txzk infterface...15:08
niemeyerm_3: No worries.. just trying to figure what do you really mean15:09
m_3is there a way to warn the bootstrap instance before bouncing zk on a node15:09
niemeyerkim0: We're not working on it right now, so it won't land _soon_, but we don't want to take too long either15:09
niemeyerm_3: I still don't get what you mean.. it sounds a bit reversed..15:10
m_3...so it can ignore the bad session events you mentioned15:10
niemeyerm_3: zk is _inside_ the bootstrap node15:10
m_3niemeyer: if I bounce the zk instance running on the new node you said the bootstrap instance gets spurious session events that it doesn't like15:12
m_3niemeyer: so is there a way for the new node to warn the bootstrap instance about the pending bounce of zk on the new node15:13
niemeyerm_3: Right now there's only a single zk instance, and it is inside the bootstrap node15:14
m_3niemeyer: oh wow... 15:14
m_3niemeyer: I see zk instance running on new node... let me make sure I'm on the right instance15:15
m_3niemeyer: yeah, running on both15:16
niemeyerm_3: That's likely an artifact of installing the package on the second instance15:18
niemeyerm_3: Can you please investigate how zookeeper is being started on the second instance?15:18
niemeyerm_3: It's certainly not being used15:18
m_3niemeyer: ok, will do... thanks15:20
hazmatniemeyer, its because its part of the install image15:20
hazmatniemeyer, we should probably just go ahead and install java, but not zookeeper, and let cloud-init install zk15:21
hazmatthat will remove the extraneous zk15:21
hazmaton the service machines15:21
niemeyerhazmat: You mean it's indeed an artifact of installing the package?15:21
hazmatniemeyer, yes15:21
niemeyerhazmat: Ok, hmm15:21
hazmatniemeyer, we don't need it on the service machines, just the python zk extension and libzk15:22
niemeyerhazmat: Your suggestion feels good15:22
niemeyerhazmat: I was going to suggest we disable starting the service, but indeed there's no reason for the package to even exist there15:22
hazmatniemeyer, has upstart grown a nice way to do that?15:22
hazmatmy understanding was you need to do some sort of override file that explicitly depended on a nonexistant event15:23
niemeyerhazmat: 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
hazmathmm.. true15:23
m_3niemeyer, hazmat:  thanks y'all15:25
hazmatit looks like the other way (via upstart in natty) is echo manual >> /etc/init/zookeeper.override15:25
hazmatniemeyer, i think ben's is blocked on bleeding test failures in one of the service lifecycle integration branches.. 15:27
hazmati had a quick look on monday.. but its going to take some more time to dig into.15:27
_mup_ensemble/trunk r254 committed by kapil.thangavelu@canonical.com15:28
_mup_[trivial] fix formatting for upgrade error [r=niemeyer][f=797493]15:28
niemeyerhazmat: Ok.. it'd be good to have more of that conversation happening in the open15:28
niemeyerhazmat: 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 milestone15:29
niemeyerhazmat: and not rely on any kind of timing15:29
hazmatniemeyer, 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 busted15:30
hazmati suspect its the reset_logging/save_logging stuff.. because its overly ambitious in the reset, which cascades to others15:30
hazmatwhich depend on the default15:30
niemeyerhazmat: Have you seen Jim's branch?15:31
hazmatat least that was the case last time around15:31
hazmatniemeyer, 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 point15:31
hazmatie. more of a design issue there15:31
hazmati've also expressed i'd prefer to see that encapsulated better so that refactoring it to the machine agent is a bit easier15:32
niemeyerhazmat: One of the things there is that it kills reset and save_logging entirely15:32
hazmatniemeyer, ah that branch15:32
hazmati haven't looked at it.. that might certainly help15:32
_mup_ensemble/bootstrap-shutdown-environment r250 committed by kapil.thangavelu@canonical.com15:38
_mup_note the shutdown prompt in the user guide15:38
_mup_ensemble/trunk r255 committed by kapil.thangavelu@canonical.com15:41
_mup_merge bootstrap-shutdown-environment [r=bcsaller,niemeyer][f=756685]15:41
_mup_Ensemble bootstrap and shutdown subcommands now operate on a single15:41
_mup_environment. The shutdown command also requires a user confirmation15:41
_mup_before destroying the environment.15:41
kim0The instructions to run from ppa https://ensemble.ubuntu.com/docs/getting-started.html#running-from-ppa15:47
kim0are missing a apt-get update, does this require filing a bug/branch, or is there a simpler way15:47
hazmatkim0, ugh.. mea culpa.. a trivial for that sounds good15:48
kim0hazmat: what's the workflow for a trivial fix15:48
hazmatkim0, change the files, paste a diff, ask for an +1 on the trivial15:50
hazmatkim0, after receiving such, commit the diff to trunk with a [trivial] tag in the commit msg15:51
hazmatat least that's the workflow i've been following for such15:51
kim0hazmat: http://paste.ubuntu.com/627384/15:52
hazmatkim0, looks good, +115:52
hazmat;-)15:52
niemeyerhazmat: +1 on the workflow.. sometimes I cowboy extremely obvious things, but I've also found useful comments from others on things I initially found obvious15:54
kim0merged15:57
kim0I'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/-1s16:00
hazmatkim0, sounds great16:01
=== al-maisan is now known as almaisan-away
jimbakerhazmat, is there still a timing issue in the standardize-log-testing branch?16:34
hazmatjimbaker, checking.. un momento16:35
kirklandhey guys -- any feedback on my bash-completion branch?  :-)16:36
jimbakerhazmat, it should be fixing a problem with HookContext that's causing this "bleeding"16:37
jimbakeri believe the save_logging/reset_logging simply were masking this issue16:37
jimbakerkirkland, i like the idea of completion. but i did wonder, what sort of testing is typically done around stuff like this?16:39
kirklandjimbaker: ensemble<space><tab><tab>16:40
kirklandjimbaker: the framework is there for each subcommand to have completion too16:40
kirklandjimbaker: i tried grepping "ensemble status" for that, but it's too slow16:40
kirklandjimbaker: i think i'd need to cache that output16:41
kirklandjimbaker: from a user experience perspective16:41
niemeyerkirkland: Sorry, it wasn't in my radar.. we generally use this view for reviews:16:41
niemeyerkirkland: https://ensemble.ubuntu.com/kanban/dublin.html16:41
jimbakerkirkland, yeah, that makes sense re ensemble status being too slow16:41
niemeyerkirkland: But it only gets there if there's a bug linked, in progress, and attached to the milestone16:42
niemeyerkirkland: I'll check it out today16:42
niemeyerkirkland: I think completion on status wouldn't be ideal indeed16:42
niemeyerkirkland: I'd rather not complete than wait16:43
hazmatkirkland, are you saying that grepping ensemble status -h is too slow for completion?16:44
hazmatit shouldn't be doing any work before it has parsed the cli16:44
kirklandniemeyer: right, i just tried it lightly, and it was really bad performance16:45
jimbakermy assumption was that kirkland was actually getting names from ensemble status...16:45
kirklandniemeyer: but getting the initial actions is really fast16:45
kirklandniemeyer: and it keeps me from having to go back to ensemble --help all the time to find the right commands16:45
kirklandjimbaker: no, not doing that16:46
jimbakerkirkland, ok16:46
kirklandhazmat: no, not -h16:47
hazmatkirkland, we could probably give a an additional option to status to make if faster for completion16:49
hazmatits pulling in almost the whole subgraph atm, but really we just need one node16:49
hazmati take that back.. the connection setup would still dominate, we do need a local cache for completion16:50
_mup_ensemble/bash-completion r257 committed by bcsaller@gmail.com16:51
_mup_bash_completion support with some argument support16:51
hazmatassuming that is we were completing actual variable/value names16:52
kirklandhazmat: yeah, i was thinking something like that;  caching status to disk;  backgrounding an update of the cache when it's deemed expired16:53
kirklandhazmat: anyway, it's not urgent, but would make for a damn cool interface :-)16:53
jimbakerkirkland, your background process could simply listen to topology changes like any other zk client can16:55
jimbakerin terms of watching a given node16:55
kirklandjimbaker: cool;16:56
jimbakerprobably better to do that way than using ensemble status (except for spiking)16:56
kirklandjimbaker: 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 info16:57
niemeyerkirkland: Sounds good16:57
niemeyerkirkland: Completion helps for sure16:58
hazmatkirkland, 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 reuse16:58
kirklandhazmat: a daemon would be one approach16:58
kirklandhazmat: another would be in the bash-completion command itself16:59
kirklandhazmat: in there, i'd test the age of the cache16:59
hazmatkirkland, indeed.. yeah. we'd need to show stale data in that case afaics16:59
kirklandhazmat: if it's not expired, then i'd use it;  and background an update16:59
hazmator get random waits16:59
kirklandhazmat: if it is expired; i'd probably just return "null" immediately (ie, no complete) and background an update16:59
kirklandhazmat: where an update is something like 'ensemble status > $HOME/.cache/ensemble-status &'17:00
SpamapSFYI, I just updated the builder recipes for ensemble to make the bzr revno part of the upstream version.17:00
SpamapShazmat: 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
SpamapShazmat: we could even leverage dbus and have it spun up when needed.17:02
niemeyerLunch time!17:03
kirklandSpamapS: do you mind trying out bzr+ssh://bazaar.launchpad.net/~kirkland/%2Bjunk/byobu-web/ ?17:05
jimbakerwouldn't such a status daemon also be useful for an indicator?17:06
SpamapSkirkland: bootstrapping.. :)17:06
SpamapSkirkland: yesterday you were saying you felt like you were missing a concept.. did you figure it out?17:07
kirklandSpamapS: sort of17:07
kirklandSpamapS: i think it was around bumping the formula revision number17:08
kirklandSpamapS: and pushing an upgrade17:08
kirklandSpamapS: i spent 4 hours making changes locally17:08
kirklandSpamapS: but not seeing those in my deployments17:08
kirkland(okay, 4 is an exaggeration :-)17:08
SpamapSDOH I hate that17:09
SpamapSI 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:09
kirklandSpamapS: i feel like if my --repository=./ then obviously i want it upgraded every time17:10
kirklandSpamapS: agreed;  if we have to use a revno, i want it bumped automatically for me17:10
kirklandSpamapS: i don't want to think about tht17:10
SpamapSkirkland: I spent like, 30 seconds trying to write a script to do that automatically, but got annoyed with the yaml libraries available. ;)17:10
kirklandSpamapS: how good or bad is it/17:14
hazmatmaybe a --force on upgrade, to bypass the version checking17:15
kirklandhazmat: sure, i'd use that (probably all the time :-)17:16
hazmatlooks pretty straightforward to implement17:18
kirklandSpamapS: the only tricky part is that you have to set a password for ubuntu for the formula to be useful17:20
kirklandSpamapS: so i'm keen on finding a way of doing that, before blogging about it :-)17:20
hazmatSpamapS, we could use a md5 checksum for verifying instead of numbers, but we're playing pretty fast an loose with version numbers at that point17:24
SpamapSkirkland: right thats where config settings come.17:32
SpamapShazmat: we've talked about this before.. --force is a nice band-aid. Users will *still* hate the revno. ;)17:33
kirklandSpamapS: right, unimplemented at this point, no?17:33
SpamapSprinciple of least surprise: I changed my formula, it should deploy anew.17:33
SpamapSAt least warn me that you didn't deploy the same content as whats on disk locally.17:35
SpamapSkirkland: --force is unimplemented, as is the config settings (not sure which you were asking about)17:42
kirklandSpamapS: config17:42
kirklandSpamapS: i'm looking for the best work around for setting an ubuntu password17:42
kirklandSpamapS: to a configurable value17:42
kirklandSpamapS: or randomly generating it17:42
kirklandSpamapS: and getting that back to the user17:43
kirklandSpamapS: perhaps as a relation?17:43
SpamapSkirkland: randomly generate it, and log it with ensemble-log INFO level17:43
SpamapSensemble-log --log-level INFO password=f94k1X17:44
SpamapSkirkland: I suggest pwgen for the generation btw.17:44
SpamapSkirkland: ajaxterm runs its own HTTP daemon right?18:31
kirklandSpamapS: yeah, on 802218:31
kirklandSpamapS: which doesn't need to be opened to the world18:32
kirklandSpamapS: just to itself18:32
SpamapSkirkland: wondering if you could do some kind of SSO thing18:32
kirklandSpamapS: hmm18:33
kirklandSpamapS: openid-ish you mean?18:33
kirklandSpamapS: that would be so sexy ....18:33
SpamapSWordpress has an openid provider plugin.. >:)18:34
SpamapSkirkland: I was going to suggest Launchpad.. but how do you know which groups to accept? ;)18:46
Davieyanyone who has signed the CoC is good cookie :)18:47
kirklandSpamapS: i figured you'd just add your LP id as part of the config18:48
kirklandSpamapS: which could be a group, maybe18:48
SpamapSDaviey: hm that reminds me I should add that as a requirement for contributing to principia.18:49
Davieyoh aye18:59
kim0I'm collecting a list of weekly happenings in the Ensemble space, preparing for a blog post19:03
kim0so far, I've collcted these http://paste.ubuntu.com/627516/19:03
kim0feel free to add any comments on any points, and add new points (perhaps recent development) that I'm not aware of19:04
SpamapSkim0: In addition to point 1, principia-tools has a script, 'promulgate', that assigns a branch as the official branch for a formula.19:06
kim0SpamapS: so a branch like lp:~kim0/+junk/drupal could now be marked as official branch for lp:principia/drupal right ?19:07
kim0cool19:08
kim0niemeyer: hazmat if anyone has any development related points I should add .. let me know .. thanks19:10
niemeyerkim0: The debug-hooks fixes have landed19:10
kim0got it19:11
niemeyerkim0: Btw, "source package branches" is an internal implementation detail rather than something that would make sense to advertise as such19:11
niemeyerkim0: I.e. principia has formulas, not source packages19:11
kim0yeah, this part I found confusing to understand19:12
kim0so I'll just say that formulas can now be referenced like lp:principia/mediawiki19:12
niemeyerkim0: It's an internal Launchpad detail.. we're reusing existing infrastructure because it's similar to what we need19:12
niemeyerkim0: The key point there is that principia is moving forward, and we not have means for tagging officially recommended branches19:13
niemeyerkim0: s/and we not/and we now/19:13
kim0awesome, I'll note that as well19:13
kim0daker: o/19:13
dakerkim0: sorry i need to leave the office :/19:14
kim0daker: oh still at the office .. okie ..catch you at home :)19:14
daker:)19:14
SpamapSkim0: hopefully nobody will link +junk branches though. :)19:18
kim0haha :D19:18
kim0yeah bad example 19:19
niemeyer+1 :-)19:22
koolhead17hi all19:24
koolhead17hello kim0 niemeyer 19:24
niemeyerHey koolhead17 19:24
kim0koolhead17: hey hey19:24
koolhead17Daviey: hazmat and all :)19:24
kim0koolhead17: how's the ec2 playing going19:25
koolhead17kim0: having fun time :)19:25
koolhead17thanks 2 you :)19:25
kim0awesome19:25
koolhead17i make sure to run ensemble shutdown :D19:25
kim0hehe :)19:25
koolhead17niemeyer: kim0 i have a question19:25
kim0shoot19:26
koolhead17the package which is not available via apt-get19:26
koolhead17can i write formula for that?19:26
kim0SpamapS: would kick you though :)19:27
hazmatkoolhead17, yes.. you can download and install from anywhere you want in the 'install' hook, however19:27
kim0I think the discussion for that is ongoing19:27
* koolhead17 looks at SpamapS :)19:27
koolhead17hazmat: yeah that`s what i wanted the permission for :P19:27
hazmatsuch 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 prefix19:27
kim0my understanding is, ofc you can, but it won't be a blessed formula19:27
koolhead17kim0:  blessed formula :D19:28
hazmatie ensemble deploy koolhead17:wordpress 19:28
koolhead17hazmat: yes i saw and checked that via EC219:28
jimbakerbcsaller, hazmat - were you able to see if standardize-log-testing branch was helpful for looping problems?19:28
bcsallerjimbaker: I haven't merged it, you found an issue with the hook context?19:29
jimbakerbcsaller, yes, it was using processExited instead of processEnded19:29
jimbakeri think the save_logging etc stuff was masking this19:30
jimbakerbcsaller, so it may be helpful for your work, based on what hazmat was saying earlier today19:32
bcsallerI'll take a look, thanks19:32
niemeyerkim0: That's right.. it's fine to do it, it just won't be part of the core formulas19:39
kim0although 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 mechanism19:41
kim0like for drupal/drush "drush upc" would update drupal-core and all modules .. many modules are not even packaged19:42
SpamapShazmat: should we keep pushing txaws trunk into the ensemble PPA, or backport the oneiric version?19:43
hazmatSpamapS, 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 that19:44
hazmatand most of what's happened there is just bug fixing19:44
SpamapShazmat: at some point we need to make a stable PPA19:44
SpamapShazmat: once we get past beta1 of oneiric maybe..19:45
hazmatSpamapS, definitely19:45
SpamapShazmat: So that people can get teh 11.10 version of ensemble on natty/maverick/lucid19:45
niemeyerkim0: In that case, it won't be an official formula.. we can't enforce how the user will handle security updates19:50
niemeyerkim0: We can only offer the mechanisms19:50
kim0but we're already enforcing, we're saying if you dont use apt-get you wont be accepted in official19:51
SpamapSkim0: practically, drush upc is meant to do the same thing. But we don't want to take responsibility for that.19:51
kim0the formula author takes responsibility19:52
SpamapSHence it not being "official"19:52
kim0We should only verify that the update mechannism works19:52
SpamapSOfficial means "we take responsibility for it working a certain way"19:52
SpamapSWe 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
SpamapSkim0: It will be available, but like the thread was saying, it won't be quite as automatic to get it.19:53
kim0would users be able to query non official repos for all drupal formulas ?19:54
kim0perhaps we should allow user-rating and commenting, a la android market19:55
kim0if user formulas (non official) are not searchable/discoverable .. that pretty much kills them though19:56
SpamapSNo they'll show up in searches.. with a namespace that identifies them clearly as "not official"20:03
SpamapSI like the idea of "contrib" .. "These are useful formulas but not part of Ubuntu"20:04
SpamapSkim0: 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:05
niemeyerkim0: We're not enforcing, in the same way we don't enforce what people put in PPAs20:11
SpamapSTrue, we're still speculating on what we want 'official' to mean.20:11
niemeyerkim0: There's a significant difference between "you can't create a package" and "your package is not part of main"20:11
niemeyerkim0: Most people don't care that their packages are not part of main20:12
kim0SpamapS: cool, as long as they show up in searches .. that's lovely :)20:12
kim0yeah20:12
dakerback20:50
dakerniemeyer: license question20:50
niemeyerdaker: Sure20:50
dakermy formula is based on the wp one, what should i do ?20:51
SpamapSdaker: merge the latest copyright file from the wordpress formula, and then add your own copyright to it where appropriate.20:53
SpamapSdaker: http://bazaar.launchpad.net/~ensemble-composers/principia/oneiric/wordpress/trunk/view/head:/copyright20:54
dakerSpamapS: can you give an example on how my copyright should be ?20:55
SpamapSdaker: on the next line after Copyright: Copyright 2011, Canonical Ltd., All Rights Reserved.20:55
SpamapSactually20:55
SpamapSno, add a Files: section.. 20:55
SpamapSFiles: hooks/db-relation-changed20:55
SpamapSCopyright: 2011, Canonical Ltd., All Rights Reserved20:56
SpamapS  2011, YOUR NAME <your@email.com>20:56
SpamapSLicense: GPL-320:56
SpamapSThat should do it20:56
dakerok20:56
dakerSpamapS: thanks20:57
SpamapSdaker: if you totally rewrote hooks/install , you can list it there too20:57
dakerSpamapS: is it good http://paste.ubuntu.com/627597/ ?21:05
SpamapSdaker: you do not need to create a Files section for anything you did not change. Just let the 'File: *' handle that21:07
SpamapSdaker: each Files: section needs a License: portion, but does not have to repeat the text.21:08
dakerheadache :/21:09
dakerSpamapS: good http://paste.ubuntu.com/627606/ ?21:19
SpamapSdaker: as I said, you don't have to repeat the text, just the License: GPL-3 part21:21
SpamapSdaker: the format specification is the first link in that file, it might be helpful21:22
SpamapSdaker: http://paste.ubuntu.com/627613/21:24
SpamapSdaker: much simpler, see?21:24
dakerah ok21:24
SpamapSerr, I repeated hooks/install oops ;)21:24
dakerSpamapS: one last time http://paste.ubuntu.com/627614/21:27
SpamapSdaker: you are missing the original Files: * section21:29
SpamapSdaker: which you shouldn't be altering21:29
dakerSpamapS: it will be copyrighted to ? canonical ?21:31
dakeror me ?21:31
SpamapSdaker: You have copyrights on anything you changed by more than a few lines.21:33
SpamapSdaker: so metadata.yaml you also probably deserve copyright on.21:33
SpamapSdaker: 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:34
dakerSpamapS: just one more time pls http://paste.ubuntu.com/627620/21:35
jimbakerhazmat, 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 watches21:39
jimbakerhazmat, 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 run21:41
hazmatjimbaker, a poke is just a roundtrip communication, the watch would have to have already fired for a poke to be sync point21:42
jimbakerhazmat, 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 terminate21:43
jimbakerhazmat, having the watch cb depend on some app state definitely is working, as you suggested21:44
jimbakerhazmat, but maybe i can try one more tack here - have the test on app state before each watch setup too21:45
_mup_ensemble/expose-provision-service-hierarchy r294 committed by jim.baker@canonical.com21:47
_mup_Removed unused code, comments21:47
jimbakerhazmat, no, that doesn't work21:57
* niemeyer breaks21:58
jimbakerhazmat, 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
hazmatjimbaker, the tests are supposed to close the client, and open  a new client to tear down the tree21:59
jimbakerthen the watch runs, but the client is already disconnected21:59
hazmatclosing the first client, shutsdown extant watches22:00
jimbakerhazmat, ok, that theory doesn't work then :)22:00
hazmatjimbaker, you might want to verify your tests are inheriting from the state test base which has this behavior22:00
jimbakerhazmat, yes it is: class AgentTestBase(StateTestBase) ...22:01
jimbakerhazmat, 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-c22:02
jimbakeri'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_watch22:04
hazmatjimbaker, that22:04
hazmater.. that's fine by me22:04
jimbakerhazmat, 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:05
jimbakerso that's all good, i think we have a good answer for why it's necessary, and the best pattern to write code22:06
jimbakerhazmat, 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 level22:07
jimbakerhazmat, anyway, i'm going to push up that change to expose-watch-exposed-flag22:09
_mup_ensemble/expose-watch-exposed-flag r249 committed by jim.baker@canonical.com22:12
_mup_Guard entry into the watch with client.connected for watch_exposed_flag (again)22:12
hazmatSpamapS, 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 deployment22:13
hazmatjimbaker, the standardize-log-testing didn't resolve the issues on bcsaller's branch.. but it looks good to me22:14
jimbakerhazmat, 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.com22:15
_mup_Merged upstream expose-watch-exposed-flag22:15
jimbakerhazmat, 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 review22:17
hazmatjimbaker, sounds good22:27
SpamapShazmat: so maybe it would be even easier to just use the hash? ;-)22:27
hazmatSpamapS, indeed, it might at that22:28
SpamapShazmat: anyway, thanks for looking into it22:35
dakerSpamapS: can you give me your opinion http://paste.ubuntu.com/627620/ pls ?22:36
SpamapSdaker: 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:36
SpamapSdaker: 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:37
dakeri am really confused :/22:38
SpamapSYou should ask a question then, I am happy to answer.22:38
dakeryou said that i have rights on anything i have changed, and i didn't remove Canonical's copyrights22:41
SpamapSFiles: *22:42
SpamapSCopyright: 2011, Adnane Belmadiaf <daker@ubuntu.com>22:42
SpamapSLicense: GPL-322:42
SpamapSNo mention of Canonical there22:42
SpamapSbut canonical retains all of its copyrights.22:42
SpamapSUnless you completely replaced most of the file.22:42
SpamapSAt which point you would have an explicit entry that just lists you.22:43
dakerSpamapS: so the Files: * section is copyrighted to canonical ?22:46
_mup_ensemble/expose-provision-service-hierarchy r296 committed by jim.baker@canonical.com22:48
_mup_Doc string22:48
SpamapSdaker: yes, then you add a "Files" section for each file that has something other than that for its Copyright/License.22:50
hazmatjimbaker, one comment on the log stuff merge, the sleep looks a little out of place, else its pretty nice (and mp approved)23:26
DavieyCan i confirm that there is no intetion to get ensemble in main for release?23:32
SpamapSDaviey: not for 11.10, but I do intend to MIR some of its dependencies.23:37
_mup_ensemble/standardize-log-testing r259 committed by jim.baker@canonical.com23:39
_mup_Removed spurious sleep (shouldn't have been part of push)23:39
DavieySpamapS: Do you have a list of those?23:39
DavieyWhat is the reasoning for MIR'ing them, if ensemble will remain in universe for this release?23:40
SpamapSDaviey: to spread out the load on the MIR team and give us time to get ensemble ready.23:42
SpamapSDaviey: essentially, we know we want ensemble in main for 12.04 .. but we also know it probably won't be ready.23:42
_mup_ensemble/standardize-log-testing r260 committed by jim.baker@canonical.com23:43
_mup_Merged trunk23:43
DavieySpamapS: 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
jimbakerhazmat, i fixed up that sleep per the commit message, sorry about that!23:47
jimbakeri generally try to mark such debug statements with an XXX so they don't sneak in... but forgot this time23:48
SpamapSDaviey: Hrm, I figure raise it now because we know we'll need it then.23:51
hazmatjimbaker, sounds good23:51
jimbakerseeing trunk fail again: http://paste.ubuntu.com/627672/ (just running ./test ensemble.control)23:57
niemeyerjimbaker: Are you sure that's up to date?23:58
niemeyerjimbaker: Ah23:58
niemeyerjimbaker: find -name '*.pyc' -exec rm {} \;23:59

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