/srv/irclogs.ubuntu.com/2011/09/23/#juju.txt

koolhead17hi all09:19
=== rogpeppe is now known as rog
rogkoolhead17: hi09:56
koolhead17hi rog09:56
niemeyerGood morning charmers and jujuers13:16
koolhead17hi niemeyer13:17
=== med_out is now known as medberry
roghey gustavo!13:29
niemeyerkoolhead17, rog: Yo13:32
rogniemeyer: the gozk server-starting code is working, BTW. i'm just making the test code use it.13:33
niemeyerrog: Woohay!13:43
=== niemeyer changed the topic of #juju to: http://j.mp/juju-eureka | http://juju.ubuntu.com/docs | http://afgen.com/juju.html | http://j.mp/irclog
=== niemeyer changed the topic of #juju to: http://j.mp/juju-eureka http://j.mp/juju-docs http://afgen.com/juju.html http://j.mp/irclog
rogthings are always easier when you're adapting some other code. for the difficult bits you do the same and blame the other code; for the rest you can simplify according to taste.13:46
niemeyerrog: :-)13:46
rogniemeyer: BTW in gocheck, is it ok if C.Log is called concurrently?13:49
niemeyerrog: It is13:51
niemeyerrog: I actually intend to support parallel tests as well13:51
niemeyerrog: Well.. hmm.. I'm not entirely sure about that right now13:52
niemeyerrog: It can be called concurrently across multiple tests, but I don't recall if it's atomic, which is likely your actual question13:52
rogi'd just come to the opposite conclusion, yeah13:53
rogi wanted to use it for the logging output of the server.13:53
rograther than sending to the rather obscure stdout.txt13:53
niemeyerrog: I've used it that way often.. there's already a trivial logger wrapper in the suite13:54
niemeyerrog: Hmm.. maybe not in that one13:54
niemeyerrog: Hold on13:54
niemeyerrog: http://paste.ubuntu.com/695648/13:56
niemeyerrog: I use this in a few suites already13:56
niemeyerrog: E.g. mgo.SetLogger((*cLogger)(c))13:56
rogerm, that doesn't help the atomicity requirement13:57
rogAFAICS13:57
niemeyerrog: Sure.. this should be done within gocheck13:57
niemeyerrog: But that's a red herring right now13:58
niemeyerrog: Nothing will explode if lines are logged concurrently13:58
rogit might, because bytes.Buffer won't like it13:58
niemeyerrog: Heh13:58
niemeyerrog: Just move on.. I'll address this in gocheck later13:59
rogok, i'll put a lock outside13:59
niemeyerrog: Man.. ignore the problem until you have it.. :)13:59
niemeyerrog: gocheck can easily be fixed14:00
* rog prefers to fix concurrency issues before they heisenbug14:00
rogbut actually we should be ok with GOMAXPROCS=114:01
niemeyerrog: I'm telling you I'll fix the problem in gocheck. You don't have a problem.14:01
rogok, cool14:02
niemeyerhazmat: Just +1d machine-with-type, with a couple of trivial suggestions.. let me know what you think please14:22
niemeyerjimbaker: ping14:25
* rog has some failing tests now, hurray!14:28
niemeyerrog: Hah :-)14:34
niemeyerrog: Good stuff14:34
rogniemeyer: the test in TestRetryChangeFailsSetting is failing because RetryChange is returning a nil error. why should RetryChange be failing here?14:44
rog(not yet familiar with zk retry semantics i'm afraid14:44
niemeyerrog: Have you changed it?14:44
niemeyerrog: The documentation for the function is pretty good,b tw14:45
rogno, i haven't changed it AFAIK. and i just noticed the read-only thing going on above. hmm.14:50
rog(that's one of only two tests that are failing now)14:51
niemeyerrog: Yeah, but I suspect this is related to your changes in the error handling14:52
niemeyerrog: Have you introduce those already?14:52
niemeyerrog: How is the test failing?14:52
rogi think you're right. RetryChanges is succeeding inappropriately14:55
rogthe only other test that fails is TestExists, where Exists of "/zookeeper" is returning 0 children, not 1 as expected.14:57
jimbakerniemeyer, hi14:57
avoinehello14:57
niemeyeravoine, jimbaker: Heys!14:59
niemeyerrog: That could mean a distinction in the zk versions.. perhaps14:59
niemeyerrog: /zookeeper is a default node, so it's not a great assertion15:00
niemeyerjimbaker: Hey!15:00
niemeyerjimbaker: How're things going there?15:00
jimbakercorrect about /zookeeper, it's a very modest ping15:00
jimbakerniemeyer, my daughter just turned 11, which is very cool15:01
rogok15:01
jimbakerrog, if you are looking for a node that says something about juju, /topology or /initialized is probably what you want15:02
niemeyerjimbaker: That's very cool indeed15:03
niemeyerjimbaker: No, ECONTEXT :)15:03
niemeyerjimbaker: He's working on gozk15:03
jimbakerah, one level down15:03
rogah, i did change RetryChange quite a bit, must have got my code transformation wrong...15:07
niemeyerrog: Hmm..15:09
niemeyerrog: I hope you're planning to provide several independent merge proposals..15:10
rogniemeyer: gotcha!15:10
rogniemeyer: i'm hoping that it's fairly obvious15:11
niemeyerrog: Yeah, but several obvious things make up for a gigantic branch and several bugs15:11
rogyeah, i should probably separate out the server stuff15:11
rogbut i couldn't test the other stuff until i'd put it in...15:12
niemeyerrog: I wasn't expecting the things we talked about to break RetryChange, for instance15:12
rogthe error stuff changed things quite a bit15:12
rogfor instance, error comparison became simpler15:12
niemeyerrog: Still, it sounds relatively trivial..15:12
rogwhich allowed RetryChanges to become simpler15:12
niemeyerrog: Cool.. simpler is great15:13
rog6 lines shorter15:14
rog(and easier to understand, i'd contend, but YMMV :-])15:14
roganyway, i've found the bug15:15
rog(i think!)15:15
niemeyerand broken!15:17
* niemeyer hides15:17
niemeyerjimbaker: So, what have you been working on?15:18
rogreturn nil -> return err15:18
rogthat was the bug15:18
niemeyerrog: Was joking :)15:18
roganyway, the only failing test now is the number of nodes under /zookeeper15:18
rog:-)15:18
roghave you got an alternative suggestion for a test?15:18
niemeyerrog: I'm pretty certain this is  bad expectation from the test15:19
niemeyerrog: Let's set up a node of our own15:19
rogyeah15:19
rogi was gonna suggest that15:19
niemeyerrog: Create /node and /node/subnode15:19
niemeyerrog: and check that instead15:19
jimbakerniemeyer, i've been looking at the lxc work and trying to get that to work for me so i can review some of the branches in queue. i've also been finalizing env-origin. i really need to get the unittests fix in as well15:19
niemeyerjimbaker: Ok, great.. we don't have a lot of time as you know, so please leave the lxc stuff for hazmat and bcsaller and focus on the things on your plate at the moment15:20
jimbakerniemeyer, ok15:20
rogniemeyer: to be honest, NumChildren is checked elsewhere. we could just remove that assert from the TestExists test and all would be ok.15:20
niemeyerrog: Works too15:21
rogpasses all tests. woo. time for lunch.15:24
* hazmat wakes up and grabs a coffee and finishes review on fwereade series branch15:25
niemeyerhazmat: Morning!15:25
hazmatjimbaker, if you could the fix help output for set config to be  a onliner when listing commands that would be helpful15:25
hazmatits currently the only one that spews on juju --help.. if you switch it to a the other help value it only shows on juju set --help15:26
jimbakerhazmat, ok15:26
hazmatjimbaker, i'm curious what issues you had with the lxc stuff though, did you get a traceback?15:27
fwereadecheers hazmat :)15:27
hazmatthe tests for it should run if you have libvirt-bin and lxc running15:27
hazmats/running/installed15:27
jimbakerhazmat, sure, one moment15:29
niemeyerLunch here.. biab15:30
jimbakerhazmat, here's the result from running one test - http://pastebin.ubuntu.com/695695/15:36
jimbakerhazmat, originally i was trying this against bcsaller's branch for using apt-cacher-ng, but i then decided to step back and verify against trunk. i am running oneiric, beta 215:37
jimbakerto my eye, this sort of spew is basically a simple setup problem15:38
fwereadehazmat: re [3], good point15:38
fwereadehazmat: I guess it's not too much work to add a new series codename to the list every 6 months :)15:39
fwereadehazmat: I remember that from the first review now, sorry I missed it before15:39
jimbakerhazmat, also are there any docs on working w/ lxc?15:39
fwereadehazmat: it does seem to me that the right point to validate the series is at environment load time, though, given that it's an environment property15:45
fwereadehazmat: ...and I've suddenly changed my mind, mainly because I like using made-up series names in tests15:47
fwereadehazmat: I think it's a matter of ensuring we wrap the errors nicely, to make it clear what the problem is, rather than restricting the acceptable strings and having to change them ourselves (even if it is only every 6 months)15:49
rogniemeyer: i've sent the branch to you for review... i think. still getting to grips with the bzr/lp stuff.15:51
bcsallerjimbaker: it looks like its trying to install the distro package of juju. I don't think its in the distro yet, right? That should be set to ppa for now I expect15:51
jimbakerbcsaller, what do we need to do to config then for this? i'm just running the test against trunk15:53
bcsallerjimbaker: juju/lib/lxc/tests/test_lxc.py   s/distro/ppa should only come up one place15:54
hazmatfwereade, that sounds good, but its not clear how for example orchestra could validate that value15:56
hazmatfwereade, for lxc the error from incorrect value is coming from a script that's also setting up the container, and is pretty hard to distinguish apriori from other installation errors15:57
fwereadehazmat: well, I think it comes down to whether or not cobbler has images with the appropriate codename available15:57
fwereadehazmat: and that's something we can check15:57
fwereadehazmat: (er, in theory, we don't do anything like that yet: it's oneiric or nothing)15:57
hazmatfwereade, i guess the question can we unambigously report such an error, or do we need to provide a list15:58
jimbaker bcsaller, does this mean that lxc testing currently has a dependency on juju being installed as a ppa? ie what is tested in the container is something outside of the branch and thus similar to what we see when executing on say ec2?15:59
fwereadehazmat: I think we can, if nothing else because the supported-series list is a property of the cobbler setup15:59
bcsallerjimbaker: there is an origin policy like what is being worked on elsewhere. distro, ppa and branch, where does the container gets its version of juju? it defaults to distro on trunk but the package isn't in the distro (though it should be after today?)16:00
bcsallerthat was the only failure there though16:01
fwereadehazmat: us having a list including (say) puissant doesn't help if the adminstrator hasn't made images available16:01
bcsallerhonestly the lxc-library branch does a bit more in the container and is more worth checking out than whats in trunk wrt lxc16:01
fwereadehazmat: so I actually think we have to go by what we can get from the environment16:01
jimbakerbcsaller, ok, i just wanted to follow up on what i was seeing. it now makes perfect sense and is even related to what i'm trying to finish up in terms of juju-origin16:02
jimbaker(env-origin branch)16:02
bcsallerjimbaker: yeah, the lxc stuff supports that in a very similar way to whats happening elsewhere. Honestly I hope we can just have cloudinit run the juju-create script as root in the container16:03
jimbakerbcsaller, seems like the right place to do it16:03
bcsallerjimbaker: its written in such a way that it sources its config from /etc/juju/juju.conf which can be written by any of the providers16:04
bcsallerand then we'd have common image building code16:04
hazmatfwereade, good point, sounds good16:15
fwereadehazmat: somewhat academic until we can select series in orchestra at all, ofc :)16:16
jimbakerhazmat, bcsaller - take a look at this lp:~jimbaker/juju/set-help-trivial - i tried to preserve the original text + some copy editing. but i think it could still stand some improvements. for example, we probably want concrete examples (or none at all)16:40
jimbakerhazmat, bcsaller, in particular, it distinguishes between the longer help message for doing juju set --help, vs the summary help with juju --help16:41
bcsallerjimbaker: agree that we need a better pattern for this16:43
jimbakeralso the spacing is currently inconsistent. probably best to use textwrap to control, but manually. this is only necessary if we want a list of examples, otherwise we don't need RawDescriptionHelpFormatter, which is all-or-nothing for the subparser16:43
jimbakerbcsaller, agreed on that!16:44
SpamapSGooooood morning juju team16:53
SpamapSDone yet? ;)16:53
SpamapShazmat: is bug 829880 still open? I thought we'd worked around it somehow.16:56
_mup_Bug #829880: object store doesn't like key with '/'  <juju:Triaged by hazmat> <OpenStack Compute (nova):Confirmed> <ensemble (Ubuntu):New> < https://launchpad.net/bugs/829880 >16:56
hazmatSpamapS, that should be closed17:12
hazmatSpamapS, its not a bug against ensemble anymore, its still valid for openstack afaik17:13
SpamapShazmat: right so Fix Released or Invalid ?17:13
hazmatSpamapS, just marked fixed release against juju, for the  ensemble package...17:14
koolhead17./17:15
niemeyerrog: ping17:19
niemeyerrog: Review for gozk delivered17:21
niemeyerbiab17:21
koolhead17SpamapS: hello17:22
rogniemeyer: where do i find your review?17:24
jimbakerhazmat, niemeyer - i would like to verify that we want the user to be able to specify an arbitrary PPA? just wanted to understand comments re the logic being preferred in the trunk version of cloudinit17:24
rogniemeyer: ah, slow mail fetch17:26
rogthanks17:26
SpamapSkoolhead17: hey17:34
SpamapSkoolhead17: I noticed you applied for charmers.. but you haven't submitted any charms.17:35
koolhead17SpamapS: i did one dotproject17:36
koolhead17but i don`t think its of much use as its not getting done from the oneiric repo17:37
SpamapSkoolhead17: You need to submit a 'new-charm' bug with it so we can review it. :)17:37
koolhead17SpamapS: yes sir!! :D17:38
koolhead17SpamapS: https://bugs.launchpad.net/debian/+source/dbconfig-common/+bug/80703817:38
_mup_Bug #807038: dbconfig-common fails to preseed phpmyadmin on natty/lucid <dbconfig-common> <phpmyadmin> <dbconfig-common (Ubuntu):New> <dbconfig-common (Debian):New> < https://launchpad.net/bugs/807038 >17:39
koolhead17i want some one to shpw little love to this :D17:39
koolhead17*show17:39
SpamapSkoolhead17: yeah, dbconfig-common is a little bit weird.. :-/17:40
koolhead17SpamapS: that is one reason am skipping  our repository :D17:40
koolhead17i want some bugs which does not require dbconfig-common17:41
koolhead17*charms in wishlist17:41
SpamapSkoolhead17: huh? you can just write your own config file, you don't have to use dbconfig-common's values17:46
koolhead17SpamapS: ooh!! i was dumb all this while then. will dig up on it later once am home. thanks for that. :)17:47
SpamapSkoolhead17: your dotproject charm looks cool tho17:48
* koolhead17 pats himself for few sec :D17:49
niemeyerjimbaker: That's not critical right now17:49
SpamapSkoolhead17: https://launchpad.net/charm/+filebug .. create a 'new-charm' bug and I'll take a look. I usually don't grant membership in charmers until somebody has contributed something significant.. that charm would count. :)17:49
koolhead17SpamapS: so can i call myself a charmer now!! :D17:50
koolhead17SpamapS: thanks. i will add few more in the list !! :D17:54
SpamapSkoolhead17: you can call yourself sally if you want. We'll call you a charmer when you have a charm in the collection. :)17:54
SpamapSkoolhead17: and btw, thanks for the participation and enthusiasm17:55
* koolhead17 bows to SpamapS 17:55
koolhead17ok catch you guys from home17:55
jimbakerniemeyer, you mean, we only need to support the standard juju ppa at this time, correct?17:55
niemeyerjimbaker: Right.. that's the problem we have to solve right now. distro/ppa/branch17:58
jimbakerniemeyer, sounds good17:58
niemeyerrog: The numbering of reviews is a convention we follow for a while so that we can exchange ideas about points17:59
niemeyerrog: "Ah, what about [3] on bar"17:59
rogah ok.18:00
rogi do miss rietveldt. i was toying with the idea of using the bzr plugin to that.18:00
rogthen i thought, no, get used to it!18:01
niemeyerrog: Yeah, .. well, kind of..18:02
niemeyerrog: There's a third option: helping to convince the LP folks to improve it :)18:02
rogniemeyer: from what you were saying, it sounds like they've got something in the works18:03
niemeyerrog: Yeah, there's significant UI changes coming18:03
niemeyerrog: Not sure about reviews, specifically18:03
niemeyerrog: But once these changes land, we'll be in a better position to request some improvements on the area18:03
rogthe reviews are really important. i think the Go community would not be nearly so involved without the codereview site18:04
niemeyerrog: LP is developed within LP as well, so it's not like they'll resist the idea of making it better :)18:04
niemeyerrog: Agreed18:04
rogniemeyer: they might not be into the whole code review thing though18:10
SpamapSis rietveldt a review tool?18:10
SpamapSnever heard of it18:10
niemeyerrog: Every branch in Canonical going into Launchpad, Landscape, U1, juju, etc.. is reviewed before merging, and it's been like that since the beginning of times :)18:11
niemeyerrog: Well before rietveldt even existed18:12
SpamapSbtw, whats the word on the 'ensemble:formula' in charms? if its not there, will anything break?18:12
niemeyerSpamapS: No18:13
rogSpamapS: see codereview.appspot.com18:13
niemeyerSpamapS: juju removes the need for headers18:13
SpamapSniemeyer: cool.. going to do a mass update on charm once juju is uploaded.18:13
SpamapSniemeyer: what about $ENSEMBLE_REMOTE_UNIT ?18:14
niemeyerSpamapS: JUJU_*18:14
niemeyerSpamapS: Please see the email I sent to the list.. it details all the compatible and incompatible changes18:14
niemeyerSpamapS: and it's a nice guide for the mass update18:14
SpamapSOh I must have missed the full details18:15
SpamapSBeen a few long days since then :p18:15
rogniemeyer: just addressed the code review points18:16
rog(and replied)18:16
rog(i'm presuming that replying to the sender address also sends an email to you)18:17
niemeyerrog: Yeah18:17
niemeyerrog: Thanks, will check it out18:17
rogi'm done for the day. see ya monday.18:17
_mup_juju/machine-with-type r366 committed by kapil.thangavelu@canonical.com18:24
_mup_address review comments, use hypens for settings key values18:24
niemeyerrog: Have a good weekend!18:24
rogniemeyer: will do. mmm curry.18:24
_mup_juju/trunk r358 committed by kapil.thangavelu@canonical.com18:27
_mup_merge machine-with-type [r=niemeyer][f=854230]18:27
_mup_An environment now stores the machine provider-type as a settings property.18:27
hazmatugh.. i broke a test on trunk18:38
SpamapSthats the developer equivilent of a cheerleader dropping the spirit stick18:40
niemeyerLOL18:43
hazmatniemeyer, we still need the lxc-library-clone to get reviewed and merged for the local dev stuff to work fully18:48
hazmatbcsaller, any updates on it?18:48
niemeyerhazmat: Cool, that's at the top of my review pipeline right now actually18:48
bcsallerhazmat: I think its working where it is, wasn't sure from the conversation here if you were ok with the changes to __init__ and clone yet though18:49
hazmatbcsaller, oh i didn't see your followup.. having  a look now18:51
AlanBellhi all19:13
koolhead17hello AlanBell19:14
AlanBellso if I set up an application like the wordpress example using juju over several instances, say one database server and 3 web servers doing the PHP stuff, the example ends up with a plain unthemed wordpress. What happens when I want to install a theme?19:15
AlanBelldo I have to do that on all the web servers manually and manage the sync of that myself?19:15
kim0AlanBell: nope19:15
kim0AlanBell: you should relate to a shared storage service (such as NFS)19:15
kim0which will handle that for you19:15
kim0assuming the wordpress formula is written to use that19:16
kim0there are other shared storage services .. ceph, gluster ...etc which I hope someone will charm soon :)19:16
AlanBellok19:17
AlanBelland wordpress is about the least appropriate example I can think of to run on juju, but it serves as a technical example!19:17
kim0yeah! it's actually not that bad :)19:18
kim0when you get slashdotted .. you'll want to scale it up :)19:18
koolhead17kim0: we had drupal one somewhere19:18
koolhead17as well19:18
AlanBellmeh, been slashdotted with wordpress running on a smallish vps19:18
AlanBellinstall supercache, slashdot away at will19:19
kim0woot .. slashdot must be loosing in popularity :)19:19
AlanBellI have also been knocked over by slashdot in the past :)19:19
AlanBellbut it only lasts a day anyway19:19
AlanBellmediawiki is a slightly more realistic example, but things don't start out needing a multi-server architecture19:22
AlanBellyou would have a single server mediawiki that has grown over time and now has thousands of users and the server is beginning to creak a bit19:23
AlanBellthen you want to split out the database and add multiple web servers etc19:23
kim0AlanBell: yeah .. the idea is about the management model of services and how they relate to each other19:24
kim0how they all collaborate towards an end state19:24
kim0that's the beauty19:24
kim0having one service tied to being one ec2 node, is only a current limitation19:24
kim0once we have LXC working (super soon) .. my understanding is that we'll be able to run multiple services on one box19:25
AlanBellso you could do a scaleable architecture starting on a single node?19:25
kim0which could even be your laptop19:25
kim0yep19:25
AlanBellthat would make sense19:25
AlanBellotherwise include a migration story19:26
kim0hazmat: any idea when the local dev (lxc) story is landing please19:26
hazmatkim0, as soon as possible, but no sooner ;-) .. more seriously we've got a few branches in flight that should land hopefully today.. that will setup the basics, but there's some additional work to make things work across all the ensemble commands (ssh, debug-hooks) which won't land till next week realistically19:29
kim0hazmat: you said the e word19:30
hazmatmostly it relates to the lxc containers (service units) will have distinct ip addresses that need to be reported back to the end user19:30
hazmatkim0, i like the e word ;-)19:30
kim0haha :) thanks a lot19:30
* hazmat wonders if he can script an auto replace for that into his irc client19:30
kim0juju19:31
kim0:)19:31
koolhead17kim0: charms :P19:31
koolhead17hazmat: hey19:31
hazmatkoolhead17, hi19:32
koolhead17hazmat: how have you been?19:38
niemeyerhazmat, bcsaller: Review delivered for https://code.launchpad.net/~bcsaller/juju/lxc-library-clone/+merge/7583319:57
hazmatkoolhead17, busy19:57
hazmatkoolhead17, looking forward to going home this weekend, its been a long travel the last few weeks19:57
bcsallerniemeyer: thanks19:58
niemeyerbcsaller: Please let me know if you'd like to talk online about any of the points there19:58
_mup_juju/config-juju-origin r357 committed by jim.baker@canonical.com19:58
_mup_Initial commit19:58
niemeyerbcsaller: Will be happy to help getting this in faster in any way possible19:58
koolhead17hazmat: awesome.  :D19:59
_mup_juju/local-unit-deploy r387 committed by kapil.thangavelu@canonical.com20:32
_mup_address review comments, switch to explicit passing of unit namespace to the unit container deployment20:32
niemeyerhazmat: ping20:33
hazmatniemeyer, pong.. almost done getting local-unit-deploy ready for another look20:33
colewhat's up jujuers20:34
colequestion!20:34
niemeyerhazmat: Just answering your points on the merge proposal instead, for refernece20:35
hazmatniemeyer, cool, thanks20:35
colewhat's the current thinking re dynamic scaling with juju?20:36
niemeyerhazmat: Please see if it makes sense: https://code.launchpad.net/~niemeyer/juju/go-formula-bundle/+merge/7524720:37
niemeyercole: juju add-unit FTW20:37
niemeyercole: The whole system architecture was designed with that kind of use case in mind20:37
niemeyercole: So it's pretty natural to do it, and we'll be adding more features as we go20:38
coleniemeyer: cool, one thing we are thinking of is extending m-collective to be able to talk to ensemble.20:39
niemeyercole: Nice!20:39
colebut if there are plans to introduce that functionality…we won't bother.20:39
coleniemeyer: if that does sound interesting to you I'd be happy to set something up with Teyo.20:40
hazmatniemeyer, re the comment, so its not clear to me why we need a method to read the whole bundle into memory, if we just expose the file path.. the consumer of the bundle can do whatever is appropriate to its usage20:40
niemeyercole: It depends on what's the functionality you're really looking for20:41
niemeyerhazmat: What file path?  If I have a bundle in memory I have no file path20:41
hazmatniemeyer, why would you have a bundle only in memory?20:42
niemeyerhazmat: Also, what you say is not entirely accurate20:42
coleniemeyer: basically let m-collective gather stats on a host and determine threshold and then (since m-collective has no knowledge of relationships) ask ensemble to go scale appropriately.20:42
niemeyerhazmat: This is not a method to read the whole bundle into memory20:42
niemeyerhazmat: This is a method that takes a sequence of bytes that _are_ in memory, and interprets them as a bundle20:42
SpamapScole: I thought mcollective was just a message bus + some agents20:42
niemeyerhazmat: Because, e.g., it was read from a database20:43
coleSpamapS: it has the concept of gathering load / performance data.20:43
niemeyercole: Yeah, I'd say don't bother20:43
hazmatcole, we'll need to expose an api endpoint on juju to make that sort of use case easier20:43
niemeyercole: We'll eventually have that internally20:43
coleniemeyer:that's the answer I was hoping for!20:44
niemeyercole: Unless you're desperate, of course20:44
niemeyer:)20:44
coleniemeyer: auto-scaling is a HUGE customer requirement and our default answer is always juju without telling them the auto part of scaling doesn't exist yet ;)20:45
SpamapSthe auto part is impossible to define for any one workload20:45
niemeyercole: Well, you're not saying something entirely off actually, even with the current state20:45
SpamapSWhat you need is an intelligent rules engine.20:46
niemeyercole: The way that the system works right now actually does quite a lot of "auto" things that other systems can't do20:46
SpamapSgood point..20:46
niemeyercole: E.g. "juju add-unit appserver"20:46
niemeyercole: That's really all it takes..20:46
SpamapSits the responsiveness thats missing, but the setting up and configuring things, that it already does.20:46
SpamapScole: right now you could simply use regular graphing/monitoring and when appserver load is too high add-unit .. and when its too low, remove-unit ..20:48
hazmatniemeyer, the local-unit-deployment is ready for another look20:49
niemeyerhazmat: WOot20:49
hazmatniemeyer,  back to formula-bundle-dir.. ah.. i understand the ReadAt method now.. that is kinda of cool.. re the ReadBundleBytes, ic re the use case20:52
niemeyerhazmat: Yeah, that's the orthogonality between types and methods that feels so nicely done there20:53
niemeyerhazmat: Thanks for the review.. the bits stuff was great catch there20:54
niemeyerhazmat: Will have a look at this over the weekend20:54
hazmatniemeyer, cool20:54
_mup_juju/machine-with-type-merge r378 committed by kapil.thangavelu@canonical.com20:59
_mup_merge machine with type20:59
_mup_juju/provider-determines-placement r390 committed by kapil.thangavelu@canonical.com21:00
_mup_merge machine-with-type and resolve conflict21:00
_mup_juju/unit-with-private-ip r391 committed by kapil.thangavelu@canonical.com21:01
_mup_merge pipeline and resolve conflicts21:01
_mup_juju/local-unit-deploy r389 committed by kapil.thangavelu@canonical.com21:03
_mup_update initialization test to note that settings are now present21:03
niemeyerhazmat: So, units are under the namespace.. but what about everything else?21:09
jimbakerhazmat, re juju-origin, i have a rewritten version (in lp:~jimbaker/juju/config-juju-origin). however, one question i have is whether we should have the default origin be _DISTRO yet (using the names in juju.providers.common.cloudinit). right now, that wouldn't work21:09
niemeyerhazmat: e.g. zookeeper, log files, ...21:09
niemeyerjimbaker: Yes, it should be distro.. we have to release this code into Ubuntu.21:10
hazmatniemeyer, each env has its own zookeeper running on the host on a random port, the user can configure the storage for log, pids, via a config option data-dir in the environments.yaml21:10
niemeyerhazmat: Yeah, what I don't get is why are we namespacing a particular aspect, rather than having a root that contains everything21:11
hazmatjimbaker, yeah.. the distro installation should be sorted  out shortly as soon as we have a s/ensemble/juju packakage downstream21:11
jimbakerniemeyer, ok, as is, we have an impasse until the release. it means between the point of merging this branch, assuming it is good, and the release, environments.yaml would need to point to the ppa with juju-origin to retain the current behavior21:11
jimbakerand have anything work at all21:12
hazmatniemeyer, effectively the data-dir is that root, but lxc itself wants a flat storage of containers into /var/lib/lxc21:12
hazmathence the namespace value21:12
hazmats/value/prefix21:12
niemeyerhazmat: I see.. but it looks like we're using a JUJU_HOME like:21:12
niemeyerjuju_directory="/var/lib/juju"21:12
hazmatniemeyer, that's in the container for the unit agent.. for the machine agent juju home is the data dir configured in environments.yaml21:13
niemeyerOr maybe not.. /me looks21:13
niemeyerhazmat: I see.. hmmm21:14
niemeyerhazmat: It just feels like we're adding yet another concept there, which doesn't map to something concrete (a unit namespace)21:15
jimbakerniemeyer, should i submit this as a diff merge proposal and pull the one for env-origin? it's taking a different approach, much closer to trunk, given the simpler usage of ppa (and no deb repository), and the removal of juju-version21:15
niemeyerhazmat: Ok, question:21:15
niemeyerhazmat: Would it work if we had JUJU_CONTAINER=<the container name> instead, explicitly?21:16
niemeyerhazmat: Or is there any other reason to have the UNIT_NS information?21:16
niemeyerjimbaker: Hmm21:16
hazmatniemeyer, we're passing namespace to the machine agent which is creating multiple containers21:18
arammoin.21:19
niemeyerhazmat: Ok21:25
niemeyerhazmat: Still feel a bit strange about it.. feels like if two users try to use it there are clashing resources21:25
hazmatniemeyer, the namespace includes the user name.. where's the clash?21:26
niemeyerhazmat: Maybe it's just my impression.. let me see21:27
niemeyer+    def get_upstart_unit_job(self, machine_id, zookeeper_hosts):21:27
niemeyer+        """Return a string containing the  upstart job to start the unit agent.21:27
niemeyer+        """21:27
niemeyer+        environ = self.get_environment(machine_id, zookeeper_hosts)21:27
niemeyer+        # Keep qualified locations within the container for colo support21:27
niemeyer+        environ["JUJU_HOME"] = "/var/lib/juju"21:27
niemeyerSorry.. longer than expected21:28
niemeyerhazmat: /var/lib/juju?21:28
hazmatniemeyer, that's for the unit agent in the container21:28
niemeyerhazmat: Will this path be used in any way?21:29
hazmatniemeyer, it will be used in the same manner its used for non local dev21:29
niemeyerhazmat: Right, but if there are two different environments for two different users, will they conflict given that the setting is the same, or is it ok?21:29
hazmatie.. the unit agent will store pid, log files there21:29
hazmatniemeyer, those paths are inside the unit container21:30
niemeyerhazmat: Ah, inside, ok21:30
hazmatactually i switched the unit agent in the container to log to /var/log/juju  so its mostly just workflow state that's in juju home..21:31
niemeyerhazmat: Cool21:31
niemeyerhazmat: Somewhat unrelated,21:32
niemeyerhazmat: Shouldn't this depend on a setting:21:32
niemeyer+            {"JUJU_ORIGIN": "ppa",21:32
niemeyer+             "JUJU_SOURCE": "ppa:juju/ppa"},21:32
niemeyerhazmat: It's also wrong, btw.. ppa:juju/pkgs21:32
hazmatniemeyer, aha, i was wondering why that failed.. there's a number of fixes for the origin work in bcsaller lxc-library-clone work21:32
niemeyerhazmat: Cool21:33
hazmati ended up just merging his work when i want to test the whole thing functionally at the end of the pipeline21:33
hazmatalso fwiw i'm going to be attending my son's track meet for the next 2.5 hrs.. i'm taking a hotspot with me.. but the connectivity might be spotty21:34
niemeyerhazmat: Alright! Let's move forward with this then!21:36
hazmatniemeyer, sweet!21:36
niemeyerhazmat: I feel like stuff is going over my head due to the heavy system interaction21:37
niemeyerhazmat: But what really matters at this point is that this is working, and it's a base we can improve on21:37
hazmatniemeyer, its pretty cool when you see it working21:37
hazmatbcsaller, any chance you'll be to address the lxc-clone-lib review items today?21:37
* hazmat steps out for a few21:38
niemeyerI'll get some coffee too21:39
bcsallerhazmat: fully expect to21:39
niemeyerjimbaker: ping21:55
jimbakerniemeyer, hi21:55
niemeyerjimbaker: So21:55
niemeyerjimbaker: What we can try to do is to detect the default behavior, in case the option is missing21:56
jimbakerniemeyer, not certain what you mean21:56
niemeyerjimbaker: A good way to do it is checking if there's an installed package that comes from the ppa21:57
niemeyerjimbaker: Check the output of "apt-cache policy juju"21:58
niemeyerjimbaker: Use the following heuristics:21:59
jimbakerniemeyer, hmmm... so you mean, implement the following workaround: as part of the cloud init, run a script that tests for a necessary dependency (so checking output above), and if not there, adds the repository22:00
niemeyer1) Grab the installed version from the "Installed:" line22:00
niemeyer2) If this is "(none)" return "branch"22:01
niemeyer3) Otherwise, store the version in a variable, and keep parsing22:01
niemeyer4) Find the version table, and find the installed version22:02
niemeyer5) For each line in the given version, if it contains "ppa.launchpad.net/juju/pkgs", return "ppa"22:03
niemeyer6) If you reach the end of the installed version, return "distro"22:03
niemeyerjimbaker: name the function get_default_origin()22:04
niemeyerjimbaker: Rather than "branch", it should actually return a proper value for the origin setting22:04
niemeyerjimbaker: "lp:juju", I suppose?22:04
jimbakerniemeyer, lp:juju seems reasonable as a workaround, this would correspond to our old policy pre ppa22:06
niemeyerjimbaker: Cool.. I suppose that's a valid setting for "juju-origin: lp:juju" once you're branch goes in, right?22:06
jimbakerniemeyer, yes, that's a valid juju-origin setting22:06
niemeyerjimbaker: Cool22:07
niemeyerjimbaker: In case of errors or unexpected input, always fall back to "distro"..22:07
niemeyerjimbaker: We can easily fix the ppa or trunk, but can't fix the distro22:07
niemeyer(that quickly)22:07
jimbakerok, this seems like a reasonable workaround and helps the user run what they expect w/o having to set anything22:07
niemeyerjimbaker: Super22:08
niemeyerSpamapS, m_3: Any comments on the heuristics?22:08
niemeyerjimbaker: Also, please log a line on "bootstrap" pointing out the origin being used, so the user is aware of it22:09
SpamapSniemeyer: readnig22:09
SpamapSreading even22:09
jimbakerniemeyer, sounds good22:09
SpamapSniemeyer: +1 looks good, there's a python library for that apt information.. but execing apt-cache policy is probably simpler for the immediate needs.22:12
niemeyerSpamapS: and more portable as well22:12
niemeyerSpamapS: Cool, thanks22:12
niemeyerAlright folks22:13
niemeyerI'm going to step out for some time.. will be working a bit over the weekend to push things forward22:13
SpamapSniemeyer: one final bit, you may want to verify that the juju thats running is actually from the package..22:13
niemeyerSpamapS: Ah, good point22:13
SpamapSdpkg -S isn't fast, but for one boot-time check it might be worth not picking the wrong behavior when something else has pulled in juju for some other reason.22:14
niemeyerjimbaker: At the forefront of the function, check if juju.__file__ comes from /usr.. if it doesn't, we can use the branch as well22:15
jimbakerniemeyer, makes sense22:16
niemeyerAlright, I'm heading out.. have a good weekend folks!22:16
niemeyeror see you tomorrow :)22:17
_mup_juju/unittests r6 committed by jim.baker@canonical.com22:21
_mup_Allow churn to run standalone22:21
zirpuis juju only going to support AWS, or will it support other cloud providers in the future? rackspace, etc.22:28
_mup_juju/unittests r7 committed by jim.baker@canonical.com22:30
_mup_Better error handling22:30
zirpuarg.  charm-tools is busted.  /usr/bin/charm -> /build/buildd/charm-tools-0.2+bzr68~natty1/debian/charm-tools/usr/share/charm-tools/charm22:32
zirpuas is principia22:33
SpamapSzirpu: yeah I'm working on that right now actually22:37
zirpuah. good. i won't bother trying to figure out where to open a but then. :)22:38
zirpudidn't seem to be anything for charm-tools w/in juju. separate package?22:38
SpamapSit will work in about 10 minutes22:38
SpamapScharm-tools is a stop-gap until juju has native repo support22:38
zirpuah. ok. thanks.22:39
SpamapSzirpu: and for your other question, aws is just the beginning. :)22:40
zirpuexcellent!22:40
SpamapSzirpu: bare metal is already available via orchestra (documentation almost done ;)22:41
SpamapSzirpu: and I'm sure somebody will do another cloud provider if they need one. :)22:41
SpamapSzirpu: a new charm-tools is building now.. should be available in the ppa in the next 10 minutes or so22:42
zirpucool. thanks.22:43
zirpudoes orchestra use virtualbox/VMware/etc? or just for bare metal provisioning?22:46
SpamapSzirpu: orchestra is cobbler + ubuntuisms , and cobbler has some libvirt integration22:56
SpamapSzirpu: but really.. if you want to control VM's w/ it.. just use openstack22:58
SpamapSzirpu: in theory it will work w/ Eucalyptus too.. tho nobody's been testing that lately :p23:07
SpamapShazmat: hey, is this the test you broke: juju.providers.ec2.tests.test_provider.ProviderTestCase.test_config_environment_extraction23:07
zirpuheh23:09
SpamapSzirpu: just curious, what were you wanting to do with juju?23:10
zirpui'm just looking into ways of deploying to the various providers.  juju seems fairly clean so far.  i don't want to write my own set of scripts.23:12
zirpui'll probably use openstack for the vbox server i have at home for testing.23:12
SpamapSzirpu: we want you to write your own set of scripts.. that are called by juju ;)23:13
SpamapSzirpu: the dev team is landing LXC container integration right now actually.. so you can do local dev work w/o VM's .. just little LXC containers.23:13
zirpuright. charms and environments right?23:13
zirpuooh. lxc would be better.23:13
SpamapSyeah, charms are the way a service is defined. environments are runtime collections of services, relations, machines and charms23:14
SpamapSzirpu: eventually all the services will run inside LXC containers so its easier to re-use an available AWS machine w/o terminating/provisioning an new one.23:14
zirpulxc on aws? :-) turtles! all the way down!23:15
SpamapSLXC works great on AWS23:15
SpamapSits how we've been testing openstack .. :)23:15
SpamapSor at least, one way23:15
SpamapSzirpu: btw, charm-tools works now23:16
zirpucool. i'll upgrade.23:16
zirpuabout to head out to dinner. will work on it later though.23:16
zirpui want to build a replica set of mongodb's to test failover and such. that's my current test app.23:17
SpamapSzirpu: lp:charm/oneiric/mongodb .. :)23:18
zirpuyep, already looked at that.23:20

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