[02:15] <wallyworld> anastasiamac: got tme for a HO?
[02:16] <wallyworld> in standup
[03:10] <babbageclunk> super easy review anyone? https://github.com/juju/juju/pull/10827
[03:19] <wallyworld> babbageclunk: lgtm, i thought we had found all those!
[03:19] <timClicks> what is the significance of the "development" model default?
[03:19] <babbageclunk> I think they might have been new
[03:20] <wallyworld> timClicks: it's a big legacy, one thig it does is force the use of non release simplestreams
[03:21] <wallyworld> *bit
[03:21] <timClicks> ok
[03:21] <wallyworld> we should use agent-stream for that now
[03:21] <wallyworld> or image-stream
[03:22] <wallyworld> i wish we could kill it
[03:22] <wallyworld> juju 3
[03:23] <timClicks> quick! mark it deprecated
[03:25] <timClicks> are there any inheritance rules for model defaults? e.g. can juju-ftp-proxy and/or apt-ftp-proxy inherit their values automatically from ftp-proxy?
[03:36] <_thumper_> timClicks: not for proxies
[03:36] <_thumper_> proxies are special
[03:36] <_thumper_> we should probably talk about them
[03:36] <_thumper_> as they should have good docs
[03:37] <timClicks> ok, that would be good to know
[03:37] <timClicks> new post should be up shortly
[03:38]  * thumper heading to pickup family
[04:05] <timClicks> Fantastic Settings and Where to Find Them https://discourse.jujucharms.com/t/fantastic-settings-and-where-to-find-them/2284
[04:06] <timClicks> if anyone has a few minutes, I would appreciate a review (anything from typos to egregious errors)
[04:26] <thumper> simple pr to update worker dependency for better engine report: https://github.com/juju/juju/pull/10828
[04:26] <wallyworld> timClicks: how did you want feedback? in a google doc you can make comments and add suggestions etc. not quite so easy in a discourse pos
[04:26] <wallyworld> t
[04:27] <babbageclunk> thumper: the resource log is sometimes very useful
[04:27] <thumper> wallyworld: i'd suggest not a google doc
[04:27] <thumper> babbageclunk: like when?
[04:27] <wallyworld> thumper: why? they are built for collaborative editing
[04:28] <wallyworld> discourse isn't
[04:28] <thumper> wallyworld: because it fragments where things are
[04:28] <babbageclunk> When trying to understand what resources a worker has got? I feel like this is a trick question
[04:28] <wallyworld> thumper: the idea was to get the copy correct in a collaborative way and ten post to discourse
[04:28] <thumper> babbageclunk: I've not really found that useful from the report point of view
[04:28] <wallyworld> it's only an interimt step
[04:29] <babbageclunk> thumper: I've definitely used it in the past. For example there are some workers that behave differently depending on which dependencies are present
[04:29] <wallyworld> which supports te collaboration workflow we need until the copy is polished
[04:30] <babbageclunk> you're right that it's mostly not useful
[04:30] <thumper> babbageclunk: I've found that it is almost always noise when I'm looking at the engine report
[04:30] <babbageclunk> but occasionally it is - it seems a pity to ditch it
[04:30] <thumper> I guess I've never even hit that occasionally bit
[04:30] <babbageclunk> oh sure, it's mostly not what one is looking for
[04:30] <wallyworld> posting content that needs feedback stright to discourse is like landing code without a code review
[04:31] <wallyworld> IMO
[04:31] <wallyworld> especially if multiple people need to have input
[04:31] <wallyworld> and collaboaraively tweak wording etc
[04:31] <thumper> wallyworld: yeah, that is why timClicks and I tried out the discourse branch on the docs repo
[04:31] <thumper> and used github PR for iteration
[04:32] <wallyworld> that's better, but google doc is easier for this tak
[04:32] <wallyworld> as people can ask qustions, make sidebars etc
[04:32] <wallyworld> edit content directly etc etc
[04:33] <wallyworld> see the changes insitu plus other comments/clarifications separately
[04:39] <anastasiamac> wallyworld: just saw ur msg :( still want to meet?
[04:40] <wallyworld> anastasiamac: sure, let's jump in standup
[04:40] <anastasiamac> k
[05:09] <timClicks> wallyworld: just add a comment in discourse; otherwise edit directly for anything major
[05:10] <wallyworld> timClicks: i can do that, but 1) there might be significant things we prefer to collaborat eon, 2) making comments is divorced from the content they pertain to so hard to reconcile
[05:10] <wallyworld> you need to keep scrolling up and down
[05:11] <wallyworld> instead of highlighting and comment
[05:11] <wallyworld> and i might want to say "needs fleshing out, look here ..." and not do the writing myself
[05:11] <wallyworld> etc
[05:22] <wallyworld> hpidcock: you going ok? not blocked?
[05:22] <hpidcock> wallyworld: not blocked, I just keep finding issues
[05:22] <hpidcock> I feel like Alice going down the rabbit hole
[05:24] <wallyworld> did you need som ehelp?
[05:25] <hpidcock> nah, just time
[05:29] <wallyworld> hpidcock: feel free to put up a wip if you want a sanity check
[08:16] <hpidcock> wallyworld: I think I'm at the point where I've handled all the weird cases for now. We need to come back to this at some point, but for now I think we should land it.
[08:27] <wallyworld> ok, i'll look
[09:23] <nammn_de> morning manadart: how would you add a test that accesses a local concept like "activeBranch" in the status output here: https://github.com/juju/juju/blob/3ef20221f2bd332ac5cfd53d3ff6bc6759b7f2bc/cmd/juju/status/status_internal_test.go which currently only mocks the state?
[09:30] <achilleasa> manadart: Is this what you had in mind? https://github.com/juju/juju/pull/10805/commits/69de6b3e6ad72a130001bd87bb762c1ef3785691
[09:33] <stickupkid> nammn_de, integration test #cough#
[09:33] <manadart> achilleasa: Yeah, but I would make the subnetURLs a set, an break the collection out into its own method.
[09:34] <nammn_de> stickupkid: Ha, good point. Let me add both if possible
[09:34] <achilleasa> manadart: yeah... didn't think of dups in URLs... caffeine has not kicked in yet :D
[09:42] <achilleasa> manadart: looks better now: https://github.com/juju/juju/pull/10805/commits/fb515c68a35f8e177a635e609eeb879a6fbde91c
[09:45] <manadart> achilleasa: Yep.
[09:45] <manadart> achilleasa: We will need to talk about how to move forward with O7k.
[09:46] <achilleasa> O7k? Got time to chat now?
[10:12] <manadart> achilleasa: Sorry missed that. Openstack. HO?
[10:12] <achilleasa> manadart: omw
[10:58] <manadart> nammn_de: JujuConnSuite emulates the local file-store with an in-memory store, so you might be able to do something like this: https://paste.ubuntu.com/p/jxYDPvHQcS/
[10:59] <nammn_de> manadart: great, thanks!
[10:59] <manadart> nammn_de: BTW, can you look at https://github.com/juju/juju/pull/10830 ?
[11:00] <nammn_de> manadart: can do
[11:40] <nammn_de> hml rick_h: added acceptancetests (stickupkid) and unit tests https://github.com/juju/juju/pull/10796
[11:41] <nammn_de> acceptancetest ^ https://github.com/juju/juju/blob/90905e71dd4fecd3eaeeaae64e602fc80ef2fccd/tests/suites/cli/active_branch.sh
[11:45] <nammn_de> manadart: looking at your pr now. Why  did we warrant this change again?
[11:45] <stickupkid> this kills me https://paste.ubuntu.com/p/MfRxxsqK8W/
[11:46] <manadart> nammn_de: Requirement changed. There is no longer a configuration default for the model's default space.
[11:47] <stickupkid> we actively break piping - 2>/dev/null is the fix :(
[11:47] <nammn_de> manadart: got it
[11:47] <stickupkid> nammn_de, do we not highlight the active branche in status?
[11:48] <nammn_de> we should, with a *
[11:48] <stickupkid> https://paste.ubuntu.com/p/Gkn6Bx6qFG/
[11:48] <nammn_de> except it being master
[11:48] <stickupkid> nammn_de, json or yaml?
[11:48] <nammn_de> stickupkid: should both. But we are talking about my pr, right?>
[11:48] <stickupkid> nammn_de, what ever is develop
[11:49] <nammn_de> stickupkid: not in develop yet
[11:49] <stickupkid> nammn_de, ah
[11:49] <nammn_de> stickupkid: https://github.com/juju/juju/pull/10796
[11:49] <nammn_de> there is it :D
[11:49] <nammn_de> *it is
[11:50] <stickupkid> nammn_de, NICE
[11:50] <stickupkid> that's what i want
[11:51] <stickupkid> nammn_de, going to add some comments
[11:51] <nammn_de> stickupkid: sure feel free, you can take a look at the acceptancetest(!)/unit test
[11:53] <hml> nammn_de: looking at the unit tests
[11:55] <hml> nammn_de: i don’t think we’ve gotten to mocks in the status output code yet.  :-(   looks like you found away without.
[12:00] <nammn_de> manadart: approved, one small nit
[12:01] <nammn_de> hml: Actually I was struggling to updatethemodel, luckily manadart gave me some pointers.
[12:01] <nammn_de> hml: feel free to comment if you think the assert of the unit test is too small
[12:06] <hml> nammn_de: added to the pr.  typically we’d test 1 thing in a unit test, so the status output test would be broken into 2.  if the first 1 fails, we don’t run the 2nd if they are combined, which may pass on its own.
[12:19] <nammn_de> hml: sure will update
[12:19] <nammn_de> stickupkid: where did the idle_condition come from?
[12:20] <stickupkid> nammn_de, https://github.com/juju/juju/commit/e14e76eefc3d8fee8e785099f2717e63732a4b83
[12:24] <nammn_de> stickupkid: we should document the place where we can use/find the common utilities function. Some kind of doc which gets updates or just redirects to juju.sh. I find myself suprised that things are either there or keep getting updates. Which is great though
[12:27] <stickupkid> we have an issue trying to upgrade controller 2.6.9 to 2.6.10, I'm just investigating it - jenkins release brought it up
[12:28] <rick_h> stickupkid:  ruh roh, ok
[12:36] <nammn_de> stickupkid hml: thanks for your review, I updated both tests
[13:38] <nammn_de> coming back hml stickupkid want to take a look at the tests again? https://github.com/juju/juju/pull/10796 rick_h is fine with the qa output itself
[13:41] <hml> nammn_de: will do shortly
[13:41] <stickupkid> nammn_de, i've approved the integration tests :D
[13:52] <hml> nammn_de: approved the other pieces.  ty for the change
[14:22] <nammn_de> thanks!
[14:24] <nammn_de> manadart im starting to look deeper now into  metrics. With metrics we mean offering an scraping endpoint for prometheus, right?
[14:24] <nammn_de> Where we give prometheus data for each scrape action?
[14:34] <manadart> nammn_de: Yes, but this is all set up for the cache. We just need the guages. See core/cache/metrics.go and how those are used.
[14:42] <hml> manadart:  just a nit on 10831, and approved.
[14:43] <manadart> hml: Thanks.
[14:44] <hml> manadart:  do you have some time to chat on 10825?
[14:46] <manadart> hml: I am in daily.
[15:20] <nammn_de> manadart: which namespaces should those gauges go?
[15:22] <nammn_de> and this was for charm config cache hits/misses, right?
[15:26] <nammn_de> general: each watcher is a goroutine /agent(?) which watches something for changes and does something on changes? E.g. a watcher can be responsible for updating a cache on db changes (?(
[15:26] <nammn_de> *)
[15:36] <stickupkid> nammn_de, the worker/modelcache updates the core/cache
[15:37] <stickupkid> nammn_de, i believe it's the all watcher that outputs deltas which the modelcache consumes and puts into the core/cache
[15:37] <nammn_de> stickupkid: thanks! How does that play with the watchers?
[15:37] <stickupkid> nammn_de, in what regards?
[15:40] <nammn_de> or more a general thing. A watcher is some kind of goroutine which watches something changes in the mongodb (e.g. charmconfigwatcher watches changes on specific collections of mongo db?) and e.g. updates a local cache
[15:40] <nammn_de> ?
[15:43] <stickupkid> yeah, not far off. So a watcher at it's core has a tomb. A tomb is a managed gorountine, that wraps a gorountine up so that you can kill it or track it via wait
[15:44] <stickupkid> the watcher then just instantiates a tomb (well normally someone inits a watcher and the tomb) and it just loops collecting changes and dispatches them out when it's ready
[15:44] <stickupkid> think of a watcher as a self contained event dispatcher
[15:45] <stickupkid> each watcher can then look at db collections and filter on changes.
[15:46] <stickupkid> the point of the model cache hit/miss is to see if some piece of code is requesting a config, but it's not in the cache
[15:46] <nammn_de> stickupkid: makes sense! A watcher is usually there to watch db collection changes, right?
[15:46] <stickupkid> correct
[15:49] <nammn_de> stickupkid: now things makes more sense slowely. Need to let it sink
[15:49] <nammn_de> all of that different naming and each having its purpose. Need to map things internally for me
[15:50] <stickupkid> it's worth reading tomb implementation, then you can build on what a worker and a watcher adds to the party
[15:51] <stickupkid> then a fortress, etc
[15:55] <nammn_de> stickupkid: great will do
[15:56] <nammn_de> stickupkid: its always so hard to find where to start with the reading
[18:10] <nammn_de> stickupkid manadart something along this line? https://github.com/juju/juju/pull/10833/files