/srv/irclogs.ubuntu.com/2016/05/31/#juju.txt

maasIVEtopic needs changing ;) i am on xenial ask me for testing :)00:37
=== natefinch-afk is now known as natefinch
=== thumper is now known as thumper-bjj
=== Guest68352 is now known as spammy
=== frankban|afk is now known as frankban
=== thumper-bjj is now known as thumper-eod
jamespagegnuoy, two ticks for a sync +1 ?09:57
jamespagehttps://review.openstack.org/#/c/322097/09:57
dimiternwhen will juju-deployer or charm-tools/-helpers/amulet support juju 2.0 properly10:00
dimitern:/10:00
gnuoyjamespage, +110:02
jamespageicey, cholcombe: need one of you to pickup https://bugs.launchpad.net/charms/+source/ceph-radosgw/+bug/1577519 again10:03
mupBug #1577519: ceph-radosgw "Initialization timeout, failed to initialize" <landscape> <Landscape Server:Confirmed> <Landscape Server 16.05:Confirmed> <ceph-radosgw (Juju Charms Collection):Confirmed> <https://launchpad.net/bugs/1577519>10:03
jamespageapparently our first fix did not resolve quite suffiently10:03
bbaqarHey guys .. I have a juju env which had some connectivity issues for short time .. hence i got the "agent is lost, sorry!" error10:59
bbaqarnow the nodes are back up ..10:59
bbaqari can ping and ssh into those nodes aswell .. using ssh ubuntu@ip11:00
bbaqarhow can i restart the jujud service on a node?11:02
D4RKS1D3hi bbaqar, if you write "ls -la /etc/init | grep juju" you can see all the juju services and restarted11:06
bbaqarD4RKS1D3: cool thanks alo t11:09
D4RKS1D3Hi, I am trying to add a machine is in maas, but i received this message "ERROR juju.provisioner provisioner_task.go:655 cannot start instance for machine "40": cannot run instances gomaasapi: got error back from server: 409 CONFLICT (No available node matches constraints: name=imaginative-attention.datacentre tags=datacentre)"11:11
jamespagegnuoy, https://review.openstack.org/#/c/323264/11:17
jamespagepls :-)11:18
gnuoysure11:18
magicaltroutcan't you upgrade charms on a development branch?12:05
rick_h_magicaltrout: yes, you should be able to.12:19
rick_h_magicaltrout: what did you originally deploy?12:19
magicaltrouthey rick_h_12:20
rick_h_magicaltrout: howdy12:21
magicaltroutjust testing some homebrew stuff, but when I do "juju upgrade-charm drillbit2"12:21
magicaltroutI get12:21
magicaltroutERROR cannot resolve URL "cs:~spicule/drillbit": charm or bundle not found12:21
magicaltroutbut then if I try and do: juju upgrade-charm drillbit2 cs:~spicule/drillbit12:21
magicaltroutfor example12:21
magicaltroutI get invalid args12:21
rick_h_magicaltrout: hmm, let's file a bug on jujucharms.com please. Looking at the urls for this: https://jujucharms.com/u/spicule/drillbit/11 is peachy12:23
rick_h_but remove the 11 and it 404's12:23
rick_h_magicaltrout: which is a bug in it resolving there12:23
magicaltroutyeah i noticed it was being a bit funny there as well12:23
magicaltroutwill do12:23
rick_h_magicaltrout: now for your original question, you're supposed to be able to deploy/upgrade following the development channel if it's public and if you deployed with the --channel flag w/ juju 2.012:23
rick_h_magicaltrout: this bug might be getting in the way, but not sure atm. The question is how you originally deployed it though and older Juju doesn't understand the channels12:24
rick_h_they're always looking at the published stable channel12:24
magicaltroutah it seems to know  juju upgrade-charm drillbit2 --channel development12:24
rick_h_magicaltrout: yea, that for if you want to cross channels12:25
rick_h_e.g. go from stable to development12:25
magicaltrouthmm well this would be same channel just new rev...12:25
magicaltroutI'll file the bug and move on, its no big deal its all LXD anyway so its nearly as quick to tear it down and start again12:26
rick_h_magicaltrout: ok, but let me know if things aren't working as expected. Or at least the steps to reproduce and I'll chase it down so it's set12:26
kjackalmagicaltrout: Hey Tom how is the Zookeeper issue going?12:37
magicaltrouthey kjackal well it works, not sure why I'm only seeing one unit12:40
magicaltroutand my understanding of debugging reactive hooks is lousy12:40
kjackalmagicaltrout: I am fairly sure you should be getting all three units12:41
magicaltroutI have a vague memory of another service where I thought that was the case and it transpire it wasn't12:41
magicaltroutbut I'll trust you on that one12:41
magicaltroutbut I have logs in place and its only iterating once12:41
magicaltroutor I've cocked up my function12:42
magicaltroutwhich is perfectly likely12:42
magicaltrout2 mins I'll dump it in GH12:42
kjackalmagicaltrout: I could take a look if you point me to the charm12:42
kjackalthanks magicaltrout12:43
magicaltroutits nothing special, I just really want Apache Drill for Saiku so I figured I'd crack on with it :)12:43
magicaltrouthttps://github.com/buggtb/layer-drillbit12:44
magicaltrouthttps://github.com/buggtb/layer-drillbit/blob/master/reactive/drillbit.py#L3712:44
magicaltroutwatch out if you run it there is a blank line on line 45 where I was about to add some bootstrap stuff12:45
kjackalmagicaltrout: taking a look, thanks12:45
magicaltroutthe rest of it is pretty cool, drill installs and apart from the missing exec code, starts up with its configured ZK client in place12:46
lazyPowerlook at all this collaboration first thing in the morning ;D12:59
lazyPower\o/12:59
magicaltroutits very much mid afternoon :P12:59
magicaltroutuntil next week at which point i'll still be in bed13:00
lazyPowerwell, in EDT its very much morning, and super cool to see this thread history on what by any other name, is my monday.13:00
lazyPowerso given that context... awww yeeee13:00
magicaltroutmade me sad how many emails i got from the USA yesteday :P13:01
lazyPowerI was only responsible for one, and Ben set me straight13:01
magicaltroutanyway, yeah, kjackal is kindly unbreaking my understanding :)13:01
lazyPoweri was hoping my 2 hour stint of looking at code on a holiday would go un-noticed13:01
* lazyPower shakes a tiny fist @ magicaltrout13:01
magicaltroutI'm on a big data <-> sql sprint so I can hook up Saiku 3.9 to loads of charms when its released in a week or 313:01
lazyPowernice!13:02
lazyPowerI'm working on a signifcant extraction and test coverage bump on etcd at the moment. x58 found some fun race conditions in there13:02
magicaltroutwe've finally built a half decent schema designer, so you should be able to deploy a big data bundle + Drill/Phoenix etc and then attach that to Saiku and inside saiku do a few click schema generation and be good to go13:03
magicaltroutso 10 click analysis I'm hoping at most13:03
lazyPowerWait isn't drill a MapR only thing?13:03
magicaltroutits sponsored by MapR, but its not MapR only13:03
magicaltroutits an ASF project13:03
lazyPowerah ok. i thought it had the maprfs requirement13:03
magicaltroutso its as generic as it comes13:03
lazyPower#TIL13:03
magicaltroutyou can run over any hbase, parquet, csv, mongodb, generic jdbc etc13:04
magicaltroutit works nicely as a data federator as well. If you have data in Hbase or somewhere and want to run a join on something in a mysql db13:04
magicaltroutyou can do exactly that13:04
lazyPowersince i'm moving in under a month, i may vanish on you magicaltrout. I have junk-takers showing up to grab the excess posessions in the next 20 minutes.13:04
magicaltrouthehe13:05
magicaltroutmoving somewhere nice?13:05
lazyPowerPlanning on going full nomad for the remainder of the year13:05
lazyPowerbouncing from AirBNB to AirBNB13:05
magicaltroutnice13:05
lazyPowerWe'll see. this was a bit more expensive than originally estimated13:05
lazyPoweri may bounce somewhere and find a lease just to save on living expenses13:05
lazyPowerbut i'm stuffing all the good stuff in a POD. its like a shipping container (see what i did  there? container all the things?!) and have it shipped wherever i land13:06
magicaltroutcool stuff13:06
lazyPowerits been a learning experience :)13:06
magicaltroutstaying in the US, or moving countries?13:06
lazyPowercloser to end of year I want to do a grand European tour13:07
lazyPowerstart in oxford and migrate west over the course of a few months and see what i can see over there13:07
magicaltroutwell there's certainly some nice remote spots in the UK for nomadic working ;)13:08
kjackalmagicaltrout: http://pastebin.com/UaYB0LxB I can see all two units reporting their IP. What Zookeeper charm did you deploy?13:11
kjackallazyPower: So.... when are you visiting Greece?13:11
magicaltrouthttps://jujucharms.com/apache-zookeeper/trusty/313:12
kjackalmagicaltrout: how is it possible? I mean... I got my zookeeper instances reporting .... its in the pastebin....13:13
lazyPowerkjackal good question, lets figure out what my conf season looks like towards fall and see where i can land up :)13:13
magicaltroutkjackal: dunno, just redeploying anyway, i'll grep the logs in a mo13:13
magicaltroutkjackal: you just deployed a single service then add units?13:14
kjackalmagicaltrout: yes13:15
magicaltroutkjackal: god knows13:19
magicaltroutI only get 1 entry13:19
magicaltrout"juju-log" ["Template:\"10.106.143.126:2181\""]13:19
kjackalmagicaltrout: let me see13:25
kjackalyou deployed apache-zookeeper13:25
kjackalthen you deployed drillbit13:25
kjackalthen you added the relation between ZK and drillbit13:26
kjackalthen you added a second ZK unit13:26
magicaltroutnot quite13:27
magicaltroutI deployed ZK13:27
magicaltroutthen I added 2 more nodes13:27
kjackalcould you paste me the history of you rcommads13:27
magicaltroutthen i deployed drillbit13:27
magicaltrouti'm tearing it down, i'll try again and log the input13:29
kjackalmagicaltrout: thank you13:30
beisnerjamespage, https://github.com/openstack-charmers/release-tools/pull/113:33
magicaltroutkjackal: http://pastebin.com/QE00v5wZ its still in flight13:35
magicaltroutbut thats the command list13:35
kjackalmagicaltrout: btw the signature of configure should look something like  http://pastebin.com/63ebzdwi13:38
magicaltroutyeah in my published version its corrected13:40
magicaltroutno its not13:40
magicaltrout#fail13:40
kjackalmagicaltrout: I think I suspect what is going worng13:43
kjackalmagicaltrout: look....13:43
kjackalthe first ZK unit that comes online becomes a quorum by itself13:44
kjackalat this point the configure method of drillbit is called and it sets the 'drillbit.configured'13:45
kjackalthen the rest of ZK units join the quorum but the  'drillbit.configured' is already configured so it does not get updated13:45
kjackalso, how to fix this13:46
magicaltroutah yeah sounds sane13:46
kjackalwhat if you do not set the 'drillbit.configured' at all?13:47
kjackalor at least you do not have this when_not('drillbit.configured') at configure13:47
magicaltroutyeah but then you're restart the drillbit on every execution13:47
kjackalindeed, so you want to restart when you detect a change in ZK quorum13:48
magicaltroutyeah13:48
magicaltroutso I guess we could remove that and save the quorm dict to check against13:48
kjackalhave a look at this: https://github.com/juju-solutions/layer-apache-spark/blob/master/reactive/spark.py#L15913:48
magicaltroutyeah13:49
magicaltroutlike that13:49
magicaltroutokay cool13:49
magicaltroutI can do that13:49
magicaltroutthanks kjackal13:49
kjackalcool...13:49
kjackallets see what do we say in the list...13:49
=== erlon_ is now known as erlon
magicaltrouthttps://ibin.co/2j3WCAhHi9Yn.png https://ibin.co/2j3WHn8H9RA1.png14:04
magicaltroutthere you go kjackal14:04
magicaltroutneed to tidy it up a bit but its up and running on the ZK cluster14:04
magicaltroutbut its certainly cool, i now have SQL over Mongo, CSV, Parquet, HDFS, S3, Hbase and Hive for free14:06
magicaltroutalthough for HBase I certainly want to bring Phoenix into the CS as well14:10
magicaltroutI'll also add some hooks hopefully to auto register various data sources14:20
magicaltroutfscking balls14:29
magicaltroutwhy can't LXD local set hostnames correctly yet14:29
magicaltroutrick_h_: where to juju core tickets go github or launchpad?14:30
rick_h_magicaltrout: launchpad please14:30
=== rodlogic is now known as Guest89868
magicaltroutgrr14:40
magicaltroutfiled14:40
magicaltroutwoop multiple drillbits... aka a cluster \o/14:48
lazyPowernice \o/14:48
magicaltroutaye14:48
rick_h_magicaltrout: <314:48
magicaltroutnow i need some hooks so I don't have to google adding data sources every time ;)14:49
rick_h_juju actions ftw14:49
magicaltroutthis is the stuff though. Juju makes it easy to setup a cool hadoop cluster, but until now there is no easy way for analyists to get the data back out unless they are Zeppelin/Spark/IPython "scientists"14:50
magicaltroutproviding SQL interfaces that are stable is key to getting people using the big data stuff Juju offers14:50
magicaltroutbecause they can plugin they analytics tool of choice.14:50
magicaltroutOf course I biased as I write one, but you can instantly hook the charms up to Tableau or whatever the big spenders want to connect to it14:51
=== Guest61314 is now known as CyberJacob
=== CyberJacob is now known as Guest68658
=== Guest68658 is now known as CyberJacob
magicaltroutso here's a question rick_h_, do you use actions, or do you use relations or do you use a bit of both? :)14:53
rick_h_magicaltrout: I guess it depends14:55
rick_h_magicaltrout: on what the need is there, when you metion adding data sources, I got thinking of an action to add a new one14:55
magicaltroutyeah, I think you end up with a combo, some charms like Mongo you can just drag to add a relation, there's not much drill needs to know. Some other stuff is far more involved. Also you could connect to services on different networks which wouldn't work with relations14:56
magicaltroutso I reckon you end up with a mix of both. If relations work, it should be supported to make it really simple. If they don't you could defer to an action to pass it some additional information it might need14:57
magicaltroutanyway mongo is the simplest, so we'll start there and see how we get on15:00
magicaltrouti have 60 minutes to get it working before dinner.....15:00
magicaltroutGo!15:00
kjackalcory_fu: so, when we will be cheking out the bigtop branch, we will have to then copy/mv/link the layer directories under the LAYER_PATH to reach to a working workspace15:08
kjackalI guess we could automate this process with a script or something.15:09
cory_fukjackal: Charm layers don't technically need to be under LAYER_PATH, only base layers.  So you should set your LAYER_PATH to the directory where your base layers reside (which, due to restrictions in the build tooling, cannot currently be a part of an upstream repo) but build your charm layers from the charm layer directory inside your bigtop repo checkout15:10
cory_fuIOW, don't change your workspace at all, just clone bigtop somewhere else and build from there15:10
kjackalcory_fu: yeap that makes sense15:11
petevgcory_fu, kjackal, kwmonroe: In the zookeeper charm, we fire off a "rest_config" handler when the state "config.changed.rest" is set. I don't see that state getting set anywhere, though (I'm grepping in a dir that contains both the bigtop base charm, and the zookeeper charm).15:31
petevgI see the same thing for the client_config handler, though in this case the mystery state is "zkclient.joined".15:31
petevgAm I missing a charm that does relevant things, or are both of those handlers broken?15:32
cory_fupetevg: They'll be set by base layers.15:32
petevgRight ... I didn't see it set in the bigtop base layer, though.15:33
cory_fuSpecifically, the config.changed.X states get set here: https://github.com/juju-solutions/layer-basic/blob/master/lib/charms/layer/basic.py#L12615:33
cory_fupetevg: And zkclient.joined is set by the interface layer: https://github.com/juju-solutions/interface-zookeeper/blob/master/requires.py#L2415:33
cory_fuSorry, zkclient.joined would actually be set by this: https://github.com/juju-solutions/interface-zookeeper/blob/master/provides.py#L2515:34
cory_fuSince the Zookeeper charm is the one providing that relation, not requiring it15:34
petevgGot it. That makes sense.15:35
petevgThx.15:35
arosalesmbruzek:15:50
mbruzekarosales: pong?15:50
arosalesHave any documentation outstanding for terms?15:51
arosaleshttps://github.com/juju/docs/pull/112215:51
mbruzekarosales: aisrael did that part, let me find the link15:51
arosales only to be or resources but has a navigation bar entry15:51
arosales did Adam do term and you do resourcs15:52
arosalesok15:52
mbruzekhttps://github.com/juju/docs/pull/104815:52
arosales I had those confused15:52
arosalesmbruzek:15:53
arosalesThanks I'll see if any of the juju core folks can take a look15:53
mbruzekarosales: Yes I believe that is the necessary next steps15:53
mbruzekarosales: I saw you ping them already last week for this.15:54
mbruzekarosales: I pinged them on the issue, so they should have got a notification, I also asked katco to review via IRC last week.15:55
arosalesmbruzek: i also pinged again in juju-dev15:56
arosalesmbruzek: thanks for the info and work on it15:56
mbruzekarosales: ack.15:56
arosalesevilnickveitch: let us know if you see any major issues with https://github.com/juju/docs/pull/112215:58
evilnickveitcharosales, nothing major, was waiting for a +1 on technical content16:01
arosalesevilnickveitch: ack, and thanks for taking a look16:03
admcleod-cory_fu: kwmonroe kjackal petevg what state should i be using from the bigtop plugin to ensure its ready before installing pig?16:03
kjackalbigtop.available16:03
petevgBeat me to it  ... it's in the new README :-)16:04
admcleod-kjackal: petevg so if bigtop.available, hadoop is installed?16:05
kjackalno wait, you need to run puppet apply after the bigtop.available16:06
kjackalhowever for hadoop I guess you will need to wait for the hadoop.ready state of the plugin16:07
admcleod-kjackal: ok, thanks16:07
admcleod-kjackal: where does the hadoop.ready state come from?16:13
cory_fuadmcleod-: The hadoop.ready state comes from the plugin interface layer: https://github.com/juju-solutions/interface-hadoop-plugin#provides16:21
admcleod-cory_fu: thanks16:21
=== frankban is now known as frankban|afk
=== redir_afk is now known as redir
magicaltroutanyone know if the mongodb interface actually works?18:40
magicaltroutit appears to be missing a provider18:40
magicaltroutcmars: ?18:40
cmarsmagicaltrout, it works for the requires side18:41
magicaltroutokay thats all I need, but I don't seem to be getting hostnames and stuff18:41
* magicaltrout checks some more18:41
cmarsmagicaltrout, use the .connection_string() method on the arg passed to your reactive handler18:43
cmarsmagicaltrout, the state you'll want to handle is @when('<name of requires endpoint in your charm>.database.available')18:43
cmarsmagicaltrout, for example: https://paste.ubuntu.com/16872701/18:45
magicaltroutah right, hadn't quite guessed the .connection_string() bit18:45
cmarsmagicaltrout, i usually just update unitdata and re-run a setup() function that gets called on relation hooks, config-changed, etc18:45
magicaltroutthanks for that18:45
cmarsmagicaltrout, sure thing18:45
mbruzekbdx:  ping18:48
j_kingodd behaviour with the MySQL charm on the Trusty vagrant juju image... says the InnoDB plugin cannot allocate memory for its buffer pools... the machine doesn't seem to be out of resources... anyone else getting this?18:54
j_kingmaybe need to bump the box size.18:55
magicaltroutj_king: dunno if its the same or if it even applies any more but: https://jujucharms.com/mysql/18:57
magicaltroutcaveats section18:57
j_kingmagicaltrout: ah, ty. I'll check that out too... seems relevant given what the logs are spitting out.18:58
magicaltroutcmars: i'm hitting the same error I had before with your tweaks: https://gist.github.com/buggtb/599e536da5e58d5180fe72e183f12c6619:05
magicaltroutTypeError: Can't convert 'NoneType' object to str implicitly19:05
magicaltroutseemingly its returning the None object19:05
magicaltroutany idea what the requirements are for it to not return None ? :)19:06
cmarsmagicaltrout, both hostname and port would need to be provided in the relation19:07
cmarsmagicaltrout, you could get None if you've just joined the relation but the handshaking hasn't "settled" yet19:08
cmarsmagicaltrout, wait, that's not right..19:08
magicaltroutpeople often say that to me19:09
cmarsmagicaltrout, if .available is set, connection_string() should not be None in the first place19:09
cmarsmagicaltrout, i wonder if this charm is in a weird state from a series of upgrades in development?19:11
magicaltroutcould be19:11
magicaltrouti shall tear it down and start again19:11
magicaltroutthanks cmars19:11
cmarsmagicaltrout, but i'd program defensively in this case, and test the connection_string() at the top of the function19:11
magicaltroutk19:12
bdxmbruzek: sup19:13
bdxmbruzek: thanks for the review ... I fixed her up19:13
mbruzekbdx: I already wrote tests for you19:14
mbruzekbdx: https://code.launchpad.net/~mbruzek/charm-helpers/add_uid_gid/+merge/29613219:14
bdxmbruzek: thats awesome, just seeing that now. rawk!19:14
mbruzekI was meaning to put this merge in all morning but was swamped with meetings19:14
mbruzekbdx: Thanks for the charm-helpers submission.19:15
mbruzekFeel free to extend/enhance the tests19:15
mbruzekbdx: Also I don't see the "<<<<< TREE" stuff in my host.py file, I think that is an artifact of the bzr diff.19:16
bdxthe tests look great, yea, that was the one question I had ... ok19:16
bdxmbruzek: what does the patch decorator do?19:17
mbruzekbdx: it makes it so if the code in that method call the class, python steps in and lets you define the return value or throwing exceptions19:17
bdxnice, perfect19:18
mbruzekbdx: We use that to patch out the system calls that would return different users on different systems.19:18
mbruzekWe can then check the patched objects were called with what we expected.19:19
mbruzekAnd python does not make the call to subprocess and create a bunch of users on the test systems.19:19
bdxahh, so patch basically mocks os level ops?19:20
mbruzekbdx: https://docs.python.org/3/library/unittest.mock.html19:20
mbruzekbdx exactly!19:20
mbruzekThe patch() decorator / context manager makes it easy to mock classes or objects in a module under test.19:20
bdxmbruzek: makes total sense, and is super cool. thanks for the heads up on that19:21
mbruzekbdx: No problem. Thanks for putting in some work on charm-helpers, *we* really appreciate that19:22
bdxentirely!19:23
bdxthe uid and gid specification will make it easier to nfs mount and match uid/gid for the provisioned/permissioned user across multiple hosts19:24
mbruzekbdx: Right. I saw the merge proposals for the big data stuff using this stuff19:25
bdxtotally ... I want to create a user/groups provisioning layer .. I see myself lifting a bit from DistConfig in jujubigdata19:27
magicaltrouti saw that chat. User provisioning layer would be super useful19:32
magicaltroutbut also making users a "thing" that juju can manage globally(outside of charms) would be very helpful as well19:34
bdxmagicaltrout: yea, I feel like juju-core is so close to providing that functionality .....19:35
bdxthe disconnect is model-users vs os-users on the machines19:36
bdxmodel users all assume the ubuntu user with the addition of the model users key in authorized_keys .... which is a no no for PCI compliance :-(19:38
bdxadding users as a first class citizen is a huge step for juju in general ... I  foresee the provisioning of model users down to the machine level to be a logical next step eh?19:39
magicaltroutyeah absolutely. Charm builders need users for installing services in specific user spaces, thats granted, but hackish if you do it in python or whatever19:42
magicaltroutcharm consumers need users so they can grant access to boxes for specific users by ssh keys/passwords whatever19:42
magicaltroutbut the grail is also connectivity OOTB to LDAP or something more "enterprisey"19:42
bdxmagicaltrout: totally19:43
magicaltroutwhen i do stuff with NASA for example, all their boxes are secured with Kerberos, unsurprisingly19:43
magicaltroutand it would be great to roll out a charm and have it hook up to a kerberos realm without me pissing about with a bunch of hacks19:44
bdxmagicaltrout: yeah, a problem I face in my organization as well19:44
lazyPowerbdx - wanna tune into the fridge again later today? ~ 5:30 normal EOD time for me i'll kick up a stream19:46
magicaltroutbeing able to say "here's my service/unit, here's the users/group in my kerberos setup I want to give access to, now make it so" would be fscking amazing19:46
lazyPowermagicaltrout - all that is theoretically doable. Kerb is controlled by env vars right?19:47
bdxlazyPower: cheaaa!19:47
bdxmagicaltrout: yea, so a kerberos subordinate!19:47
lazyPowerbdx aight i may be a bit late. hacking on a layer for a blog post atm. I'll hit you with a link when its got frequency19:47
bdxnicccce!19:48
magicaltroutoooh it works cmars, must have been a failed upgrade19:49
cmarsmagicaltrout, nice!19:49
magicaltroutokay next random question for anyone who wants it19:53
magicaltroutI'm creating a relation and I need to create a dynamic name for it, preferably based on the relation id19:54
magicaltroutwhen i'm mid-hook in a reactive charm, can I get the ID?19:54
magicaltroutdoes it even have an ID?19:54
magicaltrout:)19:54
magicaltroutmy thinking being, say a model has 2 different mongo db services19:55
magicaltrouta user creates a relation between both and drill19:55
magicaltroutI need to create an entry for them within drill, but i also need to know to which relation it belongs so I can remove it19:56
magicaltroutcome on cory_fu you know crap like that! :P19:58
lazyPowermagicaltrout - you use the conversation scope and relation-name to give that clearly defined paths of behavior and communication20:01
cory_fumagicaltrout: Each relation does have an ID, and you can get them, however in the reactive "world" there may be multiple different relations in a given state at a time, so you're not encouraged to deal with the relation IDs directly20:01
cory_fumagicaltrout: I'm also not sure what you mean by "remove it"20:01
lazyPoweryeah, what cory_fu said20:01
magicaltroutokay, so I create a drill service, and a mongo db service20:02
magicaltroutI connect the two20:02
magicaltrouton the drill side, i run a small rest call to the server to register the datasource20:02
magicaltroutthen when I remove the relation, i need to prod the same rest service with the name of my blob to delete it20:02
magicaltroutthis in a 1:1 model where you could only have 1 mongo and 1 drill for example is easy20:03
magicaltroutbut if I have 2 mongos and 1 drill, i need some dynamic naming convention that I can track to a relation20:03
magicaltroutof course mongo could be anything, and the id can be anything, i just want a way to relate my datasources to a specific relation so i can de-register them20:05
cory_fuOk, so if you have 2 mongos connected, I'm going to assume that it will be two different mongo services connected and not the same one connected twice.  If that's true, you could use the name of the service to identify them (which is what lazyPower referenced when he said "conversation scope")20:05
magicaltroutalrighty, sounds far more sensible20:05
cory_fumagicaltrout: You could also generate a UUID and store that either on the relation data or in the conversation's local data (https://pythonhosted.org/charms.reactive/charms.reactive.relations.html#charms.reactive.relations.Conversation.set_local)20:05
magicaltroutservice name sounds far more sensible and human understandable20:06
lazyPowerI'm all for having a simple implementation!20:10
magicaltroutindeed20:10
lazyPowerI'm happy that little blurt of jargon helped actually20:10
lazyPowercory_fu *ta* for cleaning up another one of my messes :)20:10
magicaltroutfrom an outsiders/newbie perspective its about trying to figure out the correct patterns20:11
magicaltroutbecause I/we just make it up as we go along20:11
magicaltroutmostly from prodding around in python docs and random stuff20:12
magicaltroutso Service Name, if i want that lazyPower do I use hookenv.service_name ?20:13
lazyPowerthat works20:13
lazyPowermake sure you're using distinct names in metadata.yaml for those relations too20:13
magicaltrouthmm but the docs say the service this unit belongs to20:13
lazyPoweroh you're looking for remote_unit20:13
* lazyPower looks20:13
lazyPower1 sec20:13
magicaltroutsounds better20:13
lazyPowerhttp://pythonhosted.org/charmhelpers/api/charmhelpers.core.hookenv.html#charmhelpers.core.hookenv.remote_service_name20:14
magicaltroutoh yeah20:14
magicaltroutwhat d'ya know20:14
magicaltroutwho gave it such a sane name20:14
cory_fuOh hey20:14
cory_fuBe careful using that in reactive20:14
lazyPower+1 to that sentiment as well20:15
cory_fuThat will only work in an active relation hook context, which may not be the case in reactive20:15
magicaltroutwhat does that mean in english?20:15
cory_fuYou should instead use Conversation.units or Conversation.relation_ids20:16
lazyPowerfor conv in self.conversations():20:16
lazyPowerand you can scope it with each conversation id and pull data in/out of the bag20:16
cory_fuIt means that reactive handlers might be triggered in, say, update-status, and remote_service_name will return None20:16
lazyPoweryeah, remote_service_name from hookenv relies heavilly on only being used in the hook context, and reactive is a large abstraction away from that.20:16
cory_fuYou can use conv.scope, as lazyPower suggests, but conv.units (a list) is probably better20:17
cory_fuOk, in a meeting20:17
lazyPoweri know enough about interfaces to be really dangerous20:17
lazyPowercory hasn't hit me over the head about any of them yet... but i don't think he's seen them all20:17
magicaltroutokay so help me out here lazyPower if you're not moving too much. I've seen self.conversation() in interfaces20:28
magicaltroutso I can call that in a standard reactive charm as well?20:28
lazyPowerso long as you have an active instance of the interface, and that interface is scope: global20:29
lazyPoweri think i may be wrong on the last part20:29
lazyPowerbut humor me until we find out otherwise20:29
magicaltroutsomeone needs to write a book on this stuff20:31
magicaltroutblimey its confusing20:31
magicaltroutReactive Juju Charms cookbook20:38
magicaltroutthat is whats needed in this world20:38
=== natefinch is now known as natefinch-afk
lazyPowerjose was going to then we changed literally -everything- on him20:43
bryan_attgnuoy: ping20:56
magicaltroutlazyPower: okay so i have a unit list like cory_fu suggests: {'', 'mongodb/0'}20:58
magicaltroutso I should get a non null one and extract the service side of it, for a sane naming convention/20:58
iceyare charmstore revision numbers ever going to be useful anymore?21:01
lazyPowerzing!21:01
rick_h_icey: not really, the goal is to move to channels being meaningful21:01
magicaltroutta21:02
rick_h_icey: revisions are just to access stuff not stuck into a channel21:02
lazyPowermagicaltrout - sounds about right.21:02
iceyrick_h_: people sometimes refer to us with the rev number so that they can tell us what they had deployed :-/21:02
iceyoh well21:02
lazyPowericey - i dont think that changes. revisions are still a linear thing right?21:02
rick_h_icey: that's meaningful if it came from the store, you can stick that in a bundle and replicate their exact setup21:02
rick_h_right21:02
rick_h_revisions still go up up up21:02
lazyPoweryeah, the channel just references a revision number21:02
iceyuhm apparently nope: https://jujucharms.com/ceph-osd/21:03
iceyrev 221:03
godleonHi folks, is there any IRC channel for discussing charm of solutions, e.g. OpenStack, Big Data ....?21:03
iceyafter 2+ years of deploying...21:03
magicaltroutgodleon: you're in it21:03
rick_h_godleon: here is as good as any :)21:03
lazyPowericey it reset the revision number... did the charm recently change owners?21:03
lazyPowerthat was a known bug at one point21:03
magicaltroutall day the charm store has said no owners to a bunch of stuff21:03
godleonmaficaltrout, rick_h haha, really? I though it should be discussed in mailing list21:04
godleonhas someone ever tried to deploy multiple hypervisors OpenStack before ?21:05
rick_h_godleon: there's a juju mailing list21:05
rick_h_godleon: so the newest juju2 and the openstack team are working on multiple hypervisors with a lxd and kvm solution21:05
rick_h_godleon: so the openstack folks have definitely been trying it and working on it21:06
godleonrich_t oh? Canonical openstack team is working on multiple hypervisors(lxd + kvm) now?21:08
rick_h_godleon: yes21:08
godleonrick_t, I tried to do deploy that yesterday, but I found it's a little bit buggy.21:09
rick_h_godleon: https://jujucharms.com/lxd/xenial/1 ?21:10
godleonrick_t, yes, that the one of the charms.21:10
godleonrick_t, I found the nova-scheduler can not work properly, maybe I just used the wrong charm relationship, but I am not sure about that.21:11
godleonrich_t, I used the LXD openstack bundle as base to modify it to a multiple hypervisors bundle.21:11
beisnergodleon, we have a proof-of-concept (dev/test) multi-hypervisor test scenario that's in pretty good shape.  although, it is currently only validated with juju 1.25.x.  there are some specific configs and image attributes necessary in order to get the scheduler to place instances appropriately.21:12
godleonrick_t, I can see the different hypervisors in Horizon, but it can not work correctly as I expected.21:12
beisnergodleon, ie.  we can fire up kvm and lxd instances and they do get scheduled to the right type of hypervisor based in image attributes.21:13
godleonbeisner: ok, what image attributes should I input? and where should I input???21:13
bdxbeisner: hey! thats awesome!21:14
bdxbeisner: where is that being developed?21:14
godleonbeisner, yes, I saw that in the youtube video, but bcz I didn't see the demo, so I don't know how to set the image attributes.21:15
beisneras soon as launchpad comes back to life i can link you guys to the dev/test (ymmv/bleeding) bundle21:15
beisnerwhich includes a lil readme to describe the deploy/post-deploy config/basic test process21:15
beisnerhey bdx !21:15
godleonbeisner: do you mean readme for multiple hypervisors?21:16
beisnergodleon, it's a poc test scenario.  not official documentation, nor is it intended for production as it uses the tip/master charm set.  but this has been working since ~January so the stable charms should have the same basic functionality.21:17
beisnerone could substitute our git: blah  charm branches for pinned charmstore revisions (stable charms)21:17
beisneri think at some point we may publish an official bundle, but i suspect seeing our test approach will give all the info one would need to take it for a spin.21:18
beisnerbdx, godleon, there is a network outage at the moment, not sure how long that will last.  i'll paste a link back here for reference later.  o/21:26
godleonbeisner: ok, thank you very much! :)21:28
magicaltroutwoop thanks lazyPower. That seems way harder than it should be (for a newb) but it appears I have a working mongodb relation21:30
magicaltrout\o/21:30
lazyPowermagicaltrout the first one is always the trickiest :)21:30
* magicaltrout dumps some data into mongo to test SQL access21:30
lazyPowerand pat yourself on the back knowing you've accomplished one of the hardest things to do in juju according to > 3/4 of the people i've onboarded21:31
magicaltroutlike the actual code, I don't have a problem with its easy enough to grep your way around. But I come from a java world where when stuffs broken we just attach a remote debugger and step through it in the IDE. In python & debug-hooks whilst its a great way to stab stuff, its still pretty complex to be able to debug you code, especially now in reactive world21:32
magicaltroutagain thats probably more lack of understanding as opposed to it actually being stupidly complex, but it does make life hard21:33
magicaltrouthttps://ibin.co/2j5wKx7V1x6C.png there you go lazyPower22:21
magicaltroutsql over mongodb powered by some juju hacking22:21
lazyPowernice!22:21
magicaltrouti actually have a proposal in with a client to create an elastic search adaptor for drill22:21
magicaltrouti don't think they'll go for it, but if they did, it could be SQL over beats ;)22:22
arosaleslazyPower: as I don't see mbruzek around atm I wanted to ask if there was a pull request for updating k8 upstream23:36
* arosales didn't see one @ https://github.com/kubernetes/kubernetes/pulls but I may have missed it23:36
arosaleslazyPower: also https://github.com/kubernetes/kubernetes/tree/master/cluster/juju/layers/kubernetes is missing a LICENSE file which I think needs to be Apache23:37
arosalesand copyright23:37
arosalesand I guess the bundles @ https://github.com/kubernetes/kubernetes/tree/master/cluster/juju/bundles should have something similar to https://api.jujucharms.com/charmstore/v5/bundle/hadoop-processing-3/archive/copyright23:40

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