PietroPasotti
PietroPasotti
Typed ops/main.py
Stderr output emitted during an action hook execution gets injected in an action's results by juju. - documented this in the ActionEvent docstring - added a check that users don't...
More specifically, before every hook execution. Point is: when a 'real' charm runs, it is reinitialized afresh. While if you do fire eventA and eventB on the harness, the harness...
A charm cannot unconditionally set status in `__init__` Reason is, if the unit is being torn down, status_set will raise an error:  Interestingly enough, it looks like the last...
If you attempt to set relation data on a relation-broken hook, you'll get ```ops.model.ModelError: b'ERROR cannot read relation application settings: permission denied (unauthorized access)``` Which is confusing and already tracked...
Typically, when you inherit EventBase and add some instance attributes ```python class MyEvent(EventBase): def __init__(...): self.a = 42 ``` it is because you expect `self.a` to be accessible from the...
StorageEvent docstring misses reference to the `storage` attr, as a consequence the sphinx documentation doesn't know about it.
Some of the internals of operator could benefit from better typing, to help the IDE autocomplete code and make development easier. Example: `charm.model` has inferred type None because: ```python class...
We should be logging something when an event gets deferred. `log.info(event.name, 'was deferred by OF.')` should be enough. And maybe on reemit: `log.info(event.name, 'was popped from the deferred events queue...
HookEvent has a ‘framework’ attr which is managed externally and makes for hard to understand and debug code. We should refactor the flow and make it better.