/srv/irclogs.ubuntu.com/2016/03/02/#juju.txt

=== zenlot_away is now known as zenlot
=== natefinch-voting is now known as natefinch
=== bruno is now known as Guest56910
=== scuttlemonkey is now known as scuttle|afk
metsukeIs there a way to get juju to create containers directly on openstack compute nodes rather than creating nova instances on top?06:17
blahdeblahmetsuke: you can either deploy directly to MAAS-deployed nodes, or into LXC containers on those nodes06:19
metsukeblahdeblah: the lxc method is for evaluation though so it is not recommended?  We are trying to cut out the additional layer that Nova creates.06:23
bradmmetsuke: do you mean using lxc instead of kvm for nova instances?06:24
blahdeblahI'm not sure whether the LXC method is officially supported, but it definitely works, and there is an LXD version coming in 16.04.06:25
* blahdeblah defers to bradm on this :-)06:25
metsukebradm: It's more like not using nova instances at all06:25
metsukemaybe this isn't really a problem06:25
bradmmetsuke: there's a nova-compute-lxd coming06:26
metsukebut it just seemed overbearing for juju to create 50 separate vms for separate containers06:26
hloeungchange OpenStack to use the LXC driver (nova.virt.lxc.LXCDriver)? I haven't tried it myself, but https://wiki.ubuntu.com/OpenStack/LXC might help06:26
blahdeblahmetsuke: Why do you want to use openstack compute nodes without nova?  The point of nova is to make it easy to create your compute instances, whether they're containers or VMs.06:27
metsukeblahdeblah: well, we wanted everything from Openstack except Nova, but it is installed by fuel and juju leverages it automatically06:27
blahdeblahI think you will find the upcoming LXD version of nova that bradm mentioned pretty good.06:28
metsukeok.  Upcoming like mitaka? =)06:29
metsukein terms of scaling charms, my company has always used haproxy to scale horizontally for web apps.  However, just looking at the Wordpress charm, that methodology is very different now.  Should all new, non-inherently scalable, http charms use the same methodology as Wordprerss (apache load balancer?) or is there a Good way to use haproxy?06:41
blahdeblahmetsuke: upcoming in xenial (16.04)06:42
blahdeblahmetsuke: If we're talking about the old public Wordpress charm, it's not a great example.06:42
blahdeblahThe haproxy charm has relations that you can hook up to anything supporting the http interface.06:43
metsukeblahdeblah: would you recommend that for http scaling as opposed to doing it in-charm?06:44
blahdeblahThat's how we usually do it06:44
metsukecool, it would definitely be easier06:45
blahdeblahIt may work well for you that way, or it may be better to do it in-charm, depending on your application.06:45
blahdeblahBut the general idea is that charms are composable pieces that can be hooked together into application suites06:45
metsukeCan ironic be in place of MAAS for cutting nova vm's out of the equation?07:19
=== Guest56910 is now known as BrunoR
jamespagegnuoy, if you are around - https://code.launchpad.net/~james-page/charm-helpers/fix-ssl-certs/+merge/287639 could do with a review10:34
gnuoyjamespage, +110:35
jamespagegnuoy, thankyou10:36
gnuoynp10:36
magicaltroutthis looks rubbish, but is actually pretty cool: http://ibin.co/2Yr5fKlDWBeD the first Juju controlled PDI ETL cluster11:12
jamespagegnuoy, wanna do a +2 and landing? https://review.openstack.org/#/c/287087/11:15
jamespageready to go imho11:15
gnuoyjamespage, done11:17
jamespagegnuoy, you have to hit the "workflow +1 as well"11:25
jamespageto move things along...11:25
gnuoyWhat am I =1'ing when I do that>11:26
gnuoy?11:26
jamespagegnuoy, http://docs.openstack.org/infra/manual/developers.html#project-gating11:27
jamespagegnuoy, the +2 is a review; the +1 is actually 'approve'11:27
jamespageworkflow +1 that is11:27
jamespagegnuoy, and job done..11:40
jamespagethanks!11:40
jamespagedosaboy, https://review.openstack.org/#/q/project:%22%255Eopenstack/charm.*%22+status:open is a useful view btw11:46
dosaboyyep i got that thanks11:46
jamespagegnuoy, beisner: pushing up a charmhelpers resync for review/test12:06
jamespagehttps://review.openstack.org/#/q/status:open+topic:charmhelpers-resync12:07
admcleod1magicaltrout: hey! ...i still havent thought of a comeback.12:11
admcleod1lazyPower: some of the times the leadership broke, a force destroy of a machine was involved, other times a service destroy / resolved and no force12:12
magicaltrouthehe12:14
admcleod1magicaltrout: i was introduced to 2 expats here as 'british but doesnt want to be british'. they were not impressed.12:16
magicaltroutare they the expats I see on facebook who don't want refugees coming into the UK whilst they live on the costa del sol? ;)12:17
admcleod1magicaltrout: no.. one was this english artist / yoga teacher who told one of our spanish friends that 'english people are much more interesting' though.. so less beer-drinking-lobster tan but similar amount of strange++12:18
magicaltroutah yes12:19
magicaltroutthose interesting english-folk12:19
magicaltroutof course12:19
admcleod1magicaltrout: i met another english girl here who told me her parents had a place somewhere in the south of mallorca. i asked her: "are there many foreigners there?" and she replied "no, its mostly english"12:19
magicaltroutoooh12:19
magicaltroutthats bad12:19
magicaltroutdid she looks that stupid or just act it?12:20
admcleod1...yes :}12:20
=== admcleod1 is now known as admcleod
admcleodmagicaltrout: nice blog post btw12:23
magicaltroutrandom ramblings on a monday afternoon12:24
magicaltroutfor the people I work with in the "real world" I'm hopefully doing a PDI ETL cluster demo this afternoon if Amazon speeds the f**k up12:25
admcleodhah12:25
magicaltroutnow my charm has leader election, config detecion stuff in, it should be ready for people to test. I'll get it into the listings and worry about unit tests later ;)12:25
admcleodmagicaltrout: what ver juju are you using?12:27
magicaltroutonce juju<->lxd stops messing up my ip addressing, I reckon most of my development workload will switch to some form of charmed up development process12:27
magicaltroutTrunk! :)12:28
jamespagebeisner, getting alot of "ImportError: No module named pika"12:28
jamespagefor amulet test executions....12:28
marcoceppimagicaltrout: Having had to do Pentaho ETL stuff many years ago, I'm curious what you've whipped up12:37
magicaltrouthaving never used PDI clustering before.... so am i12:37
marcoceppias a point of reference, the project I was working on basically piloted pentaho, but ended up making us write our own ETL tool12:38
magicaltroutwell my background for the last decade has been mostly Open Source BI around Pentaho and stuff12:39
magicaltroutI've done some Talend projects, but I absolutely hate the platform12:39
magicaltroutso we mostly end up using PDI12:39
magicaltroutanyway so my plan is thus..... get this deployed which will allow users to either, run upload jobs & transformations and run them via actions or cron tab them for scheduled execution or use PDI Carte as a webservice so people can create stuff in Spoon and either run it as a slave server or, if they want to scale up juju add-unit pdi and run as a PDI cluster12:42
magicaltroutthats phase 112:42
magicaltroutand will give people scale out capabilities and remote execution capabilities with little effort on my/our part12:42
magicaltroutthis pretty much works, i'm just putting some finishing touches to it, like informing the user of the leaders public ip etc12:43
magicaltroutphase 2 will work as a subordinate to the hadoop and yarn charms, because PDI these days has Big Data scaleout stuff that the Hadoop folk use, I've never touched it myself but now I have an excuse to12:44
magicaltroutand you can write MapR transformations within PDI and run them in a Hadoop cluster12:44
magicaltroutso my plan is to create something that allows you to hook it up to Hadoop, at which point it will embed itself like their docs explain, and then allow users to run PDI jobs in the Hadoop/Yarn environment12:45
magicaltrouthttp://ibin.co/2Yr5fKlDWBeD as you'll sorta see here marcoceppi on the left, pdi doing some stuff on the right, carte these days doesn't suck too much and you get some basic webservices with a picture of the transformation you select, the run log, etc12:49
magicaltroutso there might be some scope to write a nice carte UI as well to wrap it all up, but thats somewhere down the road12:49
marcoceppisounds awesome12:50
jamespagemarcoceppi, can you take a peek at https://github.com/marcoceppi/leankit.hostmar.co/pull/3 ?12:50
magicaltroutwell if no one else uses it I certainly will. But in reality it should fit in quite well with the stuff kwmonroe and cory_fu do, so I'm sure once the hadoop stuff is up and running there will be some fun stuff to demo around Hadoop ETL work12:51
marcoceppijamespage: i just opened it up, looking now!12:51
marcoceppimagicaltrout: It's a great solution space. Lots of users and little operational knowledge. So this fits well with the write once use many idea of Juju12:51
magicaltroutyup12:51
marcoceppijamespage: deployed, cheers!12:53
magicaltroutaww marcoceppi12:55
magicaltroutget amazon to up your quote allowance :P12:55
magicaltrout-e +a12:56
jamespagemarcoceppi, working nicely - thanks!12:56
marcoceppimagicaltrout: eu-west-1 is full of a lot of other people12:56
marcoceppimagicaltrout: you might want to try eu-central-1, no one is in it atm. We may need to spin up another AWS account to support all the CDP members12:57
magicaltroutk12:57
marcoceppimagicaltrout: actually, I'm the problem in eu-west-112:57
marcoceppimagicaltrout: let me tear down an old demo12:57
magicaltrouthehe, get back the other side of the pond!12:58
marcoceppimagicaltrout: when at MWC, it was much more convient ;)12:58
admcleodmagicaltrout: + kostas + I ;}12:58
magicaltroutshow off12:59
marcoceppimagicaltrout: I just cleared out 6 instances12:59
marcoceppiwill work with amazon to get better resources13:00
admcleodmagicaltrout: even chocolate blue cheese icecream is all about the showmanship13:00
magicaltroutdon't you worry marcoceppi once LXD stuff is done, I'm all over LXD based development :P13:01
magicaltroutadmcleod: that I can understand13:01
marcoceppimagicaltrout: well you're not the first to hit limits, I've started a dialog with aws13:08
beisnerjamespage, yep that's the amulet smoke not doing the 00-setup bit.   fixed and will recheck those.13:11
beisnerjamespage, ps.  the amulet smoke is live! ;-)13:12
beisnerjamespage, rechecking just this one to confirm, then will rerun the others  https://review.openstack.org/#/c/286451/213:14
lazyPower..chocolate..bluecheese...icecream?13:18
lazyPowerbut...why13:18
magicaltroutyeah13:18
magicaltroutweirdly, everyone else on the table also decided to try it13:18
magicaltrouti was wise13:18
magicaltroutand refused :P13:18
jamespagebeisner, i saw and did some low risk landings on that basis13:19
admcleodactually.. i had some 'white chocolate blue cheese icecream' again in valencia and it was quite nice...13:21
magicaltroutyou disgust me13:21
admcleodthats why im here13:21
magicaltroutthat said13:21
beisneradmcleod, hmmm i'll have to take your word on that13:21
magicaltroutit would certainly be an improvement on white chocolate and american cheese....13:21
lazyPoweri dont know where you're getting this crazy amount of chocolate and cheese, but they really aren't complimentary flavors in my mind13:22
magicaltroutcorrect13:23
admcleodtell that to philadelphia13:23
admcleodor like, cheese cakes13:23
magicaltroutthats not a winning argument13:25
magicaltroutfor starters they aren't blue cheese cakes13:25
magicaltroutthats not to say you can't get such a thing, i'm sure you can13:26
magicaltroutdoesn't make it right though13:26
=== Guest84461 is now known as CyberJacob
jamespagebeisner, guess we can turn off the +1 code review from uosci now right?13:26
* beisner looks13:27
beisneroh sweet!  yep that change landed.13:27
jamespagebeisner, it did - I asked this morning and got perms on the charms-ci group and twiddled things around13:27
jamespageverification is working fine for uosci13:27
beisnerok cool i'll make it so13:28
admcleodmagicaltrout: well.. the second time was good.13:28
beisnerjamespage, fyi, anything that's currenty running will still crvw vote, but new jobs won't13:29
jamespagebeisner, ok13:34
jamespagebeisner, I also have a juju-deployer branch that deals with using anything other than the master branch with git repo's13:34
beisnerjamespage, ah nice.  -b ftw?13:34
jamespagebeisner, yah13:35
jamespagebeisner, https://github.com/openstack/charm-percona-cluster;stable format13:35
jamespagebeisner, also noticed that recheck-charm also gets picked up by the standard check processes as well13:37
beisnerjamespage, yeah it's all regex based.  so, they must be   ^recheck.*13:38
beisnerjamespage, i noticed that too in the sandbox.  but not everyone retriggered on recheck-charm.    i'm going to add charm-recheck and see if that limits the scope.13:39
beisnerjamespage, ok, charm-recheck is hot, and i just did that on:  https://review.openstack.org/#/c/286669/113:45
beisnerif that confirms a-ok, i'll update the comment template.  but recheck-charm will continue to work as well.13:46
jamespagebeisner, I guess that we don't have vast capacity for concurrency atm right?13:52
jamespagecheck is taking >1.5 hrs atm13:52
jamespagebeisner, good - I think not consuming vast amount of openstack resources when we don't need to is optimal...13:54
beisnerjamespage, each check is about 45 min.  i just bumped the concurrency up from 4 to 6.13:56
beisnerjamespage, depending on which charm some are as low as 30 min for lint, unit, charm-single, and amulet-smoke.   that's from the moment the start running of course.13:58
jamespagebeisner, hmm  - test_charm_single: FAILURE14:10
beisnerjamespage, 00:06:10.118 W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/trusty-security/universe/i18n/Translation-en  Hash Sum mismatch14:11
beisnerjamespage, looks like a launchpad ppa blip got a handful of those jobs at about the same time.14:16
magicaltroutokay leadership reactive knowitalls14:42
jamespagebeisner, \o/14:42
magicaltrouti'm clearly not doing something write14:42
jamespageoh crappers14:42
magicaltroutmarcoceppi: I want to set a bunch of variables when the leader is elected and also reset those variables if a new leader is elected14:43
magicaltroutbut14:43
magicaltroutI don't want to set those variables if the leader isn't changed14:43
magicaltrouthttps://gist.github.com/buggtb/328f36919bd637811a61 that was my latest attempt14:44
magicaltroutbut it seems leadership.changed is only called when you update one of the variables14:44
lazyPowermagicaltrout leader-elected14:45
lazyPowerand all followers should just consume the data via leader-get when leader-settings-changed14:46
lazyPowerleader-elected will be run on *any* leader, the first cycle that they get elected. so control clsuter state there. I'm doing something very similar in layer-etcd14:46
magicaltrouthmm14:46
lazyPowerexchange data over peer-relation-joined on first run, then all subsequent cluster status is formed based on data being received from leader-get, as registration is 2 step w/ a http post (Self registration) and then reading cluster data broadcast from the leader.14:47
magicaltroutaccording to the leadership layer it means I don't have to write leader-elected hooks :P14:47
lazyPower@when('leader.elected')  i guess? i'm not sure, i haven't used stubs leadership layer yet14:47
marcoceppimagicaltrout: right leadership.changed is for the settings, not the leader itself14:47
marcoceppimagicaltrout lazyPower there is no leader.elected https://git.launchpad.net/layer-leadership/tree/README.md14:48
marcoceppistub:  ^^ opinions?14:48
magicaltroutnope14:49
marcoceppimagicaltrout: actually14:49
marcoceppimagicaltrout: wouldn't this just work? https://gist.github.com/marcoceppi/d91d6b2cc5072f8204d214:49
lazyPowermarcoceppi - seems like an oversight,  the leader being elected is totally an event we care about14:50
marcoceppimagicaltrout: or do you only want to have the settings sent once?14:50
marcoceppilazyPower: it's not, you care about the state14:50
lazyPowerschenanigans14:50
marcoceppieither you are the leader or you're not14:50
lazyPowerwhat if hte leader changed, and i have stale cluster data?14:50
lazyPowerthat leader-elected state gives me an opportunity to cleanup and reconcile before i declare the current cluster state again, from my leader perspective14:50
marcoceppilazyPower magicaltrout how aobut this? https://gist.github.com/marcoceppi/d91d6b2cc5072f8204d214:51
magicaltroutmarcoceppi: thats sort of what I had before14:51
marcoceppimagicaltrout: right, so I added one more state14:51
magicaltroutbut i seem to get dumped into an endless restart cycle because the leader_set appears to trigger a change even it it remains the same14:51
marcoceppiif the leader changes, that unit becomes the leader and sees it hasn't been configured yet for leadership14:51
marcoceppierr14:52
marcoceppicrap, I rushed that14:52
lazyPowermmhmm14:52
magicaltrouti was playing around with something along your lines marcoceppi with my init=True stuff14:52
marcoceppimagicaltrout: https://gist.github.com/marcoceppi/d91d6b2cc5072f8204d214:52
magicaltroutseems to me it would be good to have a fire and forget call that runs on leader elected14:52
magicaltroutmaybe I'm just lazy ;)14:52
marcoceppimagicaltrout: just set and manage the state instead14:53
marcoceppithat way it'll only be run once if you're the leader and you haven't run through that method yet14:53
magicaltrouthmm didn't thinkg about that14:53
magicaltroutstill need to use states better14:53
magicaltroutthanks marcoceppi I'll give it a go14:53
lazyPowermagicaltrout - or, do the dreaded antipattern of using @hook('leader-settings-changed') and defend the users right to choice :P14:53
marcoceppimagicaltrout: replace "self" with the layer name and you're on your way14:53
lazyPowerrather @hook('leader-elected')14:53
marcoceppilazyPower: no! hooks are for fools14:53
magicaltroutlol14:54
marcoceppilazyPower: and you can't combine with states14:54
lazyPoweronly if you care about stacked decorators14:54
lazyPowerif i have a single method, decorated by @hook('leader-elected') that runs everytime a leader is elected, i've solved this with a one liner14:54
* marcoceppi beats lazyPower with a pillow full of quarters for using @hook14:54
* lazyPower points at the field where his figs are grown14:54
magicaltrouti heard if I mix hooks and states cory_fu will force feed me admcleod's ice cream14:54
lazyPowerbehold my field of figs, notice they are barren14:55
marcoceppilazyPower: however, if you want to update the leadership settings, you can just remove the state14:55
marcoceppilazyPower: don't have to wait for a hook now14:55
=== scuttle|afk is now known as scuttlemonkey
beisnerjamespage, will be retriggering pxc for amulet smoke after resolving an env var that the test expects:  Please set the vip in local.yaml or env var AMULET_OS_VIP to run this test suite15:02
* magicaltrout wonders if he can get around lxd deploying to localhost by blocking up localhost....15:04
magicaltroutbooo15:04
magicaltroutbloody thing15:04
cory_fuHey, sorry I'm late to the leadership party.  Don't use @hook15:04
magicaltrouttold you....15:05
cory_fumagicaltrout: I think you're over thinking it.  You don't need to care specifically about when leadership changes, you just need to react to @when('leadership.is_leader') and @when_not('leadership.is_leader')15:05
magicaltrouthmm15:05
magicaltroutwell i need the leader to broadcast new variables and I need the slaves to pick them up15:05
magicaltroutI also need to trigger a carte restart15:06
cory_fuIn the @when('leadership.is_leader') handler, write the leadership settings.  If they're different, all the peers will get notified that they changed15:06
cory_fuAnd they can then react to leadership.changed15:06
cory_fu(all the peers, including the leader)15:06
magicaltroutokay i'll just put something together and you can tell me if you think it works15:07
magicaltroutthen we'll have a bet :)15:07
magicaltrouthttps://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L113 bit of that cory_fu ?15:09
cory_fumagicaltrout: I was thinking like this: https://gist.github.com/johnsca/8cf0f25cce06c13bdecb15:11
cory_fuAlso, no need to leader_set something that's already in config15:11
magicaltroutgood point15:12
jamespagebeisner, ack15:12
cory_fumagicaltrout: Note the first line.  It's important to use that version of leader_set to ensure the leader gets notified of the settings changes internally15:13
cory_fu(It might get notified by another hook call, but I'm not certain, and it would take quite a bit longer even if it works)15:13
magicaltroutyeah i'm using that one15:13
beisnerjamespage, looks like charm-recheck is the ticket.15:14
jamespagebeisner, awesome15:15
kjackalHi everyone, what is your setup to deploy charms in xenial? Do you use the local provider while in trusty?15:18
stubmarcoceppi, magicaltrout: @when('leadership.is_leader') ?15:19
marcoceppistub: yeah, we moved on a bit from that15:19
stubcory_fu: I was tempted to monkeypatch charmhelpers.core.hookenv, but thankfully thought better of that.15:21
cory_fuI am also interested in kjackal's question about deploying xenial units using local provider on trusty15:21
cory_fustub: :)15:21
magicaltroutright then15:29
magicaltroutcory_fu: this is why i asked the question in the first place15:30
magicaltrouthttps://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L12015:30
magicaltroutpost bootstrap it all sorted itself out15:30
magicaltroutbut then update_master_config is run15:30
magicaltroutwhich triggers a restart15:30
magicaltrouthttps://gist.github.com/buggtb/1cab57c0f1d1d4a7fa9915:31
cory_fumagicaltrout: It should only trigger that if the leadership settings had changed15:31
magicaltroutwell i only have 1 node15:31
cory_fuWhich would imply that it needed to restart15:31
lazyPowerleader-settings-changed seems tor un anytime you leader-set, it doesn't retain the same behavior as relation-set15:32
lazyPowerunless i'm completely mistaken15:32
lazyPowerbut thats what i've seen the last week or so in 2.x land15:32
magicaltroutyeah that was my thinking15:32
magicaltroutits not like the other properties15:32
lazyPowerso i'm 98% certain thats teh case15:32
magicaltroutthis stuff is rexecuted verbatim15:32
lazyPowerand this entire conversation about not caring when leader changes is fud15:32
lazyPowerwell not fud15:32
lazyPowerbut not right15:32
cory_fumagicaltrout: In a meeting now15:33
magicaltroutoh any excuse when you don't know the answer :P15:33
cory_fu:)15:33
cory_fuI haven't tested it, but what you just said doesn't sound right at all, per my understanding.  Maybe stub could help15:33
magicaltroutsure. But I'm siding with lazyPower, leader_set seems to force leadership.changed to trigger15:33
magicaltroutwhich is why it sucks a bit :)15:33
lazyPoweryep15:33
lazyPowerdoesn't matter if the data changed or not15:33
lazyPowerit has different behavior characteristics15:33
magicaltroutsooooo hello stub15:33
magicaltroutdo you have an opinion? :)15:34
lazyPowermagicaltrout what you could do..15:34
lazyPowerthere's a @leader.setting_changed context, you can stuff the data into a cache, and do something like the data_changed bits that cory exposed15:34
lazyPowerso it only does a restart if the leader-data differed from the last hearbeat it got from leader-set15:35
lazyPowers/hearbeat/heartbeat-update-thing-whatever-we-call-this15:35
stubcharms.leadership.leader_set should set leadership.changed, and that state will remain set for the remainder of the hook15:36
lazyPower@when('leadership.changed.admin_password')15:36
beisnerjamespage, so are you thinking we could just serialize the next-sync with the existing gh2lp sync job?15:36
lazyPowermagicaltrout ^ is what i was looking for15:36
lazyPoweror does that trigger regardless of the actual value changing?15:37
magicaltroutyeah stub so if I wanted to set some variables on leader election but not reset them later how do you go about catching it?15:37
magicaltroutlazyPower: dunno, i was trying to avoid just annotating all the config stuff15:38
magicaltroutgive it a whirl though i guess15:38
magicaltroutoh that way i need a method per config as well I think15:39
magicaltroutwhich is annoying15:39
stubmagicaltrout: http://pastebin.ubuntu.com/15267478/ ?15:40
magicaltroutah right you do a state set as well15:41
magicaltroutokay stub thanks15:41
stubOr just use @hook('leader-elected') :)15:41
magicaltroutlol15:42
* magicaltrout ducks the projectiles coming from cory_fu 15:42
cory_fumagicaltrout, stub: I really think that thinking about it in terms of "I need to do something when leadership has changed" is the wrong way to think about it15:43
cory_fu1 min, I'll explian more15:43
magicaltroutwell, I can't ignore a leadership change event :P15:43
stubmagicaltrout: Mixing leadership.is_leader and leadership.changed could be dangerous, as you can't tell if the leadership settings where changed in the current hook by the current leader, or by the previous leader that has been deposed.15:43
stubcory_fu: Normally, yeah. But if you want to ensure the credentials are cycled every time the leadership has changed, you want to do something when leadership has changed.15:44
stubI just set the credentials once and leave them no matter who the leader is15:44
stubBut I guess if you were setting a public key, and the private key never left the leader, there might be some sense in regenerating the creds rather than unnecessarily share the secret.15:45
deanmanA fresh install of juju on windows 7 gives "ERROR there was an issue examining the environment: dial tcp 127.0.0.1:37017: ConnectEx tcp: No connection could be made because the target machine actively refused it." when running bootstrap. Any hints?15:45
stub(although my example is also simple without using @hook either)15:46
magicaltroutstub: so if running leadership.changed and leadership.is_leader is dangerous, how do you know if your running on the leader or slave?15:46
stubmagicaltrout: leadership.is_leader is only ever set on the leader. leadership.changed is set at the start of a hook if the leadership settings are different to the last hook.15:47
stubSo if a leader did leader_set, then died, a new leader will get its leader-elected hook run but find leadership.changed already set.15:48
cory_fustub: My point is that if you just set the leader settings whenever you are leader, then they will naturally update when it changes15:48
stubcory_fu: Yup.15:49
cory_fuAnd if you also gate your restart on leader settings changed, then, even if you are the only unit, you will still be elected leader and the config write and restart will happen at the right place15:49
magicaltroutthis is turning into a much larger exercise than it should be. How had can it be for the leader to propogate a few variables, and then the leader set 1 config, the slaves set another config and they all restart, but only when a leader changes or a config variable is *actually* updated? :P15:49
=== nagyz_ is now known as nagyz
cory_fumagicaltrout: That means, don't do a separate config write + (re)start other than the leadership.changed; that can be your main config write + (re)start handler15:50
stubcory_fu: Where was your example?15:50
cory_fumagicaltrout: My point is that it's easier than you're making it out to be.  If you just work under the assumption of leadership and don't worry about specifically reacting to changes in leadership status (only to changes in leadership values) then it becomes much simpler15:51
magicaltroutstub: https://gist.github.com/johnsca/8cf0f25cce06c13bdecb15:51
cory_fuYeah, ^15:52
cory_fuWith that, if you don't have any other calls to render_*_config and restart(), then you will only ever get restarted when it15:52
magicaltrouthow can i work under the assumption of leadership when I have a separate master and slave template to fill?15:52
cory_fu*it's necessary15:52
cory_fumagicaltrout: I mean, under the assumption that you will always either be leader or not, like in my example15:53
cory_fui.e., don't have a separate set of handlers for "no leadership" or "single unit" case15:53
stubSo the crazy edge case that would be next to impossible to engineer is update_master_config being called before change_leader15:54
cory_fuThat's just naturally handled because Juju will always pick a leader, even for a single unit15:54
cory_fustub: How could that happen if change_leader is what updates the leader settings?15:54
magicaltroutI don't assume there will be no leadership. Do i?15:54
jamespagebeisner, that might work ok15:54
stubcory_fu: Another unit is leader and changes settings, and loses the leadership lease. This unit is elected leader, and runs leader-elected. The leadership settings have changed, so that state is true when the hook starts.15:55
stubcory_fu: So both handlers are valid, and it is undefined which is called first.15:56
cory_fuHrm15:56
stubbut pretty much impossible due to the 30s lease period on leadership. It really means I've thought about this too much :)15:56
cory_fu^__^15:56
stubLET ME SPECIFY PRIORITY OF MY HANDLERS DAMMIT15:57
cory_fulol15:57
magicaltrouti'm still lost15:58
magicaltrouthow on earth do I set the config without it restarting? :P15:58
cory_fumagicaltrout: If you set the config and it's different, that implies that you *need* to restart.15:59
stubmagicaltrout: What is the actual problem you are trying to solve btw?15:59
stubmagicaltrout: The coordinator layer might be a better fit.15:59
magicaltroutcory_fu: I set the config because  is_leader is called15:59
magicaltroutnothing in that configuration actually changes16:00
magicaltroutbut leader_set is called so leadership.changed is fired16:00
* magicaltrout feels like we've been here before....16:00
cory_fumagicaltrout: If nothing in the settings changes, then it shouldn't trigger that changed state.16:01
magicaltroutlazyPower: can you have a word with cory_fu please :P16:01
cory_fumagicaltrout: I could see it triggering on the first run, since the leader settings aren't set before16:01
stubYeah, just checked the code. If it sets leadership.changed even if its a noop, then its a bug.16:02
cory_fustub: Actually, is it the case that on the first run, leadership.changed will always be set?16:02
stubYes16:02
cory_fuWell, that means your "nearly impossible" edge case is guaranteed to happen on the first run.  :(  And that explains magicaltrout's gist16:02
magicaltrouthttps://gist.github.com/buggtb/e6faa5b897bcf7d5d28216:03
magicaltroutthats happened whilst we've been mulling this over16:03
stub(because in Juju, deleting a key is just setting its value to None)16:03
stubWell, there's your problem. Your charm is full of Java.16:04
magicaltroutlol16:04
magicaltroutwell that I have no control over, but at least I know how Java works :P16:04
mbruzekwhy so much Java hate?16:04
mbruzekIt is *just* a language people!16:05
magicaltroutthe java appeared because after a bunch of restarts that failed its given up and run out of memory :)16:05
magicaltroutyeah i got called out on an ASF mailing list last week for mocking PHP, I'm keeping quiet now ;)16:05
stubmbruzek: For me, because of the damn click through license and the effort involved in working around it :-P16:06
cory_fumagicaltrout: Hrm.  That is a problem.  I really don't understand why update_master_config would be running during update_status16:06
cory_fuIt really shouldn't be16:06
cory_fumagicaltrout: Can you point me to the code that that is running right now16:06
cory_fu?16:06
cory_fus/right now/currently/16:07
magicaltrouter http://paste.ubuntu.com/15267724/16:08
magicaltroutI think its that16:08
magicaltroutbut we've been talking and I've been messing around with ideas16:08
stubcory_fu: leadership.changed will always be set the first time leader_set is called, not always set the first run at the start.16:08
=== psivaa_ is now known as psivaa
=== rockstar_ is now known as rockstar
cory_fustub: Sure, but in that case it's guaranteed that you'll end up with both leadership.changed and leadership.is_leader at the start of the hook at the same time16:16
cory_fuSo at least once, it could potentially run in the wrong order16:16
=== FourDollars_ is now known as FourDollars
cory_fuAnd since changing the values would then not update leadership.changed (since it would already be set), the @when('leadership.changed') handler would not run again after the leader settings were updated16:17
stubcory_fu: I don't follow. The first handler runs, guarded by @when('leadership.is_leader'). It sets stuff, turning on leadership.changed. Then the other hook runs.16:18
cory_fustub: Oh, I misunderstood16:19
magicaltroutokay so can we try and agree on what everyone thinks will work16:20
magicaltroutthen we can test it in reality16:20
magicaltrouthttps://gist.github.com/buggtb/a96f3ea9d1044760b642#file-gistfile1-txt-L11116:20
magicaltroutif I'm following, leader_set should run16:20
magicaltroutthen on the leader I should get leadership.changed and it update and restart?16:20
cory_fustub: However, I think what I was saying was still true, because for the very first hook run, https://git.launchpad.net/layer-leadership/tree/reactive/leadership.py#n41 is going to return an empty dict16:21
cory_fumagicaltrout: Yes.  I'm concerned that for the very first hook run, you could have leadership.changed set from the start of the hook, which could cause the order of change_leader and update_master_config to be undetermined16:22
magicaltroutokay i'm gonna refresh and see how knackered it is16:22
cory_fuIt would be correct for the following hook runs, but that first run seems like it will hit the edge case16:22
stubcory_fu: Right, but there are no keys in an empty dict so we have nothing to iterate over and the flag remains unset16:23
stub(previous is an empty dict, current is an empty dict)16:23
cory_fustub: Oh yeah!  Great16:24
cory_fuOk, so I'm back to having no idea why update_master_config is running before change_leader in update_status for magicaltrout16:25
magicaltroutwell i'll run this clean one with code I know what it looks like and we can argue about it some more16:26
jamespagebeisner, https://review.openstack.org/#/q/status:open+topic:charmhelpers-resync status atm16:28
jamespageI submitted a few rechecks...16:28
beisnerjamespage, ok cool.  the queue is pretty clear atm.16:28
HollyRainhi! I've started to use LXD. I would want to know whether Juju is integrated or is going to be integrated with LXD?16:35
magicaltroutLXD!!!! woop16:35
magicaltroutHollyRain: from an unofficial POV, 2.0 will include LXD support16:38
HollyRainmagicaltrout, how to install that beta?16:38
magicaltroutyou need to wait a few days or get Xenial installed and compile Juju lxd-container-type branch16:39
cory_fustub: Did you see https://github.com/juju-solutions/charms.reactive/pull/5616:42
stubcory_fu: yes. might simplify some things here.16:50
stubAre java subordinates rather than java layers the future ?16:51
lazyPowerIt seems the easiest way to abstract that without many copies of a charm that only vary by layers. We used it in layer-logstash and it works really well16:52
lazyPowergranted we have only tested with kwmonroe's openjdk subordinate16:53
stubcool. I guess even I need to allow people to select between OpenJDK and Oracle, and unless a layer supported both.16:53
beisnerjamespage, on your charm-odl-controller review, the single charm deploy fails with http://pastebin.ubuntu.com/15268096/   (Failed to connect to nexus.opendaylight.org port 443: Connection timed out).   We'll need to file an RT to open up access to that.16:54
jamespagebeisner, oh wait - thers is an amulet override for that16:54
lazyPowerinterface:java makes that pretty intuitive out of the box. you gate on java.ready16:54
stubA layer may still be useful, that sticks in OpenJDK until a subordinate is added to override it.16:54
lazyPowertrue statement16:55
beisnerjamespage, but that's just:  juju deploy XYZ16:55
jamespagebeisner, ah right I see16:55
jamespagehmm16:55
stubSomeone please write an Oracle java layer so I don't have too :-P16:55
stubc/layer/subordinate16:56
magicaltroutyou get to make use of the fancy new license acceptance stuff :P16:56
kwmonroestub, we've got layers for openjdk, ibmjdk, and zulu8 (all providing subordinates).  none are promulgated yet, but they're all close.16:56
stubNot me. Last time I tried that the lawyers told me to get knotted. Someone elses turn.16:56
magicaltroutlol16:56
kwmonroestub, i wouldn't write a layer that just sticks in openjdk.  i'd use a layer option instead.. if/when a subordinate comes along, it should do the update-alternatives thing and switch you over.16:57
kwmonroelayer option meaning this.. just stick in openjdk or whatever in the package section: https://github.com/juju-solutions/layer-ubuntu-devenv/blob/master/layer.yaml16:57
stubwas thinking of an option to specify the default, but can't think of anything that could be a default except OpenJDK (I don't know zulu or ibm)16:58
stuboh, right.16:58
stub'cept I need openjdk 8 under trusty, which means a PPA16:59
beisnerjamespage, i shall raise that rt now16:59
kwmonroeyeah stub, i'll update layer-openjdk to add ppa:openjdk-r/ppa if someone wants java8 installed on trusty.17:00
magicaltroutawww F**$"£$%(IG race conditions17:02
* magicaltrout goes in search of some food and alcohol to get over the annoyance17:02
stubkwmonroe: No rush - I'll probably have Xenial released before I get to refactor Cassandra into reactive17:02
kwmonroeheh, right on.17:02
stubkwmonroe: And now I think of it, the openjdk8 ppa needs to be a config option so it can be overridden at the sites without network egress.17:05
kwmonroeyeah stub, probably need a generic ppa config opt regardless of the version.. blank by default, but document setting it for restricted network envs or for getting 8 on trusty.17:09
stubI'm using the charmhelpers/apt layer install_sources in Cassandra, since it is 'standard'17:11
HollyRainI've a container with Xenial, where is the info. to compile Juju lxd-container-type branch?17:21
HollyRainmagicaltrout, https://github.com/juju/juju do I compile the last release?17:24
HollyRainthere is juju-2.0-beta1 https://github.com/juju/juju/releases17:25
cory_fuHollyRain: http://marcoceppi.com/2016/03/testing-juju-without-wrecking-juju/ has some useful info17:31
cory_fuHollyRain: There is also a docker container that lets you run the latest juju w/o building it yourself, if you're ok with running inside docker17:32
HollyRaincory_fu, thanks!17:35
=== natefinch is now known as natefinch-lunch
roryschrammhi im having a problem deploying openstach to power8 compute nodes, im using pre-release juju 1.25.4 due to bug 1532167.  Afix was released for it but I cant find it in the ppa's and its preventing me from deploying17:49
mupBug #1532167: maas bridge script handles VLAN NICs incorrectly <addressability> <maas-provider> <network> <juju-core:Fix Released by frobware> <juju-core 1.25:Fix Committed by frobware> <https://launchpad.net/bugs/1532167>17:49
roryschrammjuju cant find the ppc64el packages to push to the power nodes after juju add-machine17:50
kwmonroeroryschramm: is deployment complaining about a specific package not being available for ppc64le, or is it that the ppc64le OS image isn't available in your maas setup?  if the latter, you might have more luck asking in #maas.18:05
roryschrammits complaining about the package being unavailable18:06
roryschrammi hav the deb files for doing a manual install but i have no idea how to get juju to use those packages for power18:08
kwmonroeroryschramm: what charm are you trying to deploy?18:10
roryschrammi was just tring to do juju add-machine to get the host into juju18:10
roryschrammplan is is put nova-compute on the power nodes18:10
roryschrammdeploying power via maas gui is working fine. just not through juju18:11
Giltrying to deploy nova-compute to openstack liberty, get in syslog:  "AMQP server on 127.0.0.1:5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 2 seconds"18:16
kwmonroesorry roryschramm, but i'm not sure what's causing add-machine to fail.  beisner, i see you answered an openstack/p8/juju question here: http://askubuntu.com/questions/677199/can-bundle-https-jujucharms-com-openstack-base-39-be-used-for-ppc64el-environm -- any pointers for roryschramm?18:20
roryschrammwell i think the problem is that im using 1.25.4 juju-core. However that code is not available in a ppa currently so juju is failing when deploying to power. for x86 its jush pushing the local x86 installed juju code.18:21
jrwrenroryschramm: is the controller on power as well? did you deploy that with --upload-tools then? i'd think add machine would use the tools from controller, but I do not know.18:23
roryschrammthe controller is on x86. I can deploy to x86 nodes just fine. Yes I deployed with upload tools.18:24
roryschrammis it possible to juju bootstrap --upload-tools for multiple architechures? ie upload 1.25.4 juju tools for x86 and pplc64el?18:45
roryschrammppc64el*18:45
=== natefinch-lunch is now known as natefinch
magicaltroutsome days I hate my clients "Views are getting dropped randomly in the production server."19:11
magicaltroutnow i'm not a redshift administration expert, but I severely doubt redshift is randomly dropping views without user action19:12
beisnerkwmonroe, i've just regained access to ppc64el hw in our openstack charm testing lab in maas, but haven't exercised 1.25.[3-4] against it yet.  we plan to late this week, into next week.19:23
muxcan anyone tell me if there's a list of public charms that have been updated to use the new 'storage' subsystem?19:46
muxas far as I can tell the only one out there is cs:~axwalk/postgresql19:47
muxI would love to be wrong19:47
aisraelmux: I have an example charm that demonstrates some of the storage functionality (though it's not full featured): https://github.com/juju-solutions/storage-demo19:48
muxaisrael: nice, checking it out now19:57
bbaqarAnyone got a working lxd bundle for trusty?20:05
marcoceppibbaqar: what does that mean?20:12
marcoceppicory_fu arosales https://jujucharms.com/big-data20:13
cory_fuAwesome!20:13
cory_fukwmonroe: ^20:13
rick_h__cory_fu: kwmonroe ty for the patience on that.20:13
magicaltroutooh that looks snazzy20:13
cory_fuWe still need our elephant hats.  :p20:14
rick_h__good luck :P20:14
arosalesmarcoceppi: cory_fu  \o/20:14
cory_fuha20:14
arosalesthanks urulama !20:14
bbaqarmarcoceppi: So the bundle for openstack-lxd available on the charms store (https://code.launchpad.net/~openstack-charmers-next/charms/bundles/openstack-lxd/bundle) pulls the wily charms20:14
cory_furick_h__, marcoceppi: So cards are production now?  Is there a UI for generating them?20:14
bbaqari need to run it with the trusty charms20:14
marcoceppibbaqar: ah, you can't lxd is only supported in wily for nova20:15
urulamaarosales: you're welcome :)20:15
marcoceppicory_fu: no idea20:15
rick_h__cory_fu: cory_fu https://jujucharms.com/community/cards20:15
rick_h__oops20:15
marcoceppirick_h__ cory_fu so we should start killing off cards.juju.solutions - I'll start by transparently sending requests to this service now20:15
rick_h__marcoceppi: awesome20:16
marcoceppirick_h__: mind if I mail the list about https://jujucharms.com/community/cards ?20:16
rick_h__marcoceppi: I'm working with urulama and team to do an overall email on the release20:16
marcoceppikk20:16
rick_h__marcoceppi: as the multi-series charms should work now as well20:17
rick_h__marcoceppi: e.g. upload multi-series, deploy on juju 1.2520:17
magicaltroutcards?! blimey you guys have so much stuff hidden20:17
rick_h__marcoceppi: so there's other stuff to note people on20:17
marcoceppinioce20:17
magicaltrout+away20:17
marcoceppimagicaltrout: we just released it!20:17
magicaltroutthat explains that then.... :P20:17
bbaqarmarcoceppi: Are you sure because the nova-compute charm allows lxd as the virt-type and https://jujucharms.com/u/openstack-charmers-next/lxd/trusty/ exists20:17
magicaltroutthats great when I get Saiku stabilised, dump that card into the wiki, website & splash screen20:18
rick_h__marcoceppi: exactly20:18
rick_h__oops, magicaltrout exactly20:18
marcoceppibbaqar: I've just been told it's wily, you might want to check with zuul coreycb or beisner who are still online20:19
marcoceppibbaqar: or email the juju list: juju@lists.ubuntu.com20:19
bbaqarThanks20:19
coreycbrockstar, I don't see zul in here but maybe you know the answer for bbaqar20:20
zulhi20:21
rockstarbbaqar: afaik we don't support lxd on trusty just yet.20:21
zulno we dont yet20:22
rockstar"trusty" in that charm name is merely a placeholder.20:22
beisnerhi bbaqar, keep in mind that the "-next" charms track the current development versions of the charms.20:24
beisnerbbaqar, if you've not seen this yet, pasting for reference:  https://jujucharms.com/u/openstack-charmers-next/openstack-lxd/bundle20:26
bbaqarOkay thanks guys. I appreciate your help.20:36
HollyRainwith juju, is necessary to have to work directly with Systemd or is handled automatically?20:39
HollyRainI want that my service can be started/stopped from juju, and restarted auto. if it faills and it's possible20:40
magicaltroutHollyRain: i did something outside of systemd for that with the help of the charmers20:41
magicaltrouthttps://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L76 start gets called everytime and it just checks to see if its running20:42
magicaltroutso every 5 minutes if its down it'll get restarted20:42
magicaltroutif you have systemd kicking around, you could probably do something similar where you check the status20:42
magicaltroutand if its down, kick it20:42
HollyRainthanks20:43
urulama_marcoceppi: one more thing ... you can publish a multiseries charms now and old clients will work with it now :) there's been a regression if it's gated - so make it public, but we'll fix that with new release20:50
marcoceppiurulama_: YESSS20:54
urulama_marcoceppi: https://jujucharms.com/u/uros-jovanovic/wpnew and https://api.jujucharms.com/charmstore/v5/~uros-jovanovic/wpnew/archive/metadata.yaml20:56
magicaltroutthis seems to work cory_fu https://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L129 I think i was getting a race condition which was causing the rolling restart now I schedule a restart22:17
magicaltroutthat way it waits for PDI to be installed22:17
cory_fumagicaltrout: A race condition with what?  Any chance I could see the reactive log lines from your run that works?22:19
cory_fuOooh22:19
cory_fumagicaltrout: Yeah, your update_master_config really ought to have @when('pdi.installed') on it.  Do you ever want to update the config before it's installed?22:19
magicaltroutwell thats part of the problem cory_fu22:21
magicaltroutfrom what I could tell in the logs22:22
magicaltroutwith @when('leadership.is_leader', 'leadership.changed')22:22
magicaltroutits run before the PDI package is installed22:22
magicaltroutand if you dump a @when('pdi.installed')22:22
magicaltroutit doesn't execute but then leadership.changed isn't recalled22:22
magicaltroutleader elected -> leadership changed -> pdi and java installed22:23
magicaltroutif i defer the restart though of course by then the package exists22:24
cory_fumagicaltrout: Ok, what I would recommend is putting the @when('pdi.installed') on change_leader.  That way, it will only run after PDI is installed, and would then immediately trigger  the update_master_config.22:25
cory_fuWell, actually, the solution you came up with is ok, too22:25
cory_fuExcept that you're potentially rendering the config before PDI is installed.  I trust the install won't overwrite the config?22:25
magicaltroutna it writes else where, although now you mention it i can see yours working without the deferal22:26
magicaltroutwoop, even carte is up and running which has failed miserably all afternoon22:27
* magicaltrout chucks a job at it before testing the slave logic22:27
magicaltrouthttp://52.29.99.174:9999/kettle/status/22:28
magicaltroutcluster/cluster22:28
magicaltroutlook at that cory_fu22:28
magicaltroutworking and everything22:28
cory_fuNice22:29
cory_fu:)22:29
aisraeltvansteenburgh: Are you still here?22:42
tvansteenburghyup22:42
aisraeltvansteenburgh: Could you kick off a test for me? https://code.launchpad.net/~brad-marshall/charms/trusty/memcached/add-monitors-relation/+merge/27695822:43
tvansteenburghaisrael: you can do it from here if you're logged in http://review.juju.solutions/review/235422:44
aisraeltvansteenburgh: Oh sweet, I missed that. Thanks!22:44
tvansteenburghaisrael: np :)22:44
tvansteenburghaisrael: fyi joyent queue is empty22:45
magicaltroutwoop self registering slaves22:51
magicaltroutcory_fu: on https://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L5423:15
magicaltroutwhy would I get23:15
magicaltroutTypeError: check_running() missing 1 required positional argument: 'java'23:15
magicaltrouthaven't i included an argument?23:15
cory_fuSo that error is perhaps misleading.  It means that, at runtime, the function was not passed the argument (java) that it expects.  However, it looks like the java.ready state ought to provide that param, so I don't know why you hit that23:16
magicaltrouti only hit it when I added the when_not23:17
magicaltroutbut I don't want a restart and check_run to run at the same time23:17
cory_fumagicaltrout: Can you give me the output of `charms.reactive --format=yaml get_states` from that unit?23:17
magicaltrout{}23:18
cory_fuYou have to run it from the charm directory23:19
magicaltroutboo23:19
cory_fujuju run --unit pdi/0 'charms.reactive --format=yaml get_states'23:19
cory_fuThat would work, but using `juju ssh` to do the same would not23:19
magicaltroutalthough helpfully you've answered a question I was going to ask earlier :P23:19
magicaltrout{leadership.set.hostname: null, leadership.set.public_ip: null, leadership.set.username: null, pdi.installed: null}23:19
cory_fu(Unless you first cd to the charm dir)23:19
cory_fuHrm.  That seems like the java state isn't set at all, so no idea how that handler ran23:20
magicaltroutwell23:20
magicaltroutfunny you say that23:20
magicaltroutjuju status says23:20
magicaltrouthook failed: "java23:20
magicaltrout-relation-changed" for java:java23:20
magicaltrouthook failed: "java-relation-changed" for java:java23:21
cory_fuOh, well, that makes sense.  It failed during that hook, so the state wasn't flushed23:21
cory_fuBut, again, I don't see how that state was set without a value23:22
cory_fuAlso, btw, the way you're using those gating states is going to cause your check_running handler to run more times than you expect (possibly)23:23
magicaltroutwhich is probably whats happening23:23
cory_fuBecause it could run once before restart() and then again after restart finishes since the pdi.restarting state changed23:24
magicaltroutwell if check_running runs >1 thats not a problem23:24
magicaltroutif its up it does nothing23:24
magicaltroutif its down it kicks it23:24
cory_fuI think you would be better served by changing check_running and restart to both use the pdi.restart_scheduled state23:24
magicaltroutthat shouldn't cause an issue23:24
cory_fuFair enough23:25
magicaltroutaww wtf, I took that out because you told me to use @when('pdi.installed') :P23:25
cory_fuOh, well, I still saw it in there23:25
cory_fuBut yeah, if you're going to use that instead then... um23:25
magicaltroutwell its still in the code, its not called23:25
magicaltroutwell I don't care, I'll revert to using restart_scheduled23:26
magicaltroutif it works it works, I just need to trap 2 methods both trying to do the same, but slightly different thing23:26
=== zenlot_away is now known as zenlot
cory_fumagicaltrout: Where is the java.updated state coming from?23:26
magicaltroutdunno that was something we did in ghent23:27
cory_fuI don't think that state exists any more.  I don't see it in the current java interface23:29
magicaltroutk23:29
cory_fuhttps://github.com/juju-solutions/interface-java/blob/master/provides.py23:29
magicaltroutoh actually23:29
magicaltroutI think it was a kwmonroe "todo"23:29
magicaltroutso we boiler plated it23:29
magicaltroutcory_fu: if I do this: https://github.com/OSBI/layer-pdi/blob/master/reactive/pdi.py#L52 its just going to give me the same error isn't it?23:33
magicaltroutas that was the cause and effect from before23:33
magicaltroutso can I check the state from within the method?23:33
cory_fumagicaltrout: I don't know.  I honestly have no idea how you got that error23:35
cory_fuBut the problem isn't with the @when_not, it's with that java.ready state.  That's the one that should be giving a relation instance and it's not23:35
magicaltrouthmm23:36
cory_fumagicaltrout: My recommendation would be to put a breakpoint in one of your other handlers that (tends to) get triggered before that one and do some get_state checking in that23:38
cory_fuUnfortunately, my wife is saying I have to call it a day now.  :)23:38
magicaltroutaye23:38
magicaltrouthehe23:38
magicaltroutwell someone needs to have a life!23:38
cory_fuHave a good evening!23:40
magicaltroutyou too23:41

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