X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=o2app%2Fbootstrap.py;h=4413e80d4706565813e74ad7270b42a9b6728ff7;hb=659a526fb149407f1bc7c598e1943195915dcbd6;hp=2e907686cccba7825de52fb3edd612aaada9dc28;hpb=84867b76a65efc4e9add52c86eae7e451c4a038d;p=pti%2Fo2.git diff --git a/o2app/bootstrap.py b/o2app/bootstrap.py index 2e90768..4413e80 100644 --- a/o2app/bootstrap.py +++ b/o2app/bootstrap.py @@ -40,6 +40,15 @@ def wait_for_db_ready(engine): logger.info("DB is ready") +@retry(tries=3, delay=2) +def wait_for_mappers_ready(engine): + # wait for mapper ready + logger.info("Wait for mapper ready ...") + o2ims_orm.start_o2ims_mappers(engine) + o2dms_orm.start_o2dms_mappers(engine) + logger.info("mapper is ready") + + def bootstrap( start_orm: bool = True, uow: unit_of_work.AbstractUnitOfWork = SqlAlchemyUnitOfWork(), @@ -54,9 +63,9 @@ def bootstrap( with uow: # get default engine if uow is by default engine = uow.session.get_bind() + wait_for_db_ready(engine) - o2ims_orm.start_o2ims_mappers(engine) - o2dms_orm.start_o2dms_mappers(engine) + wait_for_mappers_ready(engine) dependencies = {"uow": uow, "notifications": notifications, "publish": publish} @@ -72,11 +81,13 @@ def bootstrap( for command_type, handler in handlers.COMMAND_HANDLERS.items() } - return messagebus.MessageBus( + bus = messagebus.MessageBus( uow=uow, event_handlers=injected_event_handlers, command_handlers=injected_command_handlers, ) + messagebus.MessageBus.set_instance(bus) + return bus def inject_dependencies(handler, dependencies):