Mercurial > libervia-backend
diff sat/core/sat_main.py @ 3989:f5ba7594cced
core (main): log Exception when `bridge_pi` fails
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 24 Nov 2022 12:25:04 +0100 |
parents | 7af29260ecb8 |
children | 7bf7677b893d |
line wrap: on
line diff
--- a/sat/core/sat_main.py Thu Nov 24 10:08:47 2022 +0100 +++ b/sat/core/sat_main.py Thu Nov 24 12:25:04 2022 +0100 @@ -95,10 +95,10 @@ try: self.bridge = bridge_module.Bridge() except exceptions.BridgeInitError: - log.error("Bridge can't be initialised, can't start Libervia Backend") + log.exception("Bridge can't be initialised, can't start Libervia Backend") sys.exit(1) - defer.ensureDeferred(self._postInit()) + defer.ensureDeferred(self._post_init()) @property def version(self): @@ -128,13 +128,19 @@ def bridge_name(self): return os.path.splitext(os.path.basename(self.bridge.__file__))[0] - async def _postInit(self): + async def _post_init(self): try: bridge_pi = self.bridge.postInit except AttributeError: pass else: - await bridge_pi() + try: + await bridge_pi() + except Exception: + log.exception("Could not initialize bridge") + # because init is not complete at this stage, we use callLater + reactor.callLater(0, self.stop) + return self.bridge.register_method("getReady", lambda: self.initialised) self.bridge.register_method("getVersion", lambda: self.full_version)