/srv/irclogs.ubuntu.com/2014/02/15/#juju.txt

chris38home_marcoceppi, don't seem on precise00:28
marcoceppichris38home_: It might not be available yet then00:28
chris38home_is it a way in a bundle to say --to lxc:0 ?00:30
hazmatcjohnston, pong00:47
=== zz_mwhudson is now known as mwhudson
=== CyberJacob is now known as CyberJacob|Away
=== mwhudson is now known as zz_mwhudson
=== freeflying_away is now known as freeflying
=== CyberJacob|Away is now known as CyberJacob
=== CyberJacob is now known as CyberJacob|Away
=== JoshStrobl-afk is now known as JoshStrobl
=== Ursinha is now known as Ursinha-afk
=== freeflying is now known as freeflying_away
=== Ursinha-afk is now known as Ursinha
imhotephello, how do I update code after I deploy with juju ?17:33
JoshStroblimhotep: Are you referring to Charms that you have created and wishing to update, charms you've deployed with Juju that aren't yours?17:35
marcoceppiimhotep: which code, the charm or the software?17:35
JoshStroblmarcoceppi: Lemme tell you, setting up vagrant and grabbing the Vagrant box for Ubuntu Server w/ Juju is sooooo much easier than manually setting up my own VM :D17:39
marcoceppiJoshStrobl: yeah, that's why we pursued that in the first place, we really should promote it more17:40
JoshStroblmarcoceppi: That said, out of curiousity, any reason why LXC is being promoted without using some nice abstraction layer like Docker (since with Docker you can have a Dockerfile that sets everything up as well)17:40
marcoceppiJoshStrobl: well, because juju talks to LXC directly, there's no need to use an abstraction layer like docker17:41
marcoceppijuju /is/ docker in this case, only docker + much more17:41
marcoceppiand the charm is the dockerfile17:41
imhotepJoshStrobl, marcoceppi: software. I believe charm will be frozen since it works (I know there is an upgrade-charm)17:41
marcoceppiin very /very/ loose terms17:41
hazmatimhotep, upgrade-charm17:41
imhotepbasically I want to trigger config-changed to force an update17:42
hazmatimhotep, or for software installed by charm, it should ideally have a config option17:42
marcoceppiimhotep: it depends on the charm, but some expose a version configuraiton option which allows you to move between versions of the deployed software17:42
JoshStroblmarcoceppi: I suppose but until LXC is really the more promoted method, things are going to be virtualized using Vagrant + VirtualBox, which isn't as "bare-metal" as LXC17:42
hazmatJoshStrobl, because juju and its lxc support pre-date docker by quite a while17:42
imhotepok it sounds like the one I am using doesn't have that ( I am using the nodejs one)17:43
marcoceppiJoshStrobl: the vagrant box simply starts an Ubuntu machine with Juju, LXC, and the local provider enabled17:43
imhotepit has a crontab option that updates code on frequent basis (if user sets it)17:43
JoshStroblmarco: I see.17:43
marcoceppiimhotep: ah, yeah, that doesn't really have a version config, you'll need to use the crontab config17:43
marcoceppiJoshStrobl: it's the simplist solution to "how do I support LXC on Mac and Windows"17:44
imhotepwhich means I can't really control right ? crontab would fetch latest code every n seconds/minutes/...17:44
marcoceppiimhotep: yes, there is work being done on the nodejs charm to make it more responsive to users17:45
imhotepah cool17:45
JoshStroblmarcoceppi: Of course, since Vagrant is multi-platform, unlike Docker (LXC) which is just now getting Mac support. Not that I have anything against Vagrant, seems to accomplish the same as Docker with some quirks (and Vagrantfile syntax is more complex).17:45
marcoceppiJust like juju + LXC, Vagrant also pre-dates Docker ;)17:46
JoshStroblBut yea, I was just curious. Figured it never hurts to ask questions, learn along the way and maybe use that knowledge in the future.17:47
marcoceppibut yeah, we only use the Vagrant box to spin up an Ubuntu machine so you can use juju + LXC17:47
hazmatJoshStrobl, where do you see docker getting mac support?17:47
JoshStrobluno momento17:47
JoshStroblhttp://docs.docker.io/en/latest/installation/mac/17:48
JoshStroblIt's really recent17:48
JoshStroblhttp://blog.docker.io/2014/02/docker-0-8-quality-new-builder-features-btrfs-storage-osx-support/17:48
hazmatJoshStrobl, that's just downloading a linux a vm to run lxc/docker in17:48
JoshStroblhazmat: Yes and Vagrant utilizes VirtualBox as well to run lxc, not much different.17:49
hazmatJoshStrobl, yes.. there both using vagrant.. i though you meant some form of native support17:50
hazmatdocker notionally has mentioned they'd like to support other containers then lxc17:50
hazmater.. s/vagrant/virtualbox17:50
JoshStroblhazmat: Native support in Mac OS X for Linux tech? Haha, don't we all wish? :P17:50
hazmatJoshStrobl, well.. solaris have zones, freebsd have jails.. osx has some support for chroots17:51
hazmatand is based on freebsd userspace.. ie tools like jailkit17:52
hazmatnot quite the same though17:52
marcoceppihazmat: seems like they'd just have the "providers" as plugins like Vagrant, so you can say run against X container and just abstract an API for provider plugin17:53
cjohnstonhazmat: hey! question for ya.. IIRC you had recommended to us that for our automated testing we don't destroy the bootstrap node for speed.. we have been doing that, however after making a change to one of our charms we started to get errors with our testing.. it appeared as though we were using a cached charm for deployment or something.. if we killed the bootstrap node and then redeplyed the tests ran with no17:55
cjohnstonerrors. is this expected?17:55
hazmatcjohnston, hmm..17:55
hazmatcjohnston, so your modifying the charm without incrementing the version?17:55
cjohnstonhazmat: possibly. I don't know if the version changed or not17:56
hazmatcjohnston, yeah.. juju will internally cache the charm with the given revision17:56
hazmatcjohnston, i filed a bug for this in the api fwiw https://bugs.launchpad.net/juju-core/+bug/119488017:56
cjohnstonhazmat: so if we changed the charm version number it should have worked17:56
hazmatcjohnston, yeah.. you can also deploy with -u which will do it for you17:57
cjohnstoncool. thanks17:57
marcoceppihazmat: I thought -u only worked on local?17:59
hazmatmarcoceppi, that's true, but how else would the charm change without a revision increment18:00
marcoceppihazmat: juju deploy --repository . local:<charm> and not bump the revision file?18:00
hazmatmarcoceppi, that's what -u is for18:00
marcoceppiOH local charm, I thought it only worked on local provider18:01
marcoceppiI got my locals mixed up18:01
hazmatmarcoceppi, no worries.. so digital ocean plugin is looking good.. if your up for testing.. one issue thats preventing release is the precise images there need some massage before use.18:02
marcoceppihazmat: I'm always down for testing18:02
hazmatmarcoceppi, oh.. it also needs a one-line patch against core to fix a bug in manual provider (https://bugs.launchpad.net/juju-core/+bug/1280432) .. latest is pushed to https://github.com/kapilt/juju-digitalocean18:06
marcoceppihazmat: I'll go ahead and compile juju then18:06
hazmatmarcoceppi, cool, thanks.. i'll try to plug away at the precise image issues. basically they need an apt-get update/upgrade cycle before juju talks to the machine.18:09
hazmati've been keeping away from the juju api client so far, but it would be the easiest way to resolve this.18:09
marcoceppihazmat: well, shouldn't the manual provider do that?18:14
hazmatmarcoceppi, no.. it tries not to perturb machines without cause.18:14
marcoceppiah18:14
hazmatmarcoceppi, the api for manual provisioning it has some knobs around package install (which i use for my fast lxc provider) but this one is needed a bit earlier in the install cycle.18:16
hazmatmostly the providers rely on cloudinit behavior here18:16
=== CyberJacob|Away is now known as CyberJacob
lazyPowerhazmat: is the plugin currently available in pip?19:24
hazmatlazyPower, not yet.. just registered it :-)19:24
lazyPowerI didn't think so :) just confirming. Following along at home through the readme19:25
hazmatlazyPower, it works welll enough for 13.04/13.10 atm, but till it solid on precise there's not much point to pushing it19:25
hazmatlazyPower, still in pre-release atm19:25
lazyPowerright. I'm a saucy user19:25
lazyPowerso i'll clone it and go from there19:25
hazmatlazyPower, well its more about the instances then the client version19:25
hazmatlazyPower, there aren't many charms for non-precise in the official charms.19:25
lazyPoweroh, you mean their images. Ok19:25
lazyPowerright19:26
lazyPowerwell its easy enough to pull a precise image, change the series and do a local charm deployment19:26
hazmatlazyPower, for a power user like yourself :-) sure... but goal is end users.19:27
lazyPowerthats, quite possibly the nicest thing anyone has ever said tome19:28
lazyPowermarcoceppi: buy this guy a beer for me.19:28
hazmatmarcoceppi, they have this awesome beer on tap @ lost dogs.. abraxis :-)19:28
marcoceppihazmat: I guess we'll have to go drink up again soon19:29
lazyPowerWe should do a drinkup soonish19:29
hazmatmarcoceppi, lazyPower if you have DO support accounts, i'd appreciate an upvote on http://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/5524786-update-ubuntu-12-04-3-images-to-12-0-4-420:27
marcoceppiyou have my votes20:27
lazyPowerhazmat: all 3 of mine just joined the choir20:28
hazmatmarcoceppi, lazyPower precise issue fixed in client provider.. and behold.. wordpress charm running on DO http://192.241.155.235/20:58
lazyPowernice!20:59
marcoceppihuzzah20:59
hazmatpushed latest, and taking a break21:00
marcoceppilazyPower: you going to be around in about 10 mins? I think I found the issue with mysql need someone to test21:19
lazyPoweryep21:19
hazmatmarcoceppi, lazyPower confirmed btw that the do provider should work with the dev ppa version of juju 1.17.2 .. but needs --upload-tools on juju docean bootstrap21:35
lazyPowerhazmat: i'll be on my desktop rig in about 20 minutes and i'll try my hand at bootstrapping21:35
marcoceppihazmat: sweet, I'll give it a go after getting the mysql charm patch up21:37
lazyPowermarcoceppi: you pushing those changes to GH? LP is going offline in 10 minutes.21:50
marcoceppilazyPower: already pushed21:50
lazyPowerbranching now21:50
marcoceppilazyPower: https://code.launchpad.net/~marcoceppi/charms/precise/mysql/actually-start-mysql/+merge/20659721:50
marcoceppihazmat: I get a missing api creds even though i have a ~/.juju/docean.conf21:51
hazmatmarcoceppi, updated the readme.. only env vars at the moment21:51
marcoceppioh, hah, cool21:51
hazmatalso dropped a release on pypi so the readme should work..21:52
marcoceppihazmat: huh, still not working21:52
hazmatmarcoceppi, pastebin?21:53
marcoceppihazmat: sure, what would you like?21:53
hazmatmarcoceppi, just command and output21:53
marcoceppihazmat: http://paste.ubuntu.com/6939820/21:54
hazmatmarcoceppi, hmm.. and values look sane if you do $ env | grep DO_21:55
hazmatthe DO_CLIENT_ID should be the short string21:55
marcoceppihazmat: apparently just sourcing the conf wasn't enough, I had to export each line21:57
marcoceppinow I get this http://paste.ubuntu.com/6939829/21:57
marcoceppidid a git pull and install for latest21:57
hazmatmarcoceppi, hmm.. argh.. that's probably a delta from the old dop client and the current api it has in github trunk.21:58
hazmatmarcoceppi, i'm going to resolve i think my just having a separate do client internal to the plugin, but for now.. resolution is grab a copy of https://github.com/ahmontero/dop and run python setup.py develop in it21:59
hazmator python setup.py install21:59
hazmator maybe i should switch out to the other python digital ocean client lib22:02
hazmatfwiw here's some relative timing and usage for bootstrap + add-machine http://pastebin.ubuntu.com/6939864/22:06
lazyPowermarcoceppi: success on the mysql charm in HP, checking local and amazon now22:06
marcoceppihazmat: bootstrap still fails even with latest dop22:10
marcoceppiusing what's in the git repo22:11
hazmatmarcoceppi, same error?22:12
marcoceppihazmat: yeah22:12
* marcoceppi digs a bit22:12
hazmatmarcoceppi, you may have to kill the other dop that got installed to /usr/local/lib/python2.7/dist-packages/22:12
hazmatmarcoceppi, surprised your not using virtualenv..22:12
marcoceppihazmat: I still haven't gotten used to virtual env22:13
marcoceppiI just setup.py install stuff, then blow away /usr/local/... when I get tired of it22:13
marcoceppithough I might try venv next22:14
hazmatmarcoceppi, aha.. sorry i see the issue22:14
hazmatmarcoceppi, unset DO_SSH_KEY22:14
marcoceppihazmat: ah, I still have to switch to null provider?22:15
marcoceppierrrr manual provider22:15
hazmatmarcoceppi, yes.. whatever env your pointing to must be a null/manual provider22:15
marcoceppihazmat: so what should the environments.yaml stanza look like?22:17
hazmatmarcoceppi, see readme22:17
marcoceppinvm, found the readme22:17
marcoceppiokay, moving now22:17
hazmatmarcoceppi, cool.. also -v gives quite a bit more  output then the default.. which is terse22:19
marcoceppihazmat: good to know22:19
marcoceppihazmat: if bootstrap fails, it should capture that failure and destroy the instance it spun up22:20
hazmatmarcoceppi, noted. also if bootstrap fails. you have to manually kill a directory.. boot-$envname in $JUJU_HOME22:21
* hazmat files bugs22:21
marcoceppihazmat: yeah, just found that :)22:21
marcoceppihazmat: you tracking bugs on gh? I can start putting those there as I find them22:21
hazmatmarcoceppi, yup22:22
hazmatmarcoceppi, https://github.com/kapilt/juju-digitalocean/issues/22:22
lazyPowermarcoceppi: as soon as launchpad comes back i'll +1 approve the MP. Works on all the providers I have access to.22:23
lazyPowergreat work22:23
stokachuhas there been any interest in perl bindings for juju?22:23
marcoceppilazyPower: are you verifying that /usr/bin/mysqld is running on each stand up?22:24
lazyPoweri am22:24
lazyPowermarcoceppi: standup, validate service is active, add relational charm mediawiki and wordpress22:26
hazmatstokachu, not really.. but if scratches an itch i'd say go for it.. although.. the ideal client technically would be callback or poe based for perl.22:26
lazyPowerall of the above completed without issue22:26
marcoceppilazyPower: oh, nice22:26
marcoceppi\o/22:26
stokachuhazmat: ive got a non-blocking library i started22:26
hazmatstokachu, not idiomatic though.. the websocket is async bidi..22:26
hazmatstokachu, cool22:26
marcoceppiI mean, it's not really a fix more than it is a huge bandaid until the re-write22:27
stokachuhazmat: https://github.com/battlemidget/perl-juju22:27
stokachuim basically using your api calls as starting point22:27
lazyPowerstokachu: epic github handle22:27
stokachubut its async22:27
stokachulazyPower: haha thank you :)22:27
lazyPowermarcoceppi: I feel like I should go back and add percona tests to some of the charms i've written amulet tests for after our standup on Friday22:28
stokachuhazmat: it uses anyevent which can interface with poe, ev etc22:28
hazmatstokachu, that still looks a bit fishy re the async bits22:28
marcoceppilazyPower: really, the mysql charm needs to make sure percona supplies the exact things the interface for mysql implements22:28
hazmatstokachu, your doing sync on top of async loop expecting sync usage22:28
marcoceppilazyPower: the burden is on the MySQL charm, not on other charms22:28
hazmatstokachu, afaics.. imagine do 5 calls in a row, and getting responses back in different order22:29
stokachuhazmat: thats what the $done = AnyEvent->condvar handles22:29
stokachuhttps://github.com/battlemidget/perl-juju/blob/master/lib/Juju/RPC.pm#L83-L9422:29
hazmatstokachu, yeah.. looking at it.. my perl .. is rusty :-) i generally pull out the camel book22:30
stokachubut its still in early stages so i could be missing soemthing22:30
stokachuso basically condvar handles each session separately22:30
stokachuso even though the calls may be out of order the data responds properly22:31
stokachuso far anyway22:31
hazmatstokachu, cool22:31
stokachuive still got a lot to learn on event programming apparently22:31
stokachuhazmat: also understand the hybi-13 now22:32
hazmatstokachu, its why goroutines win22:32
stokachuhazmat: yea go does it right22:32
stokachuso much easier22:32
hazmatpython gevent does okay.. but baked into the language makes things much nicer22:32
stokachuagreed22:32
hazmats/gevent/greenle22:32
stokachui like python tornado22:33
stokachuat least for understanding python events22:33
hazmatstokachu, also nice, but its callback with syntax sugar around yield as coroutine.. py3.4 asyncio is much the same.. tornado is nice though22:33
hazmatgui uses it to proxy intercept augment juju-api22:33
stokachuah nice22:34
stokachuhazmat: do you think ill get lashes if i blog out the perl bindings at some point22:34
stokachumaybe when it reaches 1.022:34
hazmatstokachu, lashes.. no way. code/results == good.. osource .. early and often :-)22:35
stokachuhazmat: hah ok cool22:35
hazmatstokachu, to quote gkh's response back to me on debating/patching kdbus.. "That's why the Linux kernel mailing list very rarely has "idea" discussions, real patches are what matters."22:36
hazmats/patches/source22:36
hazmatfor the same effect22:36
stokachusweet22:36
stokachui like that philosophy22:37
hazmatstokachu, so hyb13 vs rfc?... delta == ?22:38
stokachuhazmat: so i think hyb13 == rfc645522:38
stokachui was just confused on those versionings22:38
hazmatstokachu, yeah.. that's basically what i got out of it.. delta being grammatical/syntax on the way to publication afaics.22:39
stokachuthe websocket library from go.net is rf6455/hybi13 compliant22:39
stokachuyea i read the diff between them22:39
stokachuand it was just grammatical stuff22:39
hazmatmarcoceppi, any progress?22:39
stokachuwhat i dont get is how to check out what version of the libraries are used within juju22:40
stokachuit just points to p.google.com/go.net/websocket for example22:40
hazmatstokachu, godeps are a state of sadness.. juju-core implements its own dep rev mechanism22:41
hazmatits in dependencies.tsv in root dir of checkout of juju-core22:41
stokachuah ok that helps22:41
lazyPowermarcoceppi: http://blog.dasroot.net/juju-plugins-ahoy/22:44
hazmatlazyPower, so.. how do plugins install in that model.. if they have deps?22:46
lazyPowerhazmat: we haven't gotten that far with the plan22:46
lazyPowerthe idea originally was to build an API service that works similar to npm that fetches the plugin, and the plugin registers the dependency chain22:47
lazyPowerbut with only 5 plugins to start, we haven't exactly got a need for something that complex22:47
hazmatlazyPower, there are dozens of plugins..22:47
lazyPowernot in the juju/plugins repository22:47
hazmatlazyPower, then its not really the plugins repository is it22:47
lazyPowerdepends on your definition of a repository22:47
lazyPowerOne of the ideas I heard was to change it to an organization, and give each plugin their own repository, that way you could warehouse all the dependencies together. But the juju-plugin-plugin aims to solve some of those concerns.22:49
hazmatwell a git repo by itself is just a name grab.. the need for more exists, the question is discovery.. minus the npm (cross-language arbitrary install) .. the easiest thing is to just document location via docs page on plugins imo.22:49
lazyPowerthats cumbersome to update, and invalidate old plugins that are no longer useful as features get expanded in core22:50
lazyPoweri disagree with it being "the easiest"22:50
lazyPowerin the first run, yes. that would be insanely easy. When you have 50+ plugins - nope.22:51
hazmatlazyPower, the alternative you proposed was documenting them in that plugin repo.. which amounts to the same issue.22:51
lazyPowertrue, but this is step 122:51
marcoceppihazmat: if you plugins has deps, package it up like quickstart22:51
hazmatmarcoceppi, again discovery is the question22:52
marcoceppihazmat: I forsee having plugins in their own github repos soon, and a central registry which will likely have a way to know "how to install plugin"22:52
marcoceppihazmat: yay, I deployed wordpress too22:53
stokachuis there a system path that searches for plugins or just ~/.juju-plugins?22:53
hazmatmarcoceppi, YIPEE :-)22:53
hazmatstokachu, PATH for juju- prefix commands22:53
marcoceppistokachu: plugins work as long as they're in PATH22:53
hazmatstokachu, juju help plugins22:53
marcoceppithis just adds ~/.juju-plugins to path22:54
stokachuah ok reading now22:54
hazmatstokachu, only real req on them is --description return one liner .. the rest is per the executable logic.22:54
stokachugotcha22:55
marcoceppistokachu: and have a --help flag22:55
hazmatjuj22:55
hazmatoops22:55
stokachumarcoceppi: ok22:55
hazmatmarcoceppi, really that's a  best practice/suggestion.. not a req afaics22:56
marcoceppihazmat: juju help <plugin> invokes it22:56
hazmatmarcoceppi, cool, something new everyday :-)22:56
hazmatmarcoceppi, re destroy error, you can rerun22:57
hazmatmarcoceppi, i need to introduce a sleep or auto-retry there22:57
hazmatmarcoceppi, did you ever find that biz card?23:00
marcoceppihazmat: yeah, it's the one you've got23:00
hazmatack.. bummer.. oh well hopefully more response with working code or via twitter23:00
marcoceppihazmat: yeah, could berate over social media23:07
marcoceppilazyPower: thanks, merged and should be in the store soon23:09
lazyPowerawesome, now that i know LP is back online, just commited my approval review23:10
lazyPowerOh.. it stored it when they were in maintenance mode. thats nice to know it queues23:10
=== CyberJacob is now known as CyberJacob|Away

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