Refactor watchers
[pti/o2.git] / o2ims / service / watcher / worker.py
index 11bdfdc..9b87ebe 100644 (file)
@@ -14,7 +14,7 @@
 \r
 import time\r
 import sched\r
-from o2ims.service.watcher.base import BaseWatcher\r
+from o2ims.service.watcher.base import WatcherTree\r
 \r
 import logging\r
 logger = logging.getLogger(__name__)\r
@@ -23,7 +23,7 @@ logger = logging.getLogger(__name__)
 class PollWorker(object):\r
     def __init__(self, interval=10) -> None:\r
         super().__init__()\r
-        self.watchers = {}\r
+        self.watchers = []\r
         self.schedinstance = sched.scheduler(time.time, time.sleep)\r
         self.schedinterval = interval\r
         self._stopped = True\r
@@ -34,19 +34,19 @@ class PollWorker(object):
         else:\r
             raise Exception("Invalid interval:" + interval)\r
 \r
-    def add_watcher(self, watcher: BaseWatcher):\r
-        self.watchers[watcher.targetname()] = watcher\r
+    def add_watcher(self, watcher: WatcherTree):\r
+        self.watchers.append(watcher)\r
 \r
     def _repeat(self):\r
         logger.debug("_repeat started")\r
         if self._stopped:\r
             return\r
-        for w in self.watchers.keys():\r
+        for w in self.watchers:\r
             try:\r
-                logger.debug("about to probe:"+w)\r
-                self.watchers[w].probe()\r
+                logger.debug("about to probe:"+w)\r
+                w.probe(None)\r
             except Exception as ex:\r
-                logger.warning("Worker:" + w + " raises exception:" + str(ex))\r
+                logger.warning("Worker raises exception:" + str(ex))\r
                 continue\r
         self.schedinstance.enter(self.schedinterval, 1, self._repeat)\r
 \r