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=e4885423e9b2ff20868d02453676c7fe24045bb2;hpb=7fb3d02a3744ecb368b0531f16175034b987d42f;p=pti%2Fo2.git diff --git a/o2app/adapter/unit_of_work.py b/o2app/adapter/unit_of_work.py index e488542..732216e 100644 --- a/o2app/adapter/unit_of_work.py +++ b/o2app/adapter/unit_of_work.py @@ -24,15 +24,24 @@ from o2common.service.unit_of_work import AbstractUnitOfWork from o2ims.adapter import ocloud_repository 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 @@ -48,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\ @@ -70,26 +81,33 @@ class SqlAlchemyUnitOfWork(AbstractUnitOfWork): def _collect_new_events(self): for entry in self.oclouds.seen: - while entry.events: + # 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 entry.events: + while entry.events is not None and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.resources.seen: - while entry.events: + while entry.events is not None and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.resource_types.seen: - while entry.events: + while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.deployment_managers.seen: - while entry.events: + 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 entry.events: + while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.nfdeployments.seen: - while entry.events: + while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0) for entry in self.ocloudvresources.seen: - while entry.events: + while hasattr(entry, 'events') and len(entry.events) > 0: yield entry.events.pop(0)