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=6fd4ae25e7818c2a16e6497f7af0ea0e096e912c;hpb=71f8155b3b60befb21aabaffe0b0cf4d940eda61;p=pti%2Fo2.git diff --git a/o2app/adapter/unit_of_work.py b/o2app/adapter/unit_of_work.py index 6fd4ae2..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\ @@ -73,13 +81,14 @@ class SqlAlchemyUnitOfWork(AbstractUnitOfWork): def _collect_new_events(self): for entry in self.oclouds.seen: - while hasattr(entry, 'events') and len(entry.events) > 0: + # while hasattr(entry, 'events') and len(entry.events) > 0: + while entry.events is not None and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.resource_pools.seen: - while hasattr(entry, 'events') and len(entry.events) > 0: + while entry.events is not None and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.resources.seen: - while hasattr(entry, 'events') and len(entry.events) > 0: + while entry.events is not None and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.resource_types.seen: while hasattr(entry, 'events') and len(entry.events) > 0: @@ -87,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)