[00:01] bolthole : well huzzah for random workingness :) [00:04] bolthole: sorry about the quickstart papercut though :/ === urulama__ is now known as urulama === narindergupta is now known as narindergupta_aw [08:41] jamespage: https://code.launchpad.net/~celebdor/charms/trusty/nova-cloud-controller/liberty/+merge/283709 [08:42] did you have a chance to look at the merge proposal? [08:44] jamespage: I take it that were waiting for after the release to merge them since the branch is probably frozen (don't know if you do that or you make a frozen separate branch) [08:44] apuimedo, not yet [08:44] apuimedo, your tomorrows train work :-) [08:44] so long as things are looking and testing ok I'd hope to land later this week once we unfreeze [08:45] you are going to Brussels by train? [08:45] I finally decided for plane [08:45] apuimedo, btw we have plans to move all charm development upstream under openstack - I'm assuming that you might be supportive of that move? [08:45] apuimedo, eurostar is to easy :-) [08:45] jamespage: supportive is not enough. I'm enthusiastic about it [08:45] apuimedo, planes are ok but I have to transfer Norwich -> Amsterdam -> Brussels [08:46] you'll probably have a downstream release branch though, right? [08:46] apuimedo, I'm hoping to sprint on the last remaining technical blockers thurs/friday so can move forwards [08:46] apuimedo, nope - all git/gerrit [08:46] jamespage: that makes me happy [08:46] well have some sort of branch strategy for consolidated charm release points [08:47] apuimedo, charm store is moving away from the bzr based injestion to a direct publish model so that helps... [08:47] although having a downstream internal canonical clone for hotfixes makes a lot of sense [08:47] apuimedo, I'd rather do it all upstream [08:47] jamespage: so would I. I'm just speaking in practical terms [08:47] apuimedo, we're just moving everything we do now in launchpad/bzr to gerrit/git [08:48] that is the best news I heard for a while jamespage [09:34] Hi, goodmorning [09:34] jamespage, to whom sal I connected the juju-info interface required by openvswitch-odl?, p.s: Could you share with me a juju-status, it would be very appreciated to enable me to explore this information, thanks a lot in advanced. [09:41] D4RKS1D3, just relate it to nova-compute and neutron-gateway [09:44] Thanks jamespage [11:57] gnuoy, beisner: not sure that neutron-openvswitch got a charm-helpers sync [11:57] * jamespage checks [12:00] beisner, gnuoy: https://code.launchpad.net/~james-page/charms/trusty/neutron-openvswitch/16.01-resync/+merge/283933 [12:57] lazypower aisrael [13:48] marcoceppi [14:36] jamespage, yeah i've been finding onesy-twosey sync misses unfortunately [14:38] tvansteenburgh: o/ heyo - have you ever seen an issue like this bubble up when attempting ot test a bundle w/ bundletester? http://paste.ubuntu.com/14672009/ [14:38] lazypower: no [14:40] lazypower: pondering... [14:40] I got this stack trace from anton, a nexenta charmer [14:40] * lazypower is trying to reproduce [14:41] I have a partner getting an error bootstrapping, "ERROR failed to bootstrap environment: cannot start bootstrap instance: No default VPC for this user (VPCIdNotSpecified". I have never seen this before. Has anyone in #juju seen this problem? [14:41] mbruzek: i'm thinking thi sis an account permissions issue [14:42] but i'm not 100% positive ont hat [14:42] lazypower: OK I will ask [14:42] mbruzek: and i'm referring to the AWS API Credentials being provided to juju [14:42] yes I figured that. [14:43] right on :) I haven't had my coffee this morning, and if this week is anything like last week, i'm already speaking jibberish [14:43] lazypower: I had not thought of that, so I thank you for responding. I will send them an email [14:43] it could also be that the aws user is old enough that it predates vpc, and actually doesn't have a default vpc defined - that happened to me once upon a time === coreycb` is now known as coreycb [14:45] thanks tvansteenburgh! All good things to check. [14:46] lazypower: are the nexenta charms in lp? [14:46] tvansteenburgh they are, 1 sec and i can get you a link [14:47] tvansteenburgh https://bugs.launchpad.net/charms/+bug/1515717 [14:47] Bug #1515717: Nexenta Edge Charms to deploy edge cluster [14:47] lazypower: ta [14:57] urulama: are we in the middle of a deploy? [14:58] urulama: looks like our docs are 404'ing all the way down the url tree [14:58] lazypower: no, no deploy on production going on ... [14:58] lazypower: will look into it [14:58] i take that back, /stable/ is whats 404'ing [14:58] looks like /devel/ is still functional [14:59] and i spoke too soon [14:59] :-/ [14:59] weird behaviour! [14:59] * lazypower nods [14:59] Want me to file a bug urulama? [15:00] i'll put a task directly, thanks [15:00] np, thanks for taking a look [15:02] lazypower: i suspect that was an exact moment when docs got rebuilt ... [15:02] lazypower: i couldn't repro using the charm from lp, but, the first thing i would try is to ask him to reinstall bundletester in a venv [15:02] ok, i've got you cc'd on these emails. incoming update [16:04] cory_fu: I've got a use case for helpers.any_states [16:04] cory_fu: I'd like to add a @hook_any do you think that would work? [16:05] cory_fu: this is what I'm doing currently: http://paste.ubuntu.com/14672561/ [16:11] marcoceppi: Sorry, meeting. @hook_any? [16:11] Do you mean @when_any? [16:12] @when_any, yes [16:17] marcoceppi: Ok, sorry, meeting is done. [16:18] Ok, I'm fine with a @when_any in theory, but the issue is that, for states set by relations, you are in a position where a given relation instance might or might not be available, so how do you match up relation instances to handler args? [16:18] cory_fu: are relations keynamed invoked? or just passed as args? [16:19] And, more importantly, if a state is not set, you have no way of knowing if it would have been a relation state, so no way to know if it *would* have an instance if it were set vs if it's a non-relation state in which case it would not have a value regardless [16:20] maybe this isn't the best approach [16:20] marcoceppi: They are only passed by position, because you can name the args whatever you want [16:20] In the handler [16:20] marcoceppi: Really, passing args into the handler is not ideal, because there's already confusion about which states should expect args and which shouldn't. [16:22] cory_fu: yeah, I might need to rethink this a bit [16:22] It's definitely a problem, though. I've run into cases where having @when_any would make the code quite a bit cleaner [16:23] marcoceppi: You can always work around it by having multiple handlers, each with their own explicit conditions [16:23] But that can make the list of handlers quite cluttered [16:24] marcoceppi: For your specific example, it looks like all of those states that you're checking with any_states are really just a way of detecting whether or not you're in an action. Could you generalize that to a single "in-action" state? [16:26] cory_fu: possibly, but it's only a subset of actions [16:26] marcoceppi: Also, if we had https://github.com/juju-solutions/charms.reactive/issues/11 then you could just handle that with an @action decorator with some sort of pattern or wildcard [16:26] cory_fu: sure, but I'm still in a position that I have to mix @action and @when_not [16:26] True [16:26] does any_states support wildcard? [16:26] Not currently, no [16:27] cory_fu: interesting [16:27] marcoceppi: How are those states getting set? Could the code that sets those states also set a common "action-requires-configured" state? [16:28] cory_fu: :) https://github.com/juju-solutions/vpe-router/tree/master/actions [16:28] cory_fu: so it's possible that we could set that state [16:28] which might be easier [16:30] marcoceppi: You could also have the action code check for the vpe.configured state itself and handle the fail instead of doing it in the reactive handler [16:30] cory_fu: yeah, I was trying to avoid too much logic in the action file, wanted to keep it pretty boilerplate [16:30] but that is true [16:31] Fair enough [16:31] this is part strawman to see how actions in reactive would work [16:32] I do think that @when_any would be worthwhile to figure out, and more generally figuring out a better way to address the ambiguity in what states correspond to what params to a handler [16:33] One thought was to always pass in a single "context" arg that has methods for accessing the available instances. Of course, you can also always call charms.reactive.relations.RelationBase.from_state('state') and we could wrap that in a helper [16:34] cory_fu: kind of like how frameworks send in a single request object? [16:34] I had rather liked Whit's charm context proposal before he left, but no one picked that up. [16:35] cory_fu: you still can ;) [16:35] I know. :p [16:37] Switching to a single context param would be a pretty significant change to the reactive API, though. Definitely a 2.0 thing [16:49] i am currently evaluating juju as a solution, but am unsure of something. we have a use case where our clients would need to install our maas+juju cluster, and ideally i would like this to be done with a simple .deb package. is this possible? would i be able to automate juju in a way that it could autodeploy the services with an installer? [16:58] tertiary: i don't see why not. you can automate via the juju cli pretty easily [16:59] ah theres a cli, thanks === narindergupta_aw is now known as narindergupta === CyberJacob is now known as Guest84254 === Guest84254 is now known as CyberJacob === natefinch_ is now known as natefinch === urulama is now known as urulama__ [20:33] trying to install juju on Ubuntu 15.10 Desktop with juju-quickstart, getting the following error: "ERROR there was an issue examining the environment: failure setting config: cannot find address of network-bridge: "lxcbr0": route ip+net: no such network interface". It's strange, this does not happen on Ubuntu 15.10 Server... [20:35] tertiary did you install the juju-local package? and are you using the 'local' provider? [20:36] yesyes, just confired juju-local is installed. yes using "local" provider [20:39] tertiary: ifconfig lxcbr0 returns nothing? [20:39] yeah: lxcbr0: error fetching interface information: Device not found [20:40] one sec, let me boot up a vm and try something before i recommend it [20:40] k [20:40] tertiary: try `sudo service lxc-net restart` [20:41] tertiary: it can't hurt and its easy enough. then see if `ifconfig lxcbr0` returns status instead of error. [20:41] yeah same error [20:42] a very small docs comment: https://jujucharms.com/docs/1.25/authors-hook-debug someone has remapped ctl-b to ctl-a and it's written in to the docs as though ctl-a is hte default [20:42] speaking about the tmux session [20:43] just noticed it today [20:43] o/ skay long time on see :) [20:43] lazypower: hiya [20:43] skay : looks like the same issue was ported over into the devel docs - https://jujucharms.com/docs/devel/developer-debugging#the-'debug-hooks'-command [20:44] skay can you file a bug? http://github.com/juju/docs/issues/ [20:44] we'll circle back and add a footnote that the default key binding is ctrl-b [20:44] lazypower: I myself also remap ctl-b to ctl-a due to muscle memory of screen [20:44] change the code to match the docs, ha! [20:45] :) Thats possible too [20:45] skay - if you use dhx, you can customize all of that, even upload your own tmux config w/ things like powerline and the like. [20:46] `service lxc-net status` yields: "dnsmasq: failed to create listening socket for 10.0.3.1: Cannot assign requested address" [20:46] ahh, this came up the other day [20:47] dnsmasq is preventing the lxc bridge froms tarting [20:47] you can stop dnsmasq, start lxc-net, then restart dnsmasq - or reboot. [20:47] mbruzek: http://bazaar.launchpad.net/~charmers/charms/trusty/postgresql/trunk/view/head:/hooks/service.py [20:48] mbruzek: in the configure_sources hook [20:48] bdx: What is up? [20:48] mbruzek: it looks to me as if the sources are only added if both conditions are met correct? [20:49] mbruzek: sudo sysctl -w kernel.shmmax=15032385536 [20:49] ooops [20:49] my bad [20:49] mbruzek: if config['pgdg'] and config.changed('pgdg'): [20:49] lazypower: service status looks good after reboot, working now. thank you much sir. [20:50] bdx: Yeah it looks OK to me, if pgdg exists and it has changed generate the debian install line. [20:51] mbruzek: all versions of postgres other than 9.3 fail to install the postgresql binary due to sources not being available [20:52] because for any other version other than whats default in the repos the key and source have to be added [20:53] mbruzek: what I'm getting at, is that config.changed('pgdg') shouldn't ever be true [20:54] bdx config.changed('pgdg') will be true on first run and if anyone sets something else. [20:54] bdx: If it has a value the first time, if it is none the first boolean check will fail [20:55] bdx: I often use this pattern when doing configuration values. if config['key' [20:56] ] and config.changed('key'): [20:57] mbruzek: yes, but who wants to modify that config every time the `juju deploy postgresql` ? [20:57] tertiary glad we got you unblocked :) [20:58] mbruzek: it should be a prerequisite to have to change that param to have postgresql install other versions on install hook [20:58] ? [20:59] mbruzek: because it has no default value? [20:59] mbruzek: so http://paste.ubuntu.com/14674572/ [21:00] mbruze: will automaticall make config.changed('dbms') true [21:00] mbruzek: at the time of install hook? [21:01] mbruzek: I see, hmm, ok. thanks for clearifying that [21:01] bdx: Still checking, I am very confused thought we were hung up on pgpd parameter. Let me look at dbmz [21:01] oooh my bad [21:01] mbruze: will automaticall make config.changed('pgdg') true [21:03] typo in the .yaml I pasted you as well [21:03] pgdg is a boolean so it _has_ to have a default value (so it will have "changed" on first run) so I would expect `if config('pgdg') and config.changed('pgdg'):` to be true the first run. [21:04] I don't know about dbms or the version parameter. [21:04] mbruzek: ok, no worries, thats all I was after [21:04] bdx: stub write this charm code, and hangs out in the channel. If you have specific postgres questions you can ask Stewart. [21:06] mbruzek: my bad, I thought I saw you as the contrib for that, I see now it was stub [21:06] bdx are you stirring up trouble again ;) [21:06] bdx: I am always happy to help, but I had no context what you were asking. [21:07] bdx: if you have questions stub knows that code much better than I do. But again I am always happy to help if you have questions. [21:09] mbruzek, lazypower: I'm currently replacing our postgres clusters with juju deployed ones, just running into a few issues, thats all [21:10] bdx: Sure. [21:10] mbruzek: thanks, totally, I see that now [21:11] bdx: postgresql is one of the more complex charms we have I can see that one being hard to debug [21:39] Hi. I deployed a second mysql instance, and a gitlab instance, through juju-GUI on azure. They werent happy so I tried to delete them. BUt now they wont go away. How can I force them to go away? [21:39] the gitlab status is currently "error", with message; [21:39] bolthole if services are in error they will block [21:39] hook failed: "Db-relation-changed" for mysqlgitlab:db [21:40] bolthole you have 2 options - 1) to resolve every error (without retry) and just resolve it all the way down until it goes away [21:40] 2) juju destroy-machine # --force [21:40] which is a very very angry way to get rid of a service's units, and you can then juju destroy-service {{service}} [21:41] so basically, the "resolve" button, actually means "shut up I I nkow about it already" ? [21:41] correct. it will forcibly resolve the error (if you dont choose retry) and it will continue to the next hook in progression [21:41] that seemed to work. thanks! [21:42] np bolthole o/ [21:42] while i'm on the subject, how can I make a new instance of something with a different name, through the gui? ... [21:42] command line of "juju deploy mysql mysqlfoo" works. but cant seem to find equivalent in gui that actually works [21:42] when it is dragged onto the gui its "staged" [21:42] I tried going to the Configure option, and changin ghe name, and pressing save... but it doesnt stick? [21:42] you should be able to change the service name while its got the blue ring [21:43] but once its committed, its committed. You cant change the name [21:43] trying again... [21:43] adding to canvas... [21:44] Configure -> Serivce name: "Mysql-gitlab" ... Save changes.. [21:44] but when I click on configure again.. service anme is back to "mysql" [21:44] seems broken [21:45] bolthole: thats unfortunate :/ would you mind filing a bug? https://bugs.launchpad.net/juju-gui/+filebug [21:46] okay === natefinch is now known as natefinch-afk [22:00] lazypower: I don't know if you saw my edit to my comment on https://github.com/juju-solutions/vpe-router/pull/16 that explains more about the try / else construct in Python [22:00] i did [22:00] Ok. :) [22:00] that was all new to me, i had no idea python did try/except, and the except is intended to allow further exceptions to not be caught by the diaper [22:01] #TIL [22:01] aisrael: ^ also. I do think that Exception should be changed to something more specific. [22:01] "except Exception" is generally a bad pattern [22:02] The only thing worse is a bare "except:" [22:02] :) [22:02] cory_fu: diaper exceptions ftw i guess? [22:04] I'm indifferent about the Exception; it's just passing a string back to the action handler to call action_fail with [22:06] ^^ marcoceppi [22:09] The main issue is that it will catch pretty much any type of exception, even ones you are not expecting. E.g., if the ssh raises something, it will be caught and reported as a validation error, potentially robbing you of some useful stacktrace info [22:21] . [22:22] cory_fu: that method raises an Exception, haven't really scoped it yet :) [22:23] cory_fu: I supposed I should create a new Exception class [22:23] aisrael: I think the else can be squashed and set_state just moved to the last line in the try block