[04:40] <jam> morning all
[06:34] <MarkMaglana> o/
[08:32] <Chipaca> mo'in
[08:35] <Chipaca> jam: https://r.chipaca.com/land_shallow_topo.jpg (to be fair it might have bitrot at this point, without me noticing :) )
[08:36] <jam> Chipaca, it doesn't render very well here.
[08:37] <Chipaca> yeah, here either, and imagemagick now has limits in place that block it from touching the image even (without further tweaking)
[08:37] <Chipaca> which was precisely the point the image was trying to make, so i won i guess?
[08:40] <jam> Chipaca, "I Win" :)
[08:40] <Chipaca> quite
[08:41] <Chipaca> jam: an interesting thing came up in the call yesterday, with narinder
[08:41] <Chipaca> jam: he's going to file a bug about it, but i don't think he has yet
[08:42] <Chipaca> jam: but if you look at https://github.com/narindergupta/charm-k8s-kafka/blob/master/src/charm.py
[08:42] <Chipaca> jam: at expose_relation_data
[08:43] <Chipaca> jam: ISTM that having to do that getnameinfo thing is not particularly friendly
[08:46] <jam> Chipaca, indeed. I know that there has been discussions on the Juju side of how to present a hostname when you have one
[08:46] <jam> It certainly is never guaranteed that there *is* a hostname for a unit
[08:47] <jam> And if there is one (in say, MAAS) it may not be accessible because the DNS server is local
[08:47] <jam> I also know of bugs like https://bugs.launchpad.net/juju/+bug/1867168
[08:50] <Chipaca> jam: yeah, that sounds like exactly the issue
[08:54] <Chipaca> facubatista: this Friday we scheduled a meeting with people writing a postgres charm (i'm assuming for k8s). Neither jam nor I work this Friday :) should we reschedule, or are you happy to carry it alone?
[08:54] <jam> is he in yet?
[08:54] <jam> I would recommend rescheduling, as that is one that I'd like to be at
[09:00] <Chipaca> jam: I'll ask sohini to transfer these to me so we can move them around
[09:00] <jam> Chipaca, given that the bug is about the charm-k8s-mongodb it sounds very much like that bug
[09:21] <Chipaca> jam: btw, are https://github.com/narindergupta/charm-k8s-kafka/ and https://github.com/narindergupta/charm-k8s-zookeeper/ on the list? (i don't see them)
[09:22] <jam> Chipaca, they are now :)
[09:22] <Chipaca> jam: taw
[09:25] <jam> Chipaca, is there a notes doc about Kafka meeting?
[09:26] <Chipaca> jam: i need to transfer my notes onto a doc
[09:26] <Chipaca> jam: and, in future ones, start with a shared doc so we edit it as we go
[09:32] <jam> Chipaca, so I mentioned I was investigating creating symlinks earlier (before instantiating the charm)
[09:32] <jam> it is certainly 'doable' but it changes a bit
[09:33] <jam> namely, Events currently get their name from being assigned as an attribute to a class
[09:33] <jam> (install = EventSource(InstallEvent) is how we know the hook is 'install')
[09:33] <jam> I could change it so that the name of the associated hook is part of the base event, but it felt like a pretty significant departure
[09:33] <jam> so I wanted to check before I proceeded
[09:34] <Chipaca> it does feel a bit nastier
[09:35] <Chipaca> OTOH the know-thy-name magic might prove to be too magic at some point
[09:47] <jam> Chipaca, so in my head I was going to a registry of hook events so that we can easily iterate them. right now that "registry" is CharmEvents and iterating the attrs of it
[09:48] <jam> Chipaca, ObjectEvents.events() uses inspect.getmembers(type(self))
[09:48] <jam> which seems an odd way to do a registry to *me*
[09:49] <Chipaca> jam: oh so it _doesn't_ use set_name-like magic
[09:50] <Chipaca> my bad :)
[09:50] <jam> Chipaca, oh, it does
[09:50] <jam> it does both :0
[09:51] <jam> Chipaca, event_kind is used as the name, which is populated during __init__ because of calling getattr()
[09:51] <jam> AFAICT
[09:51] <jam> _create_event_link looks at 'bound_event' which has an 'event_kind' which is the name of the attribute
[09:52] <jam> (it could have just as easily used the 'key' portion of the key:bound_event map, but chose to just call values() and then iterate those)
[10:53] <facubatista> Muy buenos días a todos!
[10:54] <Chipaca> facubatista: buen día!
[10:55] <Chipaca> facubatista: could you review #258?
[10:56] <facubatista> Chipaca, sure
[10:58] <facubatista> Chipaca, regarding friday meeting, I can take it, but if jam wants to be there, we can reschedule it, yes
[10:59] <jam> morning facubatista
[10:59] <facubatista> hola jam
[11:01] <facubatista> meeting is in standup room?
[11:02] <jam> I added a room, but I'll happily move to standup since I added it late
[11:02] <facubatista> ah, no
[11:02] <facubatista> I'm in the other one
[11:02] <jam> Chipaca, coming? https://meet.google.com/pmg-hccz-tqd
[11:04] <facubatista> niemeyer, hello! any chance you leave a mup with us?
[11:05] <niemeyer> facubatista: Sorry, machine crashed yesterday and I forgot to bring it back up.. still haven't managed to put it in a stable place
[11:24] <facubatista> niemeyer, no worries! thanks!
[12:05] <facubatista> jam, Chipaca, ...?
[12:10] <facubatista> jam, we lost you
[12:10] <jam> brb
[12:40] <jam> https://paste.ubuntu.com/p/GFFXXrwKCW/
[13:51] <Chipaca> jam, facubatista, wrt ops.lib.use, in practice it'll be lib.use(), no? because 'from ops import <>' is the pattern we're encouraging
[13:51] <Chipaca> or maybe even use()
[13:52] <facubatista> I like lib.use()
[13:52] <Chipaca> from ops.lib import use as frameworkify
[13:52]  * Chipaca hides
[13:53] <jam> mysql = frameworkify('mysql')
[13:53] <jam> nice
[14:07] <Chipaca> jam: also, binding.ports[1000:1024].open()
[14:57] <facubatista> binding.ports[1000:1024].open(name='foo')
[14:58] <facubatista> binding.ports.close('foo')
[14:58] <facubatista> binding.ports[1000:1024].close()
[15:42] <Chipaca> facubatista: where are we planning on saving 'foo'?
[15:58] <facubatista> Chipaca, some StoredState?
[15:59] <Chipaca> facubatista: AIUI this means the ports depends on saving state in the controller
[16:00] <facubatista> Chipaca, we can not depend on that?
[16:01] <facubatista> Chipaca, we're saving the events already, right?
[16:01] <Chipaca> facubatista: not in the controller yet
[16:01] <Chipaca> it's saved in a local db
[16:15] <facubatista> Chipaca, why the ports storage would be different?
[16:16] <Chipaca> facubatista: i might be getting this wrong but i think the pod can be replaced at any time at which time we lose? but maybe not, the local db
[16:16] <Chipaca> ah no the db is not in the pod
[16:16] <Chipaca> that's the problem with actions
[16:17] <Chipaca> facubatista: ignore me, brain wongled
[16:17] <Chipaca> facubatista: but don't ignore me _too_ much :-p
[16:18]  * facubatista ignores odd chars in Chipaca sentences
[16:19] <Chipaca> facubatista: any char < 2019 is rubbish anyway
[16:19] <Chipaca> facubatista: 🧉🧉🧉
[16:20] <facubatista> ja
[16:31] <Chipaca> facubatista: plz don't forget to review the docs one
[16:41] <facubatista> extensions = [
[16:41] <facubatista>     'sphinx.ext.autodoc',
[16:41] <facubatista> ops.lib.use('autodoc')
[16:45] <facubatista> Chipaca, some questions inline
[16:46] <facubatista> also, I don't remember why we still don't have a proper requirements-dev.txt file with flake8, autopep8, etc
[16:47] <Chipaca> facubatista: I don't remember what happened to your PR with that
[16:48] <facubatista> Chipaca, it's a good moment to add it
[16:49] <Chipaca> facubatista: what happened to that PR?
[17:04] <facubatista> Chipaca, we end up not automatizing the virtualenv creation, so the dependencies ended up in the README
[17:05] <facubatista> (I landed that improvement over "you find out by trial and mistake what you need" as a middle ground)
[17:10] <Chipaca> facubatista: you _don't_ need sphinx for dev though, rtd will build them for us
[17:13] <facubatista> Chipaca, unless you want something to be fixed, for when you want to check how it looked before and after
[17:13] <facubatista> but yes, that will not happen always
[17:14] <facubatista> Chipaca, maybe a docs/requirements.txt ?
[17:14] <facubatista> docs/requirements-build.txt ?
[17:14]  * Chipaca adds a facubatista/requirements.txt
[17:14]  * facubatista is very requiremented
[17:14]  * Chipaca also adds a .snapcraft/you-might-be-lost.md