PietroPasotti

Results 57 issues of 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...

needs design
24.04

A charm cannot unconditionally set status in `__init__` Reason is, if the unit is being torn down, status_set will raise an error: ![image](https://user-images.githubusercontent.com/6230162/177515407-a294078e-73f1-4c42-8597-4a0ea9856201.png) 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.

documentation

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.

enhancement