/srv/irclogs.ubuntu.com/2011/11/29/#juju.txt

* negronjl is afk00:04
marcoceppim_3: Thanks for the review and consolidating everything into one00:13
marcoceppiI was never able to wrap my head around Cheetah, which is why I still bow to the gods of sed :)00:13
marcoceppiSpamapS: you too ^^ (thanks!) :)00:15
m_3marcoceppi: yeah, I'm kinda trying to add discussion as part of the review too... those parts aren't crucial, just opinion, but it's good to talk them over00:18
m_3marcoceppi: I took some notes on cheetah from a shell script...00:19
* m_3 digs around00:19
SpamapSI think most of the time heredocs are simpler than cheetah00:20
marcoceppim_3: I just find cheetah to be, overkill? for the small configurations00:20
SpamapScheetah is great when you want to loop over complex objects00:21
SpamapSbut most of the time just >>'ing to a new version of the file is actually a better way to go IMO00:21
marcoceppiSpamapS m_3 are there any other lightweight configuration tools, that just use templating? Like Smarty for bash?00:24
SpamapSmarcoceppi: the only time I see templating as an important option is when you can look at the template w/o the logic that fills it... like HTML templates that are worked on by designers.00:26
SpamapSmarcoceppi: for config files.. just build the thing by appending.00:26
SpamapSwhere I've used cheetah.. I've felt it was overkill ;)00:26
m_3disagree... there's lots of use for lightweight templating00:26
SpamapSIts mostly a style choice00:27
m_3it's not that painful either... no code... it can be called from the command line00:27
SpamapSheredocs are just one form of templating00:27
m_3agree... totally a style choice00:27
m_3stitching various here-docs together can even do complex templating00:28
marcoceppim_3: I'd be interested in your bash notes :)00:34
SpamapSDOWNLOAD=`ch_get_file "http://iweb.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.4.7.1/phpMyAdmin-3.4.7.1-all-languages.tar.gz" "726df0e9ef918f9433364744141f67a8"`00:37
SpamapSthat is so awesome00:37
SpamapScat > $apache_config_file <<EOF00:38
marcoceppiSpamapS: <300:39
SpamapSmarcoceppi: so, for my money, its better to > to a tmpfile .. then mv -f00:39
SpamapSmarcoceppi: and probably worth adding a charm helper function that takes a heredoc as its stdin and a filename to rename to as $!00:40
SpamapSerr00:40
SpamapS$100:40
marcoceppish/file.sh sound good?00:40
marcoceppior should there just be one file, helper.sh ?00:40
SpamapSnot sure...00:41
SpamapSI like the idea of breaking them up into groups00:41
marcoceppiI may be trying to split too soon :\00:41
SpamapSbut it also means people have to lookup which one each function is in...00:41
SpamapSmaybe have an all.sh that just sources them all00:42
marcoceppigood idea00:42
SpamapSone thing that sucks is that we want to cleanup temp files on any fails..which is usually done w/ a trap.. but traps in sourced files can be ugly00:42
SpamapSmarcoceppi: also.. VirtualHost with ServerName .. not sure thats a great idea00:43
SpamapSmarcoceppi: for the most part I think we can think of these as standalone boxes00:43
SpamapStho I guess the first VirtualHost is also the default one00:44
marcoceppiWhat about when co-location happens?00:44
* marcoceppi looks longingly into the future00:44
SpamapSmarcoceppi: that isn't something I think we should think about. co-location is supposed to be for things that don't conflict.00:44
SpamapSand anyway, if you co-located two things that did it this way, they'd have conflicting ServerName fields and break.00:45
m_3I kinda like adding apache vhosts w explicit aliases (to /phpmyadmin) instead of overloading root00:46
marcoceppiSpamapS: I guess, I keep envisioning there being an http relation with an apache interface. So an apache charm and charms like thinkup and phpmyadmin would require the apache charm and apache charm would setup the proper virtualhosts based on X things00:46
m_3results in the lame "It works" though :)00:46
marcoceppivia colocation00:46
m_3marcoceppi: more likely you'd use a reverse-proxy in any real situation though00:47
SpamapSthat works now without charms.. just apt-get install the two things, they're both on port :80 at /foo and /bar ..00:47
SpamapScharms tho, are oriented around configuring the machine for the one thing they do00:48
marcoceppiright, it's because I have a slightly different use case that I look at warping juju to do that :)00:48
SpamapSI think the way subordinate/colocated charms is being implemented, it may work that way..00:50
SpamapSwhere you could have an apache charm.. and deploying apps that support the apache interface as subordinates of it, would give them a chance to tell apache that they want to be at /foo00:50
SpamapSopen-port 80/tcp00:52
SpamapSchown -R www-data:www-data /var/www00:52
SpamapSmarcoceppi: open the port only when the service is configured00:52
marcoceppikk, thanks00:52
SpamapSSince phpmyadmin is kind of nothing w/o databases.. I'd say it should be opened in the relation hook, not install00:52
SpamapSOr, can it work w/o any sources configured?00:53
m_3marcoceppi: simple cheetah example from the command line: http://paste.ubuntu.com/753201/00:55
m_3marcoceppi: and the other extreme... a more complex template using eruby https://gist.github.com/140278100:57
marcoceppiSpamapS: It _can_ be run without a db, but it's pointless without one00:59
SpamapSmarcoceppi: I don't understand this change...01:20
SpamapS8-if not slave and not broken and not admin:01:20
SpamapS9+if not slave and not broken:01:20
SpamapSmarcoceppi: seems like we'd still want that.. who cares if the database already exists?01:21
SpamapSmarcoceppi: anyway, I have to run.. but that does seem confusing01:22
SpamapSmarcoceppi: oh sorry, in relation to https://code.launchpad.net/~marcoceppi/charm/oneiric/mysql/db-admin-relation-fix/+merge/8369001:22
marcoceppiSpamapS: In my trials, if you destroy phpMyAdmin then deploy the service again, MySQL would error on join because it tries to create the database again01:28
SpamapSmarcoceppi: we should disable the creation on admin01:33
SpamapSmarcoceppi: they have root.. let them create their own db :)01:34
marcoceppiSpamapS: that was my first course of action, then I realized that phpMyAdmin requires a database01:34
SpamapSoh haha01:34
marcoceppiSo I put it back, looking back on it now it should be disabled though01:34
marcoceppiI'll update my branch for the merge proposal01:34
SpamapSjust use 'mysql'01:34
SpamapSor create one conditionally.. if not exists..01:35
SpamapSanyway.. GONE01:35
marcoceppiSpamapS: I'll just have the db-admin hook create it, no bigs01:35
marcoceppiSpamapS: Damn, well when you get back I've pushed up the changes01:37
* marcoceppi wanders away to play Zelda02:46
hazmatzelda +103:23
* SpamapS creates ppa:charmers/charm-helpers03:38
marcoceppisweet03:41
SpamapSMore I think about it, the more I think we need a charm-helpers addon that reads metadata.yaml for declarative stuff03:42
SpamapSor a juju add on I guess03:43
* SpamapS loathes writing specs, so would prefer charm-helpers ;)03:43
marcoceppiHow would it read metadata.yaml? as in metadata defining what helpers needed to be loaded into the environments?03:44
SpamapSJust have a single command at the outset that bootstraps in charm-helpers03:45
SpamapSand after it does the declarative bits, runs hooks/install.charmhelper or something03:45
SpamapSactually you can just have install be something like03:46
SpamapS#/bin/sh03:47
SpamapScharm-helper03:47
SpamapS... install steps03:47
SpamapScharm-helper would need to be in the OS03:48
SpamapSor in juju's cloud init03:48
SpamapSotherwise for now just    add-apt-repository -y ppa:charmers/charm-helper && apt-get update && apt-get -y charm-helper03:50
flaccidsweet04:44
zoomzzHey folks i am having a little trouble bootstraping05:43
zoomzzFails to find and register any hosts05:44
zoomzzEven though the hosts r alive and pingable05:45
zoomzzMy aim is to deploy openstack on servers deployed through juj and orchestra05:46
zoomzzCobbel does its job and allows the hosts to build but the do not register and juju bootstrap fails to find an orchestra server05:49
koolhead11hazmat: around08:34
koolhead11is zookeeper a compulsary pkg to be on the VM clients/cloud-image once they are started via juju-bootstrap?09:37
koolhead11if that is the case then i can never run juju in my openstack environment if the Internal IP has no internet access :(09:39
rogkoolhead11: i should think so. zookeeper is used for all juju coordination (e.g. hook execution)09:40
rogkoolhead11: is that because you can't install zookeeper with no internet access?09:40
koolhead11rog: http://paste.ubuntu.com/753467/09:40
koolhead11i confirmed it after the console log09:40
koolhead11rog: true09:41
koolhead11so if am running juju with openstack then i need to have internal network access to internet09:41
rogkoolhead11: what command is that paste output from?09:41
koolhead11$ euca-get-console-output instance-id09:42
rogkoolhead11: alternatively you could use an image with zookeeper preinstalled, presumably09:42
koolhead11rog: +109:42
koolhead11so it means i have to re-create the image :D09:43
koolhead11with adding all these pkgs09:43
rogkoolhead11: given that you've got no internet access, i don't see an alternative, other than setting up your own local PPA09:43
rogkoolhead11: (and i've no idea how much work that would be)09:44
rogkoolhead11: i imagine that the only package that you need to preinstall is juju, which will have all those other packages as dependencies09:45
rogkoolhead11: i may be wrong though - i'm quite new to all this09:45
koolhead11rog: am going to add all those pkg and remaster the cloud-image i have just downloaded. I will have to check/work on repository issue :)09:48
koolhead11rog: thanks a lot :)09:48
rogkoolhead11: no probs. hope it works!09:54
koolhead11rog: and i think the issue am facing is more to do with my internal network :(09:56
koolhead11hi all11:25
koolhead11i need one more info, i just need my ubuntu image along with cloud-init? am trying 2 build a custom ubuntu image because i have to provide network info in it11:26
niemeyerMorning all11:32
niemeyerkoolhead11: Hi!11:32
niemeyerkoolhead11: Custom Ubuntu images are generally not encouraged with juju11:32
niemeyerkoolhead11: We use the charms to tweak the image to one's nee11:33
niemeyerd11:33
fwereademorning niemeyer!11:34
niemeyerfwereade: Hey dude11:47
koolhead11niemeyer: hellos11:58
koolhead11actully i need to add proxy info in my apt so the zookeper and other pkgs gets downloaded once instance starts11:59
koolhead11niemeyer: euca-get-console-output instance-id  is this12:03
koolhead11http://paste.ubuntu.com/753480/12:03
koolhead11i hope you agree to me on this ;D12:03
hazmatkoolhead11, pong12:03
koolhead11hazmat: hola12:04
koolhead11its my running instance which has not connected to internet and failed to download zookeeper12:04
hazmatkoolhead11, indeed you do need your cloud to have access to the internet12:04
koolhead11as result of that am having all the issue12:04
hazmatkoolhead11, alternatively you need a proxy/cache setup12:05
koolhead11http://askubuntu.com/questions/83134/using-juju-on-openstack-returns-ssh-invalid-key-error/8369812:05
koolhead11hazmat: where will i do proxy/setup12:05
koolhead11because my nova via which my instance gets network routed needs proxy12:05
koolhead11so the only thing came to my mind is to add proxy info in the cloud-image i downloaded12:06
hazmatkoolhead11, your question/problem is different then the original thread, its more appropriate to start a separate conversation regarding12:06
hazmatat least its not clear to me that their the same12:06
hazmatkoolhead11, what do you expect juju to be able to do if you have no network access?12:06
hazmatjust curious12:07
koolhead11hazmat: yes i got the reason for problem i was having.12:07
koolhead11by any chance juju during bootstrap has any option to define proxy? or i need to hardcode it inside my image and then upload it again to the bucket12:08
* hazmat checks if cloud-init supports it12:08
hazmatkoolhead11, do you have a machine accessible from the vm/cloud network that has internet access? i guess you can setup an instance that way if you associate a public address to it?12:09
hazmatg'morning12:09
hazmatall ;-)12:09
hazmatfwereade, i was looking over the restart-transitions branch last night, in general it looks good, i had one major concern about it, in that it would automatically effect error transitions (from error states) to started and up without user intervention12:10
koolhead11hazmat: if you will not kick me then does juju has option like  " juju bootstrap --proxy= " :D12:11
hazmatwhich is a significant change unintended change in behavior12:11
hazmatkoolhead11, that seems reasonable12:11
hazmati mean some option to that effect12:11
fwereadehazmat, reading code...12:11
koolhead11hazmat: so is it there, can i try that?12:11
hazmatkoolhead11, its not there yet, i'm investigating how it can be done12:12
koolhead11hazmat: awesome!!12:12
fwereadehazmat, yes, you're absolutely right12:12
koolhead11hazmat: also you were correct, the internal network in openstack gets access to internat routed via Nova12:12
uksysadmincool - would be useful12:12
koolhead11uksysadmin: +112:12
fwereadehazmat, am I right in thinking that all I actually need to fix is to verify sensible states before I attempt the transition?12:13
koolhead11but in my case even nova is running on proxy :(12:13
hazmatkoolhead11, if that's the case the instances should have internet access for normal apt usage?12:13
hazmatfwereade, yeah.. i think just checking that 'error' not in current_state suffices12:13
koolhead11<koolhead11> but in my case even nova is running on proxy :(12:13
hazmatfwereade, but its a little tricker than that12:13
hazmathmm12:14
hazmatfwereade, just wondering if the unit is in error, do the unit rel states need to be initialized12:14
fwereadehazmat, I had wondered whether I could guarantee error state by "error" in current state12:14
koolhead11hazmat: so you got this trick issue :D12:14
hazmatprobably not, they can be lazy initiaized12:14
hazmatfwereade, yeah.. its a property of all the error states that they have an error in the name, i would some strong wording to that effect in workflow.py12:15
fwereadehazmat, cool12:15
hazmatfwereade, actually just having a func or method in workflow.py is_error_state  should suffice to abstract12:16
fwereadehazmat, good point12:16
fwereadehazmat, I suspect that I'm still some way away from getting restart behaviour correct in all cases12:17
fwereadehazmat, I think I finally have a decent handle on all the workflows and lifecycles, and the hook scheduler12:17
hazmatfwereade, yeah.. there's several more corner cases12:17
hazmatfwereade, cool12:17
fwereadehazmat, but I have yet to translate all that into a coherent plan12:18
hazmatthe scheduler still has transient state12:18
hazmati'm still wary of trying to store that in zk, given the connection to zk may be dead12:18
fwereadehazmat, the scheduler certainly does; there's also some minor complication with the unit workflow, I think, in that it'll need to put the lifecycle into a sensible ._running state when it's recovering into a surprising state (if it's *only* error states, it's not too bad, but I'm not certain of that yet)12:20
_mup_Bug #897645 was filed: juju should support an apt proxy for private clouds <juju:Confirmed> < https://launchpad.net/bugs/897645 >12:21
fwereadehazmat, and I agree, I think we want the HS state on disk12:21
fwereadehazmat, the relation stuff does indeed seem to be ok if we do everything lazily12:22
koolhead11hazmat: any ubuntu image with cloud-init should work for juju i suppose12:22
hazmatfwereade, interesting re _running, we do need to ensure that its the lifecyle is running, regardless of the transition to started in this case, it will need an additional public accessor/mutator, although i wonder if needs to support external on/off or just on.12:24
hazmatneeds more thought12:24
hazmatkoolhead11, yes, but we do require fairly recent versions of cloud-init12:24
fwereadehazmat, as I understand it, the current transitions will start and stop the lifecycle as appropriate12:25
koolhead11hazmat: the comes with oneiric12:25
fwereadehazmat, what I'm lacking is certainty about the mapping from states to should-lifecycle-be-running12:25
hazmatfwereade, they do, but that's based on a notion that start is called on the lifecycle12:25
koolhead11hazmat: cloud-init             0.5.10-0ubuntu1.5 will do?12:25
hazmatfwereade, yeah.. it needs more thought, my thought in this case, is that regardless of state we'd want lifecycle running12:26
hazmatfwereade, maybe not..12:26
fwereadehazmat: hm, a config error, for example, explicitly stops lifecycle12:27
hazmatfwereade, thinking about error states like install_error, or start_error12:27
fwereadeexactly12:27
fwereadehazmat, if it's *just* errors that do that, and we can guarantee that forever, that's easy, but I'm fretting about it12:27
hazmatfwereade, yeah.. its fine without manipulating _running, effectively the guarantee ic is that its only running after started, and error states will stop that12:28
hazmatif we come back in an error state, we can still recover... the unit rels are only active if started12:28
hazmatand we don't need to manipulate the lifecycle internals12:29
hazmatkoolhead11, and that corresponds to what?12:29
koolhead11hazmat: is it the latest cloud-init pkg which juju needs :D12:29
koolhead11because am making my own image adding the proxy issue in it and cloud-init has to be installed to12:30
fwereadehazmat, then perhaps it's even simpler -- if we're in an error state do *nothing*, if we're already "started" just lifecycle.start(False), otherwise do the usual transitions into started?12:30
koolhead11i cannot log in to the machine which i booted and uses image http://uec-images.ubuntu.com/12:31
hazmatfwereade, yeah... that sounds about right, just wondering if that can be simplified12:32
koolhead11hazmat: 0.5.10-0ubuntu1.5  version of cloud-init get installed, you think its sufficient to run juju ?12:38
hazmatkoolhead11, that corresponds to what distro release version?12:38
hazmatkoolhead11, specifically for cloud-init there where fixes for the oneiric release regarding openstack12:39
koolhead11hazmat: so it will work :D12:40
hazmatkoolhead11, the version in oneiric is 0.6.1-0ubuntu2212:40
koolhead11hmm. so i will get the latest oneiric one installed.12:41
hazmatkoolhead11, which implies to me that no.. 0.5.10 won't work for openstack, there was specifically a problem around installing the ssh key in  older versions12:41
koolhead11thanks. let me test this12:41
koolhead11hazmat: no my bad, i was on my natty system :)12:41
koolhead11and got that version12:42
hazmatkoolhead11, no worries12:42
hazmatkoolhead11, uksysadmin Bug #897645 is to track the apt-mirror/proxy support12:42
_mup_Bug #897645: juju should support an apt proxy for private clouds <juju:Confirmed> < https://launchpad.net/bugs/897645 >12:42
uksysadminawesome, ta hazmat12:43
niemeyermpl: ping12:54
niemeyerrog: ping13:00
rogniemeyer: hiya13:00
niemeyerrog: Yo13:00
rogniemeyer: how're them reviews coming on? :-) :-)13:00
niemeyerrog: Just looking at mpl's review, and I noticed you've replied via email, which interestingly went to the merge proposal and not to codereview13:00
rogniemeyer: interesting. i don't *think* i got an email from codereview about it.13:01
rogniemeyer: nope, i didn't. is this a flaw in the cunning plan?13:02
niemeyerrog: Not sure.. just thinking13:02
niemeyerrog: and yes, you certainly have reviews coming your way13:02
rogniemeyer: whee! i've been stacking up the merge requests, i'm afraid13:02
rogniemeyer: i hope i haven't gone way off track13:02
niemeyerrog: For now, let's start the review online in the codereview page.. this will ensure you get added to the reviewers list13:03
rogniemeyer: you mean, reply on that page rather than reply to the email?13:03
niemeyerrog: That's alright.. we'll sort it out.. please don't pile up things too much in the same branch, though13:03
niemeyerrog: That first ec2 branch took way too long, and I'm actually wondering if we'll have to break it down13:03
niemeyerrog: But let me go over it in a first pass before anything13:03
rogniemeyer: yeah, it was bigger than i wanted, but i couldn't see a way to break it down into nice easy steps13:04
niemeyerrog: That's right.. reply in the codereview page first13:04
niemeyerrog: That will add you to the reviewers list13:04
rogniemeyer: since that branch, i'm trying hard to keep the branches small and to the point13:04
niemeyerrog: That's awesome, thank you13:04
mplniemeyer: pong13:06
niemeyermpl: Hey there!13:06
mplhi13:06
niemeyermpl: Just going over your change and we're mostly ready for merging13:06
niemeyermpl: One question: have you signed the contribution agreement from Canonical before, for any project?13:06
niemeyermpl: I don't recall if I actually asked that before13:07
hazmatniemeyer, can lbox propose send an existing branch to codereview site ?13:07
mplniemeyer: nope, I don't thing I did.13:07
niemeyerhazmat: Yep.. just propose it again with -cr13:07
mpl*think13:07
hazmatniemeyer, awesome13:07
niemeyerhazmat: It will find the existing merge proposal, and will do the delta13:07
hazmatniemeyer, does that work even if the merge proposal belongs to someone else?13:07
niemeyerhazmat: Hmm13:07
mplniemeyer: same kind of procedure as with Google I suppose?13:07
niemeyerhazmat: Maaaaybe13:07
hazmatie. does it actually resubmit it,or can it just do the diff and add the comment13:08
niemeyerhazmat: As long as you have editing permissions, I *think* it may work13:08
hazmatniemeyer, cool, i'll have to experiment13:08
niemeyerhazmat: Oh, actually, probably not13:08
niemeyerhazmat: Because it will attempt to push the branch13:08
niemeyerhazmat: But try anyway13:08
hazmatah13:08
niemeyermpl: Yeah, mostly13:09
niemeyermpl: Except it's a single agreement for all Canonical projects13:09
niemeyermpl: So you won't have to be doing this again for juju, etc13:09
niemeyermpl: The details are here:13:09
niemeyermpl: http://www.canonical.com/contributors13:09
niemeyermpl: It's non-draconian, and quite straightforward13:09
mplniemeyer: kthx, I'm on it right away then.13:09
niemeyermpl: No problem13:12
niemeyermpl: and thank you13:12
mplsure, thank you for putting me on track.13:13
niemeyermpl: I've just reviewed your change, and there's one minor nit to address..13:13
niemeyermpl: Once you do it, just run "lbox propose -cr" again, and I'll merge it13:13
mplI'm on a different machine now, I'll just have to setup things again.13:16
mplCA submitted btw.13:16
niemeyermpl: Beautiful, thanks!13:16
niemeyerOk, I suggest going through the same procedure you did originally13:16
mplone question regarding the submit procedure (open to anyone here):13:16
niemeyermpl: and then run "bzr pull" once you're inside of the branch13:17
mplwhen I lbox proposed, it took me to the browser page where I have to agree to let launchpad access things on my behalf13:17
niemeyermpl: That's right13:17
niemeyermpl: Well, almost right anyway13:17
mplI selected the most permissive option13:17
niemeyermpl: It's actually lbox asking Launchpad so lbox can do things on your behalf13:18
niemeyermpl: Yeah, I think that's necessary in this case, since it's actually writing content on your behalf13:18
mplyes. what's the minimum working level I was supposed to agree on there?13:18
mplok13:18
niemeyermpl: Btw, if that's a machine you're not comfortable leaving your credentials around, make sure you kill "~/.lpad*" when you stop working there13:19
mplah, good to know, thx.13:19
niemeyermpl: It's not your real credentials, but rather just a token13:19
niemeyermpl: Even then, someone can impersonate you with it13:19
mplok. no worries though. both are my laptops and somehow secure.13:20
mpl*somewhat13:20
mplniemeyer: btw, I'm new to bzr (ok with hg and pretty comfy with git) so I might make mistakes with it at first. I've read the minimum docs so far.13:22
niemeyermpl: Not a problem by any means13:22
mplniemeyer: so you're saying I should pull from the original branch. not simply 'bzr branch lp:~mathieu-lonjaret/gozk/zookeeper' ?13:28
niemeyermpl: Yeah, I suggest you follow the original process, and once you have the local environment setup, get inside your feature branch and pull from your changes at that URL13:29
niemeyermpl: The reason being that this way you'll preserve the parent link with the local trunk13:29
niemeyermpl: You can also do it in other ways, but that one is simple to follow and explain :)13:29
mplah, I think I see, thx.13:30
mplniemeyer: for further changes, I suppose it's cleaner I append them to the current commit (#22), rather than creating new commits, right? I mean, if there's such a thing with bzr...13:34
niemeyermpl: No, we generally don't encourage reorganization of history13:34
niemeyermpl: Even more considering it has been published13:35
niemeyermpl: This would be discouraged even with git13:35
mplwell published, but not yet merged.13:35
niemeyermpl: Yeah, but it's published.. the review was made on a given revision, which we should be able to look at again if necessary13:35
niemeyerrog: Is Jacek the guy you told me about at UDS?13:36
rogniemeyer: no13:36
niemeyerrog: Ok, so he mailed us independently.. cool13:36
mplok, I just got used to doing that way with brad for camlistore. but we're using gerrit, so nothing's "published" until it's merged yeah.13:36
niemeyermpl: Ok, it feels like a bad idea even with gerrit13:37
niemeyermpl: FWIW13:37
niemeyermpl: Otherwise you have a review published, for which you don't have the codebase anymore13:38
mpltrue. the only trace of the patchsets are in gerrit.13:38
mplotoh it encourages to commit often for small changes in the same review without fearing of filling the log with ridiculous commits.13:39
mplbut anyway, not suggesting anything, was just asking. :)13:40
niemeyermpl: Yeah, there are two religious camps.. we're on the side that don't really care about the history of feature branches13:45
niemeyermpl: The history of trunk we care about, though13:45
niemeyermpl: So we're generally more careful on the merge messages13:45
mpluh, that's odd. the tests all passed on that machine and yet I have no recollection of installing/trying more zookeeper things on here.13:46
mplniemeyer: so I've branched from lp:gozk/zk, made a feature branch, cded into it, pulled from lp:~mathieu-lonjaret/gozk/zookeeper, made my changes, made a new commit. now if I lbox propose -cr, it will know that we're still in the same CL, and not create a new one, right?13:58
mplor am I forgetting something?13:58
smoserhazmat, i'm interested in what you think of my comments to bug 89764514:02
_mup_Bug #897645: juju should support an apt proxy for private clouds <cloud-init:New> <juju:Confirmed> < https://launchpad.net/bugs/897645 >14:02
niemeyermpl: That's right14:05
niemeyermpl: Just propose -cr again14:05
niemeyermpl: Then, visit the codereview page, and mention it's ready14:05
niemeyermpl: In the future, I'll change lbox propose so that it adds a note by itself14:06
mplhmm I must have messed up somewhere:14:12
mplbzr: ERROR: Cannot lock LockDir(http://bazaar.launchpad.net/~mathieu-lonjaret/gozk/zookeeper/.bzr/branch/lock): Transport operation not possible: http does not support mkdir()14:12
rogmpl: did you kill a bzr process?14:14
rogmpl: actually, no that gives a different error14:15
mplno, I don't think I did.14:17
niemeyermpl: Ah, I see what's going on14:21
niemeyermpl: try this:14:21
niemeyermpl: within the branch14:21
niemeyerbzr push --remember lp:~mathieu-lonjaret/gozk/zookeeper14:21
niemeyermpl: Then try to propose again14:21
rogniemeyer: maybe #juju is better for this conversation14:21
niemeyerrog: Yeah, both are cool14:21
niemeyerrog: Oh, no, I guess you're right14:21
niemeyerrog: We're moving onto juju territory14:22
rogniemeyer: that's what i thought14:22
niemeyerrog: +114:22
rogniemeyer: i'm not sure of a good way to test the juju cloudinit code though14:22
rogniemeyer: it's a public function in the juju package, so it should have a test, but i'm not sure what level would be best.14:22
rogniemeyer: maybe just compare the output, as discussed14:23
hazmatsmoser, replied on the bug14:23
rogniemeyer: at least that'll guard against regression14:23
hazmatstepping out to run some errands, back in 40m14:23
niemeyerrog: yeah, that sounds sane14:24
niemeyerhazmat: Cheers14:24
mplniemeyer: whoa I hit a go runtime panic14:24
niemeyermpl: Oh, I wanna know about that one14:25
mpl(while proposing). the command you gave me worked to deblock the situation though.14:25
mplk, sending you the stack by e-mail then.14:25
niemeyermpl: Can you please paste the output somewhere?14:25
mplok, a paste then.14:25
smoserhazmat, i think juju should expose cloud-init to end users.14:26
mplniemeyer: http://paste.ubuntu.com/753711/14:27
smosernot by default, but at least allow the user to specify "start all my instances with these parts"14:27
smoseras that would generically solve local customization problems that you will undoubtedly run into.14:27
niemeyermpl: Oh.. hmm14:29
niemeyermpl: Damn.. I think that's the bug I fixed in Go's http package itself14:29
mplniemeyer: I have some RL work to finish, so I might get a little laggy but I'll catch up14:29
niemeyermpl: I'll have to recompile lbox with the latest tip14:29
mplok14:30
niemeyermpl: Let me do that14:30
hazmatsmoser, hmm14:50
hazmatniemeyer, what do you think about cloud-init for end users exposed directly via juju?14:51
niemeyerhazmat: Sounds bad is my first instinct14:51
hazmatsmoser, it does makes sense, its already a generic high level language for customization, its just whether or not it promotes different practices (machine think vs container think) then what we're aiming for14:52
niemeyerhazmat: It's an implementation detail.. we already have providers where cloud-init doesn't exist14:52
hazmatniemeyer, just one.. and in that one cloud-init doesn't nesc. make sense, and its something we could add.. but thats a different context cloud-init there would be in a container, not a machine14:53
smoserwhat is the provider where you have no cloud-init ?14:54
hazmatsmoser, local provider14:54
smoserlxc runs as a container, no ?14:54
hazmatsmoser, yup14:54
smoseryou really *should* have cloud-init there.14:54
smoserimo14:54
hazmatsmoser, we debated it, its lack there is mostly as optimization, it cuts down the unit creation time via lxc clone considerably14:55
niemeyerhazmat: That's not entirely true14:55
smoserlack of cloud-init does not cut down on unit creation time.14:55
smosera pre-customized lxc container does.14:55
niemeyersmoser: The real reason we don't use cloud-init there is because LXC containers run units, rather than mimicking EC2 machines14:55
hazmatbcsaller, ping14:55
niemeyersmoser: So we don't really want to perform the customizations cloud-init is about14:56
hazmatsmoser, true, and we do use a pre-customized container, bcsaller advocated effectively for not using cloud-init there, and has some more details14:56
niemeyersmoser: cloud-init is a way to put the environment in a given state for juju to run14:56
smoserand to do other things.14:56
niemeyersmoser: It doesn't make sense to run cloud-init on your local laptop, for instance14:56
smoserthat you could expose to a user14:56
smoserso you wouldn't have to modify juju to know things that the user might have to change.14:57
smoserit doesn't *not* make sense to run cloud-init there14:57
smoserif cloud-init has no data, it does nothing.14:57
niemeyersmoser: In many cases we want to know it, because we want juju to be in the loop14:57
smoser(ignoring the stupid ec2 timeout thing)14:57
mplniemeyer: it looks like lbox proposed paniced when doing the push to rietveild. as a result, the new changes have been pushed to launchpad but not to rietveld.14:57
smoseri'm suggesting that you do not want juju in the loop for all possible local customizations14:58
smoserapt-proxy is an example.14:58
smoserbut you will undoubtedly run into other cases where the user needs to run some dynamic change to the image14:58
niemeyersmoser: E.g. if there's a proxy, the user should be telling juju about that fact, and we'll be accommodating not only the first machine creation, but we should also be *changing* the proxy in all existing machines if the user decides to change it14:58
niemeyersmoser: Same thing about ssh keys14:58
niemeyersmoser: cloud-init is an implementation detail for bootstrapping a machine14:58
niemeyersmoser: juju stays around forever14:58
smoserthats fine. i dont disagree.14:59
smoserbut i think you need to expose *some* way that a user can modify the image on first boot possibly before juju takes over.14:59
smoserand ideally without modifying a golden image prior to boot.14:59
niemeyermpl: That's fine, you can propose again without damages14:59
niemeyermpl: and lbox was just recopmiled14:59
niemeyermpl: can you please apt-get update; apt-get upgrade;?15:00
niemeyermpl: to get the new lbox15:00
niemeyermpl: and try again?15:00
niemeyersmoser: charms is the way to modify the image15:00
smoserand i think that cloud-init is the thing that makes most sense there (yes, thats probalby because its "my baby") but i think you need something.15:00
niemeyersmoser: in other cases, juju itself should be in the loop15:00
smosercharms cannot modify the guest before juju runs15:00
niemeyersmoser: We already manage ssh keys, for instance15:00
niemeyersmoser: Proxy seems to fit in the same category15:00
smoseri think it is unreasonable to believe that juju will be all knowing about image customization.15:01
smoserand that you should enable a generic method.15:01
smosereven if it is only "i will run this for you in the image before juju runs"15:02
smoser(which would not be cloud-init specific)15:02
smoserbut would allow the user to make modifications that juju doesn't have to know about. possibly they would only need that until juju grew appropriate legs.15:02
niemeyersmoser: Maybe.. I'm certainly interested in learning about those cases.15:03
smoserapt-proxy is the first.15:03
smoserapt-mirror is the second15:03
niemeyersmoser: Proxy is the first one we find out of the ordinary that should be supported.15:03
niemeyersmoser: and in that case, it *should* be built-in15:03
niemeyersmoser: E.g. we want to set up the proxy within LXC units in a local deployment15:03
niemeyersmoser: cloud-init doesn't run there15:03
niemeyersmoser: Same thing about apt-mirror15:04
smoser(there is no reason that cloud-init does not run there)15:04
smoser(but even if it wasn't cloud-init, juju could still make that promise)15:04
smoserif you want a list of other things that you may need to configure try 'man apt.conf'15:05
smoseror 'man resolv.conf'15:05
niemeyersmoser: co-located charms can fix those problems15:05
niemeyersmoser: Some of them, anyway15:05
niemeyersmoser: But I digress..15:05
niemeyersmoser: I don't disagree that some generic customization mechanism may be needed.15:06
niemeyersmoser: I'd tend to make it more generic, though.. such as a script15:06
smosercloud-init "parts" can be a script.15:06
smoserits a generic mechanism.15:06
niemeyersmoser: but all of that is irrelevant for the current debate.  Proxy should be a first class option.15:06
smoseri'm curious as to why cloud-init does not exist in your lxc containers15:06
smoseri really dont think that proxy should be a first class citizen to a service orchestration solution.15:07
smoseri would think that is way below the level of something that juju should care about, but i'm willing to accept your opinion there.15:07
niemeyersmoser: juju bootstrap --http-proxy=<url>15:07
niemeyersmoser: Should be as simple as that.15:07
niemeyersmoser: No excuses for being harder.15:08
smoserits a somewhat arbitrary complication of your command line interface to me.15:08
smoserbut, i'm not arguing that.15:08
niemeyersmoser: Ask koolhead11's opinion.. he was the user faced with the problem15:08
niemeyerAnyway, I have to head to lunch right now or I'll lose my wife.. biab15:09
mplniemeyer: something odd happened. I got a 403 when it tried pushing to rietveld. I retried; it did _not_ ask for my google credentials again, and this time it worked.15:12
rogniemeyer: i've made some changes in response to your comments on ec2-error-fixes, and pushed them (with lbox propose) but i don't see the changes reflected on the codereview site15:13
rogniemeyer: i'm probably doing something wrong!15:13
koolhead11So juju wants a user Ubuntu to exist in my image/instance?15:17
koolhead11is there a way i can change it from configuration file15:18
rogniemeyer: aaargh, i forgot the -cr flag!15:20
marcoceppim_3 SpamapS I don't think phpMyAdmin has a "read-only" mode. I think it'd probably need to create a MySQL database user with just select access which makes maintaining configuration of it kind of difficult15:22
m_3marcoceppi: cool... np.  was just thinking read-only mode would be cool15:25
m_3might be worth filing as a feature request on the charm once it's in lp:charm/phpmyadmin so we don't forget... somebody might pick it up over time15:26
marcoceppiGood idea. I'm going to try to wrestle with the package and see where that goes15:26
niemeyerrog: I've been thinking about that stuff.. I'll probably introduce support for a ".lbox" file within the branch, and take default options from there15:30
niemeyerrog: So that "lbox propose" will do the intended thing for the specific project15:30
rogniemeyer: i think that's a good idea15:30
niemeyermpl: Superb, I'll check it again15:30
rogniemeyer: i was thinking of suggesting something like that15:30
rogniemeyer: ec2-error-fixes should be ready to rock BTW15:30
niemeyerrog: Looking at it right now15:30
niemeyerrog: Reviewed15:34
niemeyermpl: Good stuff15:36
niemeyermpl: Will get the zookeeper change submitted15:36
niemeyermpl: I'll be back in 5 mins15:37
niemeyermpl: Please let me know when you have a moment for us to talk about the next task15:37
rogniemeyer: i don't think IsNil works for checking if the length of an array is zero15:37
niemeyerrog: It works in this case, because the length is zero because it's actually a []string(nil)15:37
rogniemeyer: hmm, i'm sure i was bitten by this - DeepEqual used to return true and now it doesn't15:38
rogniemeyer: i'll check15:38
rogniemeyer: ah, i see, i did the naive translation15:39
rogniemeyer: why wasn't it IsNil before?15:40
niemeyerrog: I was misguided to think it was an empty slice due to the poor printing we had just a couple of weeks ago15:42
niemeyerrog: Thankfully, fmt was changed and it now shows the fact it's nil15:43
mplniemeyer: cool, thx. if it's not too long, pretty much anytime will be ok to discuss.15:44
niemeyermpl: Ok, let's go then15:44
rogniemeyer: ah, cool. done and pushed.15:44
niemeyermpl: We don't have any kind of mechanism for logging in the juju packages right now15:44
niemeyerrog: Awesome, please feel free to submit15:44
niemeyermpl: It'd be cool to have something _very_ simple going..15:45
mplniemeyer: like http basic auth, with login and pass?15:45
niemeyermpl: Oh, no, I mean just logging, not "login" :)15:45
mploh sorry.15:45
mplok.15:45
niemeyermpl: I'm thinking about something like this:15:47
niemeyermpl: Imagine an interface in the juju package like so:15:47
niemeyermpl: func SetLogger(l Logger); func SetDebug(enabled bool); func Logf(format string, args ...interface{}); func Debugf(...)15:48
* marcoceppi reinvents the wheel15:49
niemeyermarcoceppi: As long as it's rounder, that's fine ;-)15:49
niemeyermpl: So one can call juju.Debugf("doing something: %v", whatever)15:49
niemeyermpl: etc15:50
niemeyermpl: Same thing about Logf15:50
mplwhat's the diff between LogF and Debugf? Debugf is only used when debug is enabled?15:51
niemeyermpl: Precisely15:51
niemeyermpl: Well, it's only _effective_ when ...15:52
rogniemeyer: bzr: ERROR: Cannot lock LockDir(lp-85338896:///%2Bbranch/goamz/ec2/.bzr/branchlock): Transport operation not possible: readonly transport15:52
niemeyermpl: I suggest pulling from lp:goetveld15:52
niemeyerrog: You've been there before, I think :)15:52
rogniemeyer: i tried rebranching15:52
niemeyerrog: Yeah, it's the same issue.. we have to rename15:53
rogniemeyer: perhaps you haven't updated the alias for ec2?15:53
rogah yes15:53
niemeyerrog: Please push to the same URL, but under ~gophers15:53
mplniemeyer: ok, got it, thx. anything else?15:53
niemeyerrog: I'll switch the official URL15:53
niemeyermpl: Yeah, I suggest having a look at lp:goetveld15:53
niemeyermpl: Check the log.go file15:53
rogniemeyer: pushed15:54
niemeyermpl: There's a lot you won't care about, but there's somethings you can mimic15:54
niemeyerrog: Thanks, switching now15:54
niemeyerrog: Done15:55
niemeyerrog: exp/ssh is coming along pretty well16:48
niemeyerrog: I'm hoping we'll be able to use it by the time we get tehre16:48
rogniemeyer: yeah, i'm really happy to see that16:48
rogniemeyer: 'cos we need it!16:48
rogniemeyer: and i wasn't looking forward to writing it...16:48
niemeyerrog: Well, we'd definitely not write an *ssh* package in a juju context :-)16:49
niemeyerrog: We'd do the same we do in the current impl.. just wrap ssh16:49
niemeyerrog: and that may actually turn out to be a better idea in the long run, anyway16:49
rogniemeyer: ah, i didn't realise that's what it did16:49
niemeyerrog: But.. I'm hopeful at least16:49
niemeyerrog: Yeah, it's very straightforward actually16:50
niemeyerrog: Well, hmmm.. ok.. not _that_ straightforward if we take into account the error handling and retry logic16:50
rogniemeyer: does it just pipe into ssh? or use a local proxy port?16:51
niemeyerrog: It manages the proces16:51
niemeyers16:51
niemeyerrog: Ok.. what's the next MP in the pipeline?16:51
niemeyerrog: I've been looking for the tip, but it looks like they already include the ec2 stuff16:52
rogniemeyer: you mean, what am i working on next, or what should you review next?16:52
niemeyerrog: What's the tip of the iceberg? :-)16:52
niemeyerrog: The latter16:52
rogniemeyer: probably ec2-ec2test16:52
niemeyerrog: Cool16:52
niemeyerrog: Btw, can you please give me a hand merging https://codereview.appspot.com/5445048/?16:52
niemeyerrog: It'd be good to run tests before merging.. I think mpl didn't have the env setup for that16:53
rogniemeyer: ok. what about things that depend on it?16:53
niemeyerrog: They'll have to be fixed in due time as well16:53
niemeyerrog: But there's no way to break that circle besides doing this16:53
rogniemeyer: indeed - i just wondered if we should push a load of stuff together16:54
niemeyerrog: Pushing loads of stuff together never sounds great ;-)16:55
rogniemeyer: ok, seems good to me16:55
niemeyerrog: What depends on it right now, either way?16:55
roglol16:55
rogmaybe... nothing16:55
niemeyer8)16:56
niemeyerrog: Btw, there's an update for lbox16:56
rogniemeyer: cool. what new goodies in the box today?16:57
niemeyerrog: Trivial changes. Besides recompiling with the Go http fix, it allows leaving the description empty, which is something I've noticed you missing16:58
rogniemeyer: yeah - sometimes the single line summary is enough16:59
niemeyerrog: Agreed16:59
rogniemeyer: thanks16:59
rogniemeyer: hmm, should i compile zookeeper against weekly or release?17:00
rogniemeyer: i think i should probs stick to release and then tag a weekly version too17:00
niemeyerrog: I vote for weekly/tip for the moment17:01
niemeyerrog: Since that's what both you and me are using17:01
niemeyerrog: That said,17:01
niemeyerrog: let's not announce the new interface right now17:01
niemeyerrog: So we can move that onto lp:gozk by the time the next stable is out17:02
niemeyerrog: So everybody is happy17:02
rogniemeyer: ah, of course this still isn't public17:02
rogniemeyer: cool.17:02
niemeyerrog: Or rather, make it well known that the pkg name is now gozk/zookeeper17:02
rogniemeyer: the official path is currently launchpad.net/gozk, right?17:02
niemeyerrog: It is17:03
rogniemeyer: the only problem is that i won't be able to straight-merge mathieu's patch, 'cos i'll have to do error-fixes first17:03
rogniemeyer: but i can do that17:03
niemeyerrog: Hmm..17:05
SpamapShttps://launchpadlibrarian.net/86149655/buildlog_ubuntu-precise-i386.juju_0.5%2Bbzr418-1juju1~precise1_FAILEDTOBUILD.txt.gz17:06
niemeyerrog: Wasn't that fixed?17:06
SpamapSjuju hasn't been able to run its test suite in a clean chroot on precise for a while.. :-P17:06
niemeyerrog: Or is it still in the queue?17:06
rogniemeyer: i don't think it did an error-fixes on zk17:06
rogs/it/i/17:06
rogor...17:06
niemeyerrog: If you want to quickly push that change, I'm happy to do a fast review on it17:07
rogniemeyer: error-fixes before rename?17:07
rograther than combining?17:07
rogcurrently i'm combining, but i can do two merges17:07
SpamapShazmat: think you can take a look at that build failure? we haven't had a good build on precise since r41317:07
SpamapShazmat: something with argparse and stale .pyc's17:08
hazmatSpamapS, sure just wrapping up an email and i'll take a look17:08
rogniemeyer: i think i'll do that. mathieu's patch should merge fine.17:08
niemeyerrog: Yeah17:08
niemeyerrog: I'm happy with either17:09
rogi'll keep 'em separate.17:09
rogniemeyer: that way mathieu gets his name on the merge17:11
niemeyerrog: Good one17:13
rogniemeyer: one small request BTW, when it gets stable, could we make lbox a little less verbose please?17:15
niemeyerrog: +1.. I also had that in mind17:16
rogniemeyer: one or two lines of output would be nice... (and a -verbose flag for debugging)17:16
hazmatSpamapS, not sure what thats about, i'll try running the tests  on a precise image17:19
niemeyerrog: Agreed17:20
niemeyerrog: We may need more lines, due to the URLs, but not much else17:20
rogniemeyer: cool17:20
rogniemeyer: it'd be good if lbox could use parent branch for target URL if push branch of target isn't there.17:26
rog(maybe it does now)17:26
rogniemeyer: https://codereview.appspot.com/5440056/17:29
* rog loves gofix17:29
niemeyerrog: It does already17:30
rogniemeyer: cool17:30
rogniemeyer: i'll update my lbox now17:30
rog"lbox is already the newest version."17:31
rogah, apt-cache!17:31
niemeyerrog: Reviewed17:32
niemeyerrog: I love codereview :)17:32
hazmatrog +117:32
niemeyerrog: apt-get update as well, maybe17:32
rogniemeyer: that's what i was intending to mean, if i'd remembered the magic commands properly17:33
rogniemeyer: another minor thing: it'd be nice if lbox didn't add a new diff to a codereview file if nothing changes in that file.17:37
mplrog, niemeyer: catching up: I don't care about my name on the merge btw. what only matters to me is to learn and that the other guys doing the work (ie you), know what I do too. :)17:41
rogniemeyer: pushed17:41
rogmpl: yeah, but it's nice as a historical record :-)17:41
rogniemeyer: how do i create lp:gozk/zookeeper17:45
niemeyerrog: We just have to rename the series.. let me do that17:46
rogniemeyer: ah, ok. i just pushed to ~gophers/gozk/zookeeper17:47
niemeyermpl: Thanks, but it's just honest that we have your name in the merge proposal17:47
niemeyerrog: Beautiful, if I haven't screwed up anything, it should all be working17:48
mplniemeyer: sure. as long as it's not a burden on the workflow.17:49
rogniemeyer: all seems good. goinstall, cd $GOROOT/...; gotest, all clean17:49
niemeyerWoohay17:52
mplniemeyer: I grepped for zk and zookeeper in lp:juju/go and found nothing relevant. I suppose I shall leave that one alone then?18:05
m_3jcastro: yo... about to talk to upstream voltdb devs about charming... you wanna include anything?18:11
rogi'm off now, see y'all tomorrow.18:12
m_3rog: 0/18:12
mplbai18:18
rogniemeyer: i said ec2-ec2test was next, but actually go-juju-initial-ec2 is before that, and is more central (there are some comments there from fwereade that need thinking about too)18:22
niemeyerrog: No worries.. will look at that one18:33
marcoceppiSo, apparently you can pass assoc arrays to bash functions. My whole morning is shot18:39
niemeyerFolks, I have a doctor appointment, so leaving a bit early today.18:45
niemeyerWish me luck. ;)18:45
m_3niemeyer: luck!18:48
SpamapSmarcoceppi: wha?18:48
jcastrom_3: not really, invite them along to charm school if they want18:48
SpamapSq/win 4518:49
SpamapSdoh18:49
marcoceppiSpamapS: can't pass associative arrays to a bash function18:49
SpamapSmarcoceppi: the moment you use arrays in bash.. you should start thinking about the rewrite in python/ruby/perl ;)18:50
marcoceppiSpamapS: heh, yeah. I tried moving what I was doing wit templating into a bash function. If only I could pass assoc arrays it would be perfect.18:51
SpamapSmarcoceppi: you may be overthinking it18:56
marcoceppiThis is what I have now, if you want to take a look18:56
m_3marcoceppi: unfortunately the only associative array available is the environment itself... :(  I guess that gets "passed" everywhere tho18:56
SpamapSyeah don't be mucking with global18:57
* m_3 sigh...18:57
SpamapSno sigh.. this is why we have better languages. :)18:57
m_3true18:57
SpamapSOh and you can, btw, pass in a bunch of local variables to be set.. its evil.. but eval lets you do basically anything. ;)18:57
m_3it's frustrating sometimes... because it's _almost_ a real lang :)18:57
marcoceppihttp://paste.ubuntu.com/753978/18:58
marcoceppiIt was an attempt to make a quick template parser for charm-helper18:58
marcoceppisadly, it stops just short of working18:58
SpamapSso...there may be a way yet to do this18:59
SpamapSremember that functions have their own stdin/stdout18:59
SpamapSso don't bother separating the variables/template18:59
marcoceppiI thought about using a json parser, but then backed away slowly18:59
SpamapSwhat you really want to do is handle the file bit of the template.. not the template itself18:59
SpamapSreplace_file /etc/mysql/my.cnf <<<EOF19:00
SpamapSor rather19:00
SpamapSch_replace_file19:00
SpamapSmarcoceppi: really tho.. I'm hesitant to encourage this level of logic in shell :)19:01
marcoceppiSo have the file come via stdin then each param is a string replace? ch_parse_tpl key1 val1 key2 val2 < /file/path.tpl19:08
marcoceppiI think this idea is a bust though, at least in charm-helper terms for now19:09
jcastroSpamapS: hey let's clear up the scheduling for SCALE, he has the room set aside all day but we don't need it that long right?19:12
jcastroI was thinking like, 2-5pm or something like that?19:12
SpamapSjcastro: indeed, also do we have any idea if we'll have a chance to talk about it earlier in the day?19:13
SpamapSmarcoceppi: no, just do the variable substitution in calling code19:13
jcastroSpamapS: ok, I will fire off another email to him, but we'd want only like a few hours in the afternoon right?19:13
SpamapSmarcoceppi: for looping.. you're already pushing the limits of shell.19:13
SpamapSjcastro: I think so yes19:14
SpamapSjcastro: make it easy for people to attend for 1 hour and still get to the other talks going on at the same time.19:14
SpamapSjcastro: I feel like we can make use of the room earlier in the day too though.. call it the Juju lounge or something. :)19:14
marcoceppiSpamapS: Bash can handle it!! http://www.youtube.com/watch?v=BhsTmiK7Q2M19:14
SpamapSplease summarize19:15
SpamapSI refuse to watch videos about anything except babies/puppies/cats19:15
jcastrocharmers: incoming status.net charm!19:15
* SpamapS braces19:16
jcastroSpamapS: ... and time for newbie question.19:19
jcastroSpamapS: so you know how mediawiki we can add haproxy and scale the web part with add-unit.19:19
SpamapSjcastro: yes19:19
jcastrodo we have a special designation for charms that allow that vs. charms that are just "single-stack" I guess19:19
jcastroI was thinking for best practice for charms, we should encourage relationships with things that allow charms to scale up19:20
jcastroso like "be add-unit friendly"19:20
SpamapSwell mediawiki is an app that has this built in19:22
jcastroah ok19:22
SpamapSit has nothing to do with the charm19:22
SpamapSwe have discussed giving charms some metadata suggesting min/max units19:22
SpamapSso that people don't add-unit on a stateful service and screw themselves over19:23
hazmatSpamapS, wrt to that.. take something like mysql which can assume either a master or slave, in master mode it really only accepts a single unit, but slave can have multiple19:45
hazmatalthough in that context, it seems like it might be better to separate out the slave as a separate charm19:45
_mup_Bug #897834 was filed: charms should be able to spec max unit and maybe step <juju:New> < https://launchpad.net/bugs/897834 >19:48
SpamapShazmat: the way replication works now, same charm, separate service19:51
hazmatSpamapS, right, but if we wanted to support that max unit metadata for the charm it would be splitting it out19:51
SpamapShazmat: I think for mysql, such a thing is not as useful.19:55
SpamapShazmat: but for say, game server charms it makes some sense.19:56
hazmatSpamapS, why wouldn't it make sense for the mysql master, isn't the reasoning the same?20:08
SpamapShazmat: I don't want two charms for that. I'd prefer to have a mysql charm which is capable of being morphed from a slave into a master.20:09
hazmatSpamapS, hm.. morphing is a good point, but if has more than one unit when it morphs its an unknown state afaics20:11
SpamapShazmat: thats ok, we can promote the leader, and let the other two pound sand.20:13
_mup_juju/rest-agent-api r403 committed by kapil.thangavelu@canonical.com20:13
_mup_rest spec20:13
_mup_juju/support-num-units r417 committed by jim.baker@canonical.com20:49
_mup_Merged trunk20:49
jimbaker hazmat, with ref to https://code.launchpad.net/~jimbaker/juju/support-num-units/+merge/81660 and your point about error handling on removing service units: using the analogy of rm in the shell, juju remove-unit should remove all the units it can in the list, logging any it can't remove (invalid name, not found, etc)21:45
hazmatjimbaker, i'm not sure rm is a good analogy, but that behavior seems reasonable, currently its an exception on first failure21:54
jimbakerhazmat, exactly21:54
hazmatjimbaker, i don't follow21:54
jimbakerhazmat, i'm just agreeing with your statement that it stops on first failure for juju remove-unit21:55
hazmatrm will also do the same21:55
jimbakerhazmat, no, it will remove the files it can in a list, reporting the ones it cannot21:56
jimbakerhazmat, re whatever way we will go, i will simply add to the api change thread so it can be properly agreed upon21:58
hazmatjimbaker, rm will error out if an encounters a file it can't remove21:59
hazmatjimbaker, i guess not22:01
hazmatnm22:01
hazmatjimbaker, but yes that sounds like reasonable behavior, report errors after acting upon those that can be acted upon22:02
jimbakerhazmat, so we have two things: 1) remove files that it can; 2) report a non-zero status code22:02
jimbakerhazmat, cool22:02
SpamapShazmat: any luck on precise? juju seems totally broken on my precise box22:02
jimbakeri mean of course, remove service units that it can :)22:03
SpamapShazmat: http://paste.ubuntu.com/754204/ .. thats just running 'juju status' on my precise box22:19
marcoceppim_3: (or anyone) how did you deal with unattended installs and debconf?22:20
SpamapSmarcoceppi: the default frontend is noninteractive, so it should just choose the default22:21
SpamapSmarcoceppi: or rather, it is explicitly set that way in juju22:21
marcoceppiI need to override a default selection22:21
SpamapSdebconf-set-selections22:22
marcoceppihow do I know what selection to set?22:22
SpamapSdebconf-get-selections ? ;-)22:22
marcoceppiI guess that's the question I meant to ask22:22
marcoceppiI checked :)22:22
SpamapS/var/lib/dpkg/info/$packagename.template should have the questions that will be asked22:23
SpamapSafter unpack of the package22:23
hazmatSpamapS, doh.. forgot about it, my instance is still running though, un momento22:23
marcoceppiinteresting22:25
m_3marcoceppi: notice that it does this in your fork https://gist.github.com/133658522:35
marcoceppiyeah, but I can't figure out where this selection is. It doesn't show up in the template22:35
m_3debconf-get-selections | grep <someapp>22:37
m_3might catch it ift's in an aux package22:38
marcoceppiAh, there we go. I needed debconf-utils22:38
marcoceppiCoooool beans lets try this out.22:39
jimbakerhazmat, i'm going to suggest that the behavior in the branch be maintained. the reason is that there's precedent in juju terminate-machines to fail upon the first error22:40
hazmatjimbaker, fair enough22:46
SpamapSoh man, I miss my 40 core openstack cloud22:50
SpamapSprovisioned hadoop so fast22:50
_mup_juju/support-num-units r418 committed by jim.baker@canonical.com22:50
_mup_Review points22:50
moozzbootstrap is giving me some pain23:04
moozzCould not find any Cobbler systems marked as available and configured for network boot.23:05
moozzanyone help?23:05
moozzsux because cobbler is pushing them out23:05
_mup_juju/trunk r419 committed by jim.baker@canonical.com23:05
_mup_merge support-num-units [r=fwereade,hazmat][f=809599]23:05
_mup_Modified juju add-unit and juju deploy to take --num-units/-n option;23:05
_mup_juju remove-unit takes a list of service unit names to be removed.23:05
moozzI am using latest ubuntu server btw23:06
moozzthe error comes in when I run juju bootstrap23:07
moozzanyone able to offer some pointers?23:08
moozzSo I would have thought to make a cobbler system available I would enable the network boot flag for a system and then run juju bootstrap onece23:15
moozz?23:15
moozzanyone know much about this stuff?23:16
_mup_juju/ssh-passthrough r413 committed by jim.baker@canonical.com23:28
_mup_Review points23:28
_mup_juju/ssh-passthrough r414 committed by jim.baker@canonical.com23:33
_mup_Resolved conflicts23:33
hazmatmoozz, you also need to setup it up with a management class that juju is using23:36
_mup_juju/trunk r420 committed by jim.baker@canonical.com23:37
_mup_merge ssh-passthrough [r=fwereade,hazmat][f=812441]23:37
_mup_Modified juju ssh to enable standard ssh arguments, by passing them23:37
_mup_through to the underlying ssh command.23:37
jimbakerhazmat, originally i proposed (i think from a recommendation by m_3 ) that juju scp canonicalize relative paths under /var/lib/juju/units/SERVICE-UNIT. however, this has two issues. 1) this path is owned by root, not the ubuntu user. 2) this is different for machine IDs, which uses /home/ubuntu, since there's no real good default23:46
jimbakerso i propose a simple fix: all relative paths should be with respect to /home/ubuntu, that is default scp behavior23:47
m_3moozz: sorry, haven't worked with juju on bare metal yet23:47
SpamapSmoozz: acquired-mgmt-class and available-mgmt-class need to be setup .. juju will only take machines if they are in available-mgmt-class23:47
hazmatSpamapS, think i've got most of  the test failures on precise fixed, mostly it was timeouts due to status test setting up a large tree, i did find two minor fixes for tests that weren't running predictably 100%23:51
hazmatdoing one more full run to verify23:51
hazmatjimbaker, sounds reasonable23:52
hazmatjimbaker, i believe ssh does the same23:52
hazmatjuju ssh that is23:52
hazmatSpamapS, what kind of box was that 40 core? and where cann i get one? ;-)23:53
jimbakerhazmat, cool. i will send out the email about this command, just found it when i was verifying some examples on the proposed api change. i had full mocks. but apparently i had missed when i actually tested against ec223:53

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