=== Linda1_00 is now known as LindaGuo === LindaGuo is now known as Linda1_00 === Linda1_00 is now known as LindaG === LindaG is now known as Linda1_00 === Linda1_00 is now known as LindaG === LindaG is now known as Linda1_00 === Linda1_00 is now known as LindaGuo === LindaGuo is now known as LindaG [04:37] wallyworld_: got this pr to fix the destroy-controller hanging issue, could u take a look? ty https://github.com/juju/juju/pull/12178 [06:47] wallyworld_: https://github.com/juju/juju/pull/12179 got this PR for fixing one of the error in migration tests, +1 plz ty [08:45] can I get a quick CR on a clean 2.8->develop merge: https://github.com/juju/juju/pull/12180 [09:00] achilleasa, swap you https://github.com/juju/juju/pull/12181 [09:09] Look at the bottom of this official documentation: https://juju.is/docs/charm-writing/relations (For a new user, its telling that there exist a single interface in the juju eco-system "mysql". [09:09] A new user would think that juju is really not ready. [09:10] Probably should be "mysql" is another interface example [09:11] I would really love some place where to find a more consistent and comprehensive place where to easily browse interfaces that exists. [09:12] I had a hard time writing this tutorial and got this as a comment from a user. That he had no clue on where to find interfances that exists and how to use them. https://discourse.juju.is/t/tutorial-relations-with-juju/3632 [09:13] ... so I started to look, and realized that I couldn't find any information except in random places on github and launchpad etc. with little or no consistent documentation. [09:13] https://jaas.ai/search?provides=elasticsearch [09:13] that'll find everything that provides an elasticsearch interface [09:13] A new user will hit a wall here. [09:14] that'll find everything that requires an elasticsearch interface https://jaas.ai/search?requires=elasticsearch [09:14] I really don't think we document that well at all and I agree [09:15] Thats nice, but its not the way people would go ahead and find information and understand what is possible really. [09:15] I wonder if juju find (new command comming for searching charms) should offer that... [09:16] so is the problem understanding an interface or finding other charms that provide/require the interface? [09:17] I think we should do both better [09:17] I think that juju needs some kind of inventory which has a consistent presentation for things like "interfaces" to that any two different interfaces can be understood equally. The format of that information needs to be defined and presented in such a way that it can be replicated easily. [09:19] If every interface is "different", the level of repetition will be low and cumbersome. A user then needs to "re-learn" every relation from what ever documentation is available or most likely by studying someone elses code. This is a very user-unfriendly path forward learning and using relations. [09:20] elox, I really think this discourse or bug worthy, it's really valid criticism that I don't want to loose [09:21] It might be enough for expert level programmers, but for casual programmers, such as myself - I'm hitting a hurdle I have a very hard time getting over and most likely will produce bad code from. [09:22] @stupidkid what do you propose? [09:23] this discussion in discourse, explain what you've hit, what's wrong. === rand is now known as oscar_0 [09:37] stupidkid: https://discourse.juju.is/t/interfaces-relations-and-how-to-help-casual-users-implement-them-in-juju/3700 === salmankhan1 is now known as salmankhan [10:01] achilleasa, updated [10:02] how does juju use images from a cloud? is there a way to list all images available in a cloud? [10:03] oscar_0, all the images for the clouds http://cloud-images.ubuntu.com/releases/streams/v1/ [10:04] stickupkid: thanks [10:05] oscar_0, do I know if there is an easy way to list all the images for a given cloud, I'm unsure [10:06] stickupkid: but how do I use that repository with juju? [10:07] oscar_0, that's the default fall back cloud images repository [10:07] oscar_0, let me phrase another way, what are you wanting to do? [10:08] stickupkid: we want to run a specific version of centos due to certain applications. we have a VMware cloud that is hooked up with juju. but so far it only plays with ubuntu [10:09] oscar_0, you need to run this plugin - juju metadata [10:09] https://github.com/juju/juju/tree/develop/cmd/plugins/juju-metadata [10:09] see here for more information, let me see if there is any documentation on this [10:10] stickupkid: thanks, I will explore that one [10:10] https://discourse.juju.is/t/new-feature-in-juju-2-8-add-custom-machine-images-with-the-juju-metadata-command/3171 [10:10] and https://discourse.juju.is/t/cloud-image-metadata/1137 [10:11] going to check those ones out [11:07] What kind of permissions does "juju metadata list-images" require? I'm getting "ERROR permission denied (unauthorized access)" [11:07] that I don't know [11:08] manadart: potential fix for flaky TestStatusAllFormats https://github.com/juju/juju/pull/12182. Cannot get it to fail locally though so I can't verify it will do the trick :-( [11:09] achilleasa: Will look in a mo'. In the k8s meeting. [11:23] oscar_0, by the looks of it (I could be wrong here), it only lists images that you've added [11:28] stickupkid: I resolved the error. I was not properly logged in as controller admin [11:35] this "image-id" thing in add-image, is that one provided by the cloud provider? [14:09] cory_fu: hi o/ - would you have ~5min for a Q about queue handlers in the reactive framework? [14:14] stickupkid: with 12173, i get no password prompt on the qa - updated the pr [14:14] depends how snap is stalled maybe? [14:15] *installed [14:16] stickupkid: just have classic confinment on the juju snap [14:16] snap requires sudo for me [14:16] no idea why [14:16] me too for snap refresh snap info does not. [14:16] but why doesn’t the test let me put in the password? [14:17] oh, it expects the snap command to be run with sudo [14:17] yeah, I really don't want sudo in our tests, but may have too [14:17] grrr [14:19] stickupkid: to test, i added sudo, didn’t fail imediately [14:19] wondering how the test will run in the ci environments [14:20] so sudo is fine as we'll be in a container [14:21] I wonder if there's a group that we can add a user to in order to manage snapd ... [14:21] Though if we're in a container, I guess it doesn't matter. [14:24] stickupkid: does the pr need to be rebased after the other pr landed? [14:24] | ==> Current juju version 2.8.5 [14:24] | ERROR no matching agent versions available === salmankhan1 is now known as salmankhan [15:28] hml, I added sudo and it worked for me [15:28] hml did you run make go-install after you downloaded the branch? [15:29] stickupkid: i did [15:41] aluria: Hey, sorry I missed your ping earlier; I was out voting. Do you still have a question? [15:43] cory_fu: hey, nw! yes, the Q is how the order in which handlers are triggered is decided - in https://pastebin.ubuntu.com/p/Cs23QJrkKT/ -> a @hook("config-changed") function (line 14) removes a state and several handlers are queued (lines 24-30)... the "setup_grafana" handler should have been run before "configure_sources"... and so it is in focal and bionic, but the pastebin runs on xenial [15:44] I think it would be much safer on the side of the charm to trigger handlers one by one, in sequence, rather than in parallel... but I wanted to understand why the above was an issue in Xenial but not in Bionic nor Focal [15:49] aluria: Handlers are run one at a time, and there's a phase for @hook handlers to run before non-@hook handlers, but the specific order of hooks within a phase isn't well defined. Specifically, it depends on file discovery, module attribute, and dict ordering. The difference between series is probably due to the change in dict ordering stability in newer versions of Python (officially in 3.7, unofficially in CPython 3.5 and 3.6), but there is [15:49] still some potential for the order in which files are discovered to change it. [15:50] If a given handler needs to run after another one, you should have the earlier one set another flag that the later one can gate off of, or just call it directly. Or, better yet, start using the new framework. ;) [15:51] cory_fu: hehe, cheers very interesting. Where is the queuing of handlers defined in https://github.com/juju-solutions/charms.reactive/tree/master/charms/reactive ? [15:52] https://github.com/juju-solutions/charms.reactive/blob/master/charms/reactive/bus.py#L94 [15:53] Yeah, that's where all the registered handlers are stored, and then dispatch function tests them and runs the one whose conditions match: https://github.com/juju-solutions/charms.reactive/blob/master/charms/reactive/bus.py#L384 [15:54] ack, ty [15:59] aluria: Hrm. Odd, though. Xenial has 3.5, and even if the order of the registered handlers was unstable (the order in which the trace message for the handler being queued is logged ought to be the same as the order they are invoked, because by that point they're converted to a list: https://github.com/juju-solutions/charms.reactive/blob/master/charms/reactive/bus.py#L351 [16:03] Still, I wouldn't recommend relying on any expected ordering of the handlers without enforcing it with an explicit flag condition. In this case, it seems like the other handlers should explicitly gate on the grafana.configured flag [16:05] Or maybe config_changed should also clear grafana.started when it clears grafana.configured [16:05] cory_fu: /me nods - thx for the clarifications