Fix: UpdateDms throwing error that no attribute 'events' 05/7205/1
authorZhang Rong(Jon) <rong.zhang@windriver.com>
Fri, 3 Dec 2021 03:33:38 +0000 (11:33 +0800)
committerZhang Rong(Jon) <rong.zhang@windriver.com>
Fri, 3 Dec 2021 03:33:38 +0000 (11:33 +0800)
1. Check events exist before the pop event

Issue-ID: INF-233
Signed-off-by: Zhang Rong(Jon) <rong.zhang@windriver.com>
Change-Id: I98fc3ebdd766f9e65f012fa61f612c4d587c7457

o2app/adapter/unit_of_work.py

index e488542..6fd4ae2 100644 (file)
@@ -24,6 +24,9 @@ from o2common.service.unit_of_work import AbstractUnitOfWork
 from o2ims.adapter import ocloud_repository\r
 from o2dms.adapter import dms_repository\r
 \r
+from o2common.helper import o2logging\r
+logger = o2logging.get_logger(__name__)\r
+\r
 DEFAULT_SESSION_FACTORY = sessionmaker(\r
     bind=create_engine(\r
         config.get_postgres_uri(),\r
@@ -70,26 +73,26 @@ class SqlAlchemyUnitOfWork(AbstractUnitOfWork):
 \r
     def _collect_new_events(self):\r
         for entry in self.oclouds.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.resource_pools.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.resources.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.resource_types.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.deployment_managers.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.nfdeployment_descs.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.nfdeployments.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r
         for entry in self.ocloudvresources.seen:\r
-            while entry.events:\r
+            while hasattr(entry, 'events') and len(entry.events) > 0:\r
                 yield entry.events.pop(0)\r