X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2app%2Fadapter%2Funit_of_work.py;h=732216ed01d4e0891ea2d37e8f07cee9b28ad2d6;hb=df31a02911f55d292188ca514c3a30fface9c8a6;hp=facfc459bf6c3cff96323498fa74558cde2a0406;hpb=b37a7d8e36bd9fdf862cb1aad29f9a29052e725f;p=pti%2Fo2.git diff --git a/o2app/adapter/unit_of_work.py b/o2app/adapter/unit_of_work.py index facfc45..732216e 100644 --- a/o2app/adapter/unit_of_work.py +++ b/o2app/adapter/unit_of_work.py @@ -27,15 +27,21 @@ from o2dms.adapter import dms_repository from o2common.helper import o2logging logger = o2logging.get_logger(__name__) + +engine = create_engine( + config.get_postgres_uri(), + isolation_level="REPEATABLE READ", + pool_size=200, max_overflow=0, + pool_recycle=3600 +) + DEFAULT_SESSION_FACTORY = sessionmaker( - bind=create_engine( - config.get_postgres_uri(), - isolation_level="REPEATABLE READ", - ) + autocommit=False, autoflush=False, bind=engine ) class SqlAlchemyUnitOfWork(AbstractUnitOfWork): + def __init__(self, session_factory=DEFAULT_SESSION_FACTORY): self.session_factory = session_factory @@ -51,6 +57,8 @@ class SqlAlchemyUnitOfWork(AbstractUnitOfWork): .ResourceSqlAlchemyRepository(self.session) self.subscriptions = ocloud_repository\ .SubscriptionSqlAlchemyRepository(self.session) + self.configurations = ocloud_repository\ + .ConfigurationSqlAlchemyRepository(self.session) self.deployment_managers = ocloud_repository\ .DeploymentManagerSqlAlchemyRepository(self.session) self.nfdeployment_descs = dms_repository\ @@ -88,6 +96,12 @@ class SqlAlchemyUnitOfWork(AbstractUnitOfWork): for entry in self.deployment_managers.seen: while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0) + for entry in self.subscriptions.seen: + while hasattr(entry, 'events') and len(entry.events) > 0: + yield entry.events.pop(0) + for entry in self.configurations.seen: + while hasattr(entry, 'events') and len(entry.events) > 0: + yield entry.events.pop(0) for entry in self.nfdeployment_descs.seen: while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0)