[00:34] firl, oh. you might want to join #maas [00:34] firl, i don't know the answer to that question [00:35] It’s more about the charms not working that’s why I was figuring here [00:35] ah ok [01:15] firl - there's some work on that front w/ the latest charms [01:15] firl - you can use a juju action to prepare a node for maintenance aiui [01:55] lazyPower, o/ [01:56] o/ [01:56] lazyPower, do you have an idea whether there's a function to return back to the cli when a juju set is invoqued with the wrong value? I thought log() was it but it's not... i'm doing this in the keystone_context.py https://pastebin.canonical.com/151407/ [01:56] i am looking at the charmhelpers here but i've no clue [01:57] magicaltrout: nice re: tutoriala @ apachecon. I know a few of the big data team will be there, I'll work with jcastro to kick off an email with you and them to make sure we have the right amount of support for you [01:58] lborda OH! you mean extended status feature? [01:58] lborda - as in status-set blocked "Incorrect config value" [01:58] * lazyPower was trying to recall what you meant by return to cli [02:00] i mean example juju service keystone log-level=BLA where bla is not in ['WARNING'...] I want to block the config-changed behaviour before it screws the service [02:00] lazyPower, ^ [02:00] lazyPower, juju service set keystone log-level=bla [02:00] yep, status-set blocked and return. [02:04] lazyPower, really ? do you have an example, is this supposed to be done in the context ? ex keystone_context.py ? [02:05] lborda i'm not really familiar with the innards of the keystone charm so thats a hard one for me to answer, sorry :( [02:08] lazyPower, tks i will do some research here on other charms that could have implemented config value checking [02:09] lborda - if thats all you're wanting to do is just validate config vs the value, you use status-set to pipeline a message back thats viewable in `juju status`, the logic you take from there varies from charm to charm. [02:10] and using log() is fine too, but the juju logs tend to be spammy and its easy to miss one liners in there [02:11] lazyPower, agree but i'd think that status-set or the checking I am trying to do should executed before config-changed or status-set... i just want to make sure the user does not enter a weird parameters and the service in a unknown state [02:12] unless you exit > 0, checking it before during or after isn't going to help you can still get into a nebulous state. Suggested you pick a sensible default, and if the user typos it defaults to like WARN or something. [02:12] thatway the service is always configured properly, it has a sensible default, and if they typo it, it'll do its best to hand hold htem. that or let it blow up so its obvious it happened. [02:14] lborda - when you say keystone_contexts.py - thats a template rendering context, right? [02:14] lazyPower, yeah I am not sure I am being too zealous but I see that checking when it's a boolean so I am assuming I can do that too... [02:14] $ juju service set keystone use-syslog=Tasdfasdfasdf [02:14] ERROR option "use-syslog" expected boolean, got "Tasdfasdfasdf" [02:15] lazyPower, yes it's the template [02:15] you cant do anything client side, as its a string input it accepts anything that is a string [02:16] there was a feature request to support ENUM at one point, not sure what happened there, as it doesn't exist in juju as we know it today. [02:17] lazyPower, hummm I see it would be nice if we could specify in the config.yaml file the acceptable values so the juju would know beforehand... [02:18] Yeah, any validation will have to be done in the charm code itself. It's not the most ideal thing, but it certainly gets the job done. [02:20] lazyPower, agree... the boolean check is not done by the charm itself imo... I searched by the output message and couldn't find it... it's the agent's response in this case... [02:20] lborda - right, the client will stop you from putting in string types in ints and bools, but a string data type is pretty broad and validation is up to the charm [02:21] s/charm/charm author/ [02:21] There's quite a few charms that don't do validation and blindly take the config value and populate the template with it. Assuming you know what you're doing it. [02:22] s/doing it/doing with it/ [02:23] lazyPower, agree well maybe I am being to careful... :) [02:24] If it reduces the number of papercuts end users feel with the charms, you're doing the work of a devops humanitarian and we appreciate you for the consideration :) [02:24] lazyPower, i will use the log() anyways at least the user will know what happened... and will look at seeing if I can modify the status-set to include the error too [02:24] lazyPower, lol yeah tks saving the world one bit at the time :) [02:31] lazyPower, tks! EOD bye === lamont` is now known as lamont [05:43] Hi [05:44] I have created a new interface by name db2 and have written the provides and requires part of it. While deplying the charm I am getting an error: AttributeError: 'db2Provides' object has no attribute 'set_ready' [05:45] Any idea what does this error mean ? [10:31] hello. Can one of the charmers please tell me what is the delay on https://bugs.launchpad.net/charms/+bug/1538573 ? [10:31] Bug #1538573: New collectd subordinate charm [13:14] i changed my launchpad id [13:15] what happens in charm world. Will the charm change url as well once a new build goes through? [13:15] magicaltrout: it gets very upset [13:15] magicaltrout: it doesn't get info on the rename so it doesn't know who you are [13:16] magicaltrout: there's work to try to sync the two systems better, but it's in the design state atm [13:16] well i'm not bothered about the old ones going missing [13:16] no one uses them [13:21] oh well whats done is done! :) [13:22] magicaltrout: sorry, you've found one of our problem spots we're just starting to work on [13:29] magicaltrout: just reupload 'em all ;) [13:30] marcoceppi: i pushed a new bzr push to the new repo, does that count? [13:30] clearly not being able to see the build process, i'm just guessing :) [13:30] magicaltrout: it should eventually count [13:30] * marcoceppi can't wait for charm push to exist [13:30] also I filed a bug for cards the other day and i have another, but I forgot which repo [13:31] which is it? [13:32] hmm well juju-cards wasn't where I sent the bug to [13:33] oh [13:33] jujucharms.com [13:33] which is right? [13:35] magicaltrout: what's the issue? (curious while I figure out where to put it) [13:35] magicaltrout: https://github.com/CanonicalLtd/jujucharms.com [13:35] marcoceppi: if i click on a card the url is wrong and just dumps me on a 404 [13:35] was the original bug [13:35] because my charm isn't in the recommended namespace i guess [13:36] magicaltrout: that shouldn't be a problem. [13:36] http://www.meteoriteconsulting.com/spinning-up-pentaho-data-integrations-quickly-with-juju/ [13:36] well its there [13:36] you tell me :P [13:36] and the same on another non wordpress page i'm working on [13:36] so its not like WP is munging the url [13:37] magicaltrout: oh bother. [13:37] magicaltrout: I see, it's not respecting the username, wtf [13:37] nope [13:37] https://github.com/CanonicalLtd/jujucharms.com/issues/216 [13:37] but i'd assume the fix is pretty trivial [13:37] Yeah, but it'll take a few days to get out [13:38] well its no biggie, just something I noticed [13:38] magicaltrout: I have an alternative implementation of cards, an earlier release, if you wanted to make sure those worked until the new release [13:38] but also, css descriptors like footer are pretty common on exist websites, the cards css should get a prefix or something [13:38] was bug 2 [13:39] tjat [13:39] that's also a good point [13:39] i'll dump it into jujucharms issues as juju-cards has none [13:39] and you lot can figure it out [13:40] okay 216 and 225 are my cards bugs [13:41] ooh i lied [13:41] 225 is a bit different [13:42] scratch that i'll close it [13:42] 216 it is then [13:47] magicaltrout: I found the repo [13:49] marcoceppi, jamespage: fyi, we had turned off ingestion in the morning due to ceph problems. that seems to be resolved now and we'll reenable it again. just in case you're missing any new charms in the store [13:50] urulama: thanks for the info magicaltrout ^^ [13:50] aye [13:50] can someone answer jacekn as well [13:50] he's asked about his charm on a couple of days and doesn't know whats happening :) [13:51] https://bugs.launchpad.net/charms/+bug/1538573 [13:51] Bug #1538573: New collectd subordinate charm [14:46] marcoceppi: you got any idea about my leadership election q on the ML [14:47] I'm trying to get these PDI tests ironed out so I can do other stuff as they've take 4 days or something already :) [14:47] magicaltrout: yeah, I was looking at it thinking about how we could solve this. I think adding the feature to amulet is the way to go [14:48] magicaltrout: basically, you should be able to at anytime query self.d.unit['service'].leader() to get back the UnitSentry for that leader [14:48] for that service* [14:49] yeah but in a test context, I don't see how that helps me wait for leader election be detected by juju and rerun [14:50] its like amulet should have something like a wait_until() type function, where we could pass in various core things the platform does. [14:55] magicaltrout: well, if you take out a leader, everytime you run the leader command in amulet it'll pull fresh again [14:56] magicaltrout: so you'd basically: stand up environment, test it's idle, remove the leader, test it's idle, get new leader, continue with testing [14:58] https://github.com/OSBI/layer-pdi/blob/master/tests/04-test-leaderelection.py#L24 [14:58] well you can see what i've starting trying here [14:58] I want 1 node, check the status, and get the leader ip from my message [14:58] then stand up 2 more and make sure the charm hasn't changed the leader ip [14:58] then i want to switch off unit 0 [14:59] and check that the ip has changed, and also verify some configs on the units [15:06] sure [15:06] let me see if I can add this into amulet to help smooth out the experience [15:08] but first, breakfast [15:11] * magicaltrout needs to avoid the house today as I've just discovered that the 1 year old didn't fancy a nap today and the mrs is fuming..... [16:40] hi, I'm having a problem with the charm build step [16:40] created a new interface, and added it to interfaces.jujusolutions.com: http://interfaces.juju.solutions/interface/conn-check [16:41] but when trying to build the charm, it fails to fetch it: "build: No fetcher for url: https://git.launchpad.net/~ubuntuone-hackers/charms/+source/conn-check-interface" [16:43] after looking at the code, looks like this is the problem: https://github.com/juju/charm-tools/blob/master/charmtools/build/fetchers.py#L73 [16:43] only github is supported for hosting interfaces/layers? [16:48] verterok: no, git is supported for lp as well, stub has some layers/interface in lp git [16:48] marcoceppi: yeah, saw stub layer/iface, so I used lp git [16:49] marcoceppi: then looks like charmtools/build/fetchers.py has a bug: https://github.com/juju/charm-tools/blob/master/charmtools/build/fetchers.py#L73 (or I'm not understanding the code) [16:52] marcoceppi: looks like Icey already filed a but about this: https://github.com/juju/charm-tools/issues/124 [16:54] stokachu: ditto the ghost charm [16:54] jcastro: ok [16:54] verterok: I'll see if we can patch that [16:55] i can do those tonight probably [16:55] stokachu: actually, if you could just make a general effort to submit all your layered stuff to the proper stuff that would be swell [16:55] stokachu: what I'd like to do is ping each upstream for each layered charm we have [16:55] jcastro: you're swell [16:55] to have them check it out. [16:55] jcastro: sure thing man, ill get my charms pushed up [16:55] all my layers are on interfaces.juju.solutions already [16:56] yeah, I mean more for the end-usery ones, like ghost, etc. [16:56] jcastro: ok cool, yea ill get them submitted [16:56] sort of like how you trust something when you see it on github.com/projectname/project instead of github.com/~someguyyouneverheardof/project [16:57] jcastro: i have blind faith [16:58] marcoceppi: thanks [16:58] verterok: interesting, it seems it should work... [16:58] verterok: https://github.com/juju/charm-tools/blob/master/charmtools/fetchers.py#L121 [16:58] I can workaround it with a local interfaces path [16:59] marcoceppi: right, but build/fetchers.py#L73 is truncating the url [16:59] verterok: I see now, it expects a flatter namespace for gitLP, stub has his at git.launchpad.net/ [16:59] ah, will change mine and try again [16:59] thanks [17:00] verterok: that line isn't used, L74 is the one that does the actual job, not sure what u is used for [17:00] verterok: we need to make the fetch pattern smarter [17:00] verterok: but you don't have to put layers under the charms distro [17:23] marcoceppi: should I move it out of charms/+source? [17:25] marcoceppi: also, is there a convention on where/how to put source vs built charms (when using composer)? [17:27] verterok: yes, first it's called build not composer anymore, second, we suggest layers be their own project and built charms just get uploaded to the store. there's a new charmstore cli coming out (charm command) that allows you to just "push" a charm to the store, so no more ingestion [17:30] marcoceppi: ah, cool. thanks for the details === redelmann is now known as litio [17:31] marcoceppi: one last question, same for interfaces? a project for each? [17:33] verterok: basically. we've been prefixing them as layer- and interface- as a convention [17:33] verterok: but yeah, they're all their own software projects [17:33] got it, thanks [17:39] lazyPower: how finished do you consider yout redmine layered charm? [17:39] not at all [17:39] its a learning tool in its current shape [17:42] jcastro - i have one thing to call out about the status of the redmine layered charm - TAL at the readme for the layer repository - https://github.com/chuckbutler/redmine-layer [17:44] lazyPower: hah!~ [19:37] cory_fu: are there any implications to this merge or is it transparent to users? [19:37] https://github.com/juju-solutions/charms.reactive/pull/58 [19:41] It should be transparent [19:44] cory_fu: love the mirgration and unit tests <3 [19:45] :) The migration will still leave deployed charms suffering from the issue, but at least they'll work the same as they did before [19:45] http://askubuntu.com/questions/743934/trying-to-upgrade-juju-from-1-25-3-to-1-25-4 [19:46] can someone help with this one? [19:47] jcastro: https://launchpad.net/~juju/+archive/ubuntu/proposed [19:47] jcastro: since it's just in proposed you need either upload tools or to update the streams I believe. [19:48] jcastro: are you answering? [19:49] marcoceppi: no, I am on 2.0 [19:50] rick_h__: he's using the stable ppa though, why would he need to use the proposed streams? [19:51] jcastro: oh hmm, not sure then [19:54] rick_h__ jcastro he has 1.25.3 installed, he probably say the .4 email [19:54] rick_h__: jcastro happy to reply [19:56] marcoceppi: yeah I am unsure what to say [19:56] jcastro: cool, np [19:56] marcoceppi: is the solution using the proposed streams? [19:56] jcastro: kind of [19:56] I feel like users should never have to care about streams unless they want to [19:56] just as a showerthought [20:00] jcastro, I dont disagree with you [20:03] jcastro: it's not a streams issue [20:03] well, not directly [20:19] jcastro: http://askubuntu.com/questions/743934/cant-upgrade-juju-from-1-25-3-to-1-25-4-due-to-missing-tools/743991#743991 [20:24] jcastro: we could clean that up for the docs as well [20:34] aisrael tvansteenburgh charmhelpers 0.7.0 released with resource-get support [20:36] thedac, looking good on https://review.openstack.org/#/c/290032/2 ... with jamespage's +1 pending the full amulet, i think it's clear to land. lmk if you're ready for that. [21:03] lazyPower: I think you submitted that pr against the wrong repo [21:03] haha [21:03] WHOOPS [21:03] <3 [21:04] oh man look at that commit stream of the diff too [21:25] beisner: I think that is ready. What is the process for that? I thought it was automated [21:31] thedac, yep it is. once it's got a code-review +2 and a workflow +1, it'll go through upstream gate and merge if all is well. [21:32] Oh, it *is* merged. \o/ [21:33] yeah! :-) === scuttlemonkey is now known as scuttle|afk [21:35] beisner: and you should be happy about This one being merged https://review.openstack.org/#/c/289535/ Should fix your mitaka dashboard woes [21:39] thedac, yes, i am. thanks for the fixes! [21:45] aww crap my karaf submission was a tutorial as well.... 6 hours of apachecon tutorials to write [21:45] worst day of my life [21:49] wow, that seems...excessive [21:49] magicaltrout: hah, damn dude [21:49] indeed [21:50] that'll teach me to push the tutorial button [21:50] We might be able to recycle that material though [21:50] a focused big data primer [21:50] magicaltrout - would <3 a sneek peak at those as you put em together [21:50] yeah well i suspect there will be a bunch of bundles coming out the backend of this process [21:51] no pressure, and if that request adds to it, tell me to pound sand :) [21:51] na, i usually crowd-build my presentation/tutorial stuff anyway [21:52] becuase there's a lot more knowledgeable people than me who wont be attending ;) [21:55] tvansteenburgh: why was fetchers.py updated? === urulama is now known as urulama__ [21:56] marcoceppi: ported improvements from bundletester [21:56] tvansteenburgh: ah, cool, it's not actually used for pull-source though? [21:56] correct [21:56] well actually it is, for charms [21:57] the new CharmStoreDownloader will be used [21:57] tvansteenburgh: hum, we should deprecate that for charm pull when that lands instead [21:57] marcoceppi: maybe, i don't grok the difference [21:58] tvansteenburgh: well, we're duplicating functions, charm pull will down the download and extract from the source, no need to have a method that may drift from that [21:58] i can english. [22:05] magicaltrout: fyi http://pythonhosted.org/amulet/amulet.html [22:10] oooh bloomin marvelous [22:10] thanks tvansteenburgh [22:11] magicaltrout: sure thing. no doubt they can be improved. contributions welcome [22:12] tvansteenburgh: I've got some feedback for you on pull-source, overall +1 but some UX stuff is rough [22:12] yeah tvansteenburgh when I've written a life times worth of tutorials, finished the pdi and gitlab charms, released saiku 3.8 and finished that charm, remind me and i'll have a play ;) [22:12] :) [22:12] marcoceppi: thanks, will address [22:13] <3 [22:16] so here's a question tech boys.... if you were doing tutorials and had content to distrubte for classroom stuff [22:16] if virtual box still the way to go? [22:16] (esp if wifi and stuff is dodgy) [22:30] hey cory_fu - i had an idea today that i'd like to run by you [22:30] Sure thing [22:31] in my experiences with layer:docker - i've managed to use the layer in both a principal and a subordinate role. I find that often when i use the subordinat erole i'm connecting to the principal charm anyway, and i incur a bit of a penalty running the install on each subordinate [22:31] would it be good or accepted practice to make that a layer.yaml option, and short-circuit the install routine based on that config? that way for each sub that i know already has docker installed [22:32] it just skips along, and the layer retains default behavior to run that routine - so anyone including it always gets what they're expecting? [22:32] That, or intelligently detect if docker is already installed [22:32] Since you want to be idempotent anyway [22:33] But yeah, a layer option for "don't install by default" is reasonable. [22:33] thats my thought, as using it as baseline to get layer:basic, and the libs it ships with (charms.docker, et-al) is nice, but i dont need the extra bullets of many subordinates trying to control the version of docker on the host [22:34] Yeah [22:34] i like it, its juju centric, and minimal work for me to implement. thanks o/ [22:34] :) [22:35] lazyPower: you mean as an option defined in the layer or something that the reactive framework would read? [22:35] i mean define it in layer.yaml as an option [22:36] so any subordinate you build on top of it, has a snippet in the readme you can copy/paste into your subordinate and skip the whole install bits, and override the provides/requires as needed. let me link you to the beginnings of me thinking this - it came up while i was writing the logspout subordinate [22:37] so layer:docker can be used in either a principal or subordinate setting - https://github.com/chuckbutler/layer-logspout/blob/master/layer.yaml - and this little deletes line is all thats required to make a subordinate layer connect to a principal layer:docker based charm. [22:37] lazyPower: Another option, and I don't know if this is a good one, is to check metadata.yaml and see if the current charm is defined as subordinate and drive the install based on that [22:37] lazyPower: sounds reasonable, if it's using the existing layer options [22:37] That's kind of a terrible idea, though [22:37] Since, someday, you might want a subordinate that does install docker [22:38] I now have more questions than answers [22:38] marcoceppi: can you tell me what version of path.py you have in whatever env you tested pull-source in? [22:38] if i updated layer:docker to include layer.yaml based options, to tune that behavior - the output charm packs extra bloat in terms of files, but hte runtime doesn't incur the penalty of trying to do *anything* to manage the runtime version. [22:38] tvansteenburgh: ugh, mf path.py [22:38] lol, you can thank whit for that [22:39] :D [22:39] tvansteenburgh: path.py==7.4 [22:39] I'm a fan of path.py, but we have had a spot of bother with the versions of it, haven't we? [22:39] yep [22:39] cory_fu: it's a constant source of pain for me. [22:40] it bit us in charm land, and its bit marco in tooling land [22:40] marcoceppi: okay thanks. [22:40] and packaging come to think of it [22:40] marcoceppi: are we stuck with that version for packaging reasons? [22:41] I lose sleep over three things: pondering the meaning of life, my neighbors TV, and path.py [22:41] marcoceppi: if so that's fine, i'll just patch the prob. upgrading would fix it though [22:41] tvansteenburgh: so, 8.1 is in Xenial [22:41] 7.4 is what I packaged for trusty, but we can move to 8.1 if it fixes this [22:42] marcoceppi: yeah your last error doesn't happen with 8.1 [22:42] 8.1.2 is what i have [22:42] tvansteenburgh: that's in xenial, that's what we'll use http://packages.ubuntu.com/search?keywords=python-path [22:42] someone finally packaged it [22:43] tvansteenburgh: please update requirements.txt [22:43] marcoceppi: okay thanks, will do [22:43] * marcoceppi remakes and retests [22:45] tvansteenburgh: that works === thumper is now known as thumper-dogwalk