invoke `hookenv._run_atexit()` when action ends

the registered callbacks for `atexit()` were not executing due to
`_run_atexit()` is not being called, the `ch_core.hookenv._run_atexit()`
function is now explicitly called when action ends. also moved
`ch_core.hookenv._run_atstart()` call to `main()` for consistency.

Closes-bug: #1976169

Signed-off-by: Mustafa Kemal Gilor <mustafa.gilor@canonical.com>
Change-Id: I2b976af908dd6ae6248f405fa6980beef0554be5
This commit is contained in:
Mustafa Kemal Gilor 2022-06-23 16:13:22 +03:00
parent a1cd14acd8
commit 7e80dce5d3
1 changed files with 3 additions and 2 deletions

View File

@ -31,8 +31,6 @@ import charms_openstack.charm as charm
# load reactive interfaces
reactive.bus.discover()
# load Endpoint based interface data
ch_core.hookenv._run_atstart()
# load charm class
charms_openstack.bus.discover()
@ -55,6 +53,7 @@ ACTIONS = {
def main(args):
ch_core.hookenv._run_atstart()
action_name = os.path.basename(args[0])
try:
action = ACTIONS[action_name]
@ -71,6 +70,8 @@ def main(args):
traceback.format_exc()),
level=ch_core.hookenv.ERROR)
ch_core.hookenv.action_fail(str(e))
finally:
ch_core.hookenv._run_atexit()
if __name__ == '__main__':