Refactor watchers
[pti/o2.git] / o2ims / entrypoints / resource_watcher.py
index a3292df..b559959 100644 (file)
 import cotyledon\r
 \r
 from o2ims.service.watcher.worker import PollWorker\r
-from o2ims.service.watcher.base import OcloudWatcher\r
-from o2ims.service.watcher.base import DmsWatcher\r
-# from o2ims.service.client.base_client import BaseClient\r
+from o2ims.service.watcher.ocloud_watcher import OcloudWatcher\r
+from o2ims.service.watcher.ocloud_watcher import DmsWatcher\r
+from o2ims.service.watcher.resourcepool_watcher import ResourcePoolWatcher\r
 from o2ims.adapter.clients.ocloud_sa_client import StxSaDmsClient\r
 from o2ims.adapter.clients.ocloud_sa_client import StxSaOcloudClient\r
+from o2ims.adapter.clients.ocloud_sa_client import StxSaResourcePoolClient\r
+\r
+from o2ims.service.watcher.pserver_watcher import PServerWatcher\r
+from o2ims.adapter.clients.ocloud_sa_client import StxPserverClient\r
+\r
+from o2ims.service.watcher.pserver_cpu_watcher import PServerCpuWatcher\r
+from o2ims.adapter.clients.ocloud_sa_client import StxCpuClient\r
+\r
+from o2ims.service.watcher.base import WatcherTree\r
 \r
 from o2ims import bootstrap\r
 # from o2ims import config\r
@@ -37,16 +46,24 @@ class WatcherService(cotyledon.Service):
         self.args = args\r
         self.bus = bootstrap.bootstrap()\r
         self.worker = PollWorker()\r
-        # self.stxrepo = self.bus.uow.stxobjects\r
-        # tbd: 1 client per resource pool\r
-        # self.client = StxSaOcloudClient()\r
 \r
     def run(self):\r
         try:\r
-            self.worker.add_watcher(OcloudWatcher(StxSaOcloudClient(),\r
-                                    self.bus.uow))\r
-            self.worker.add_watcher(DmsWatcher(StxSaDmsClient(),\r
+            root = WatcherTree(OcloudWatcher(\r
+                StxSaOcloudClient(), self.bus.uow))\r
+            root.addchild(\r
+                DmsWatcher(StxSaDmsClient(), self.bus.uow))\r
+\r
+            child_respool = root.addchild(\r
+                ResourcePoolWatcher(StxSaResourcePoolClient(),\r
                                     self.bus.uow))\r
+            child_pserver = child_respool.addchild(\r
+                PServerWatcher(StxPserverClient(), self.bus.uow))\r
+            child_pserver.addchild(\r
+                PServerCpuWatcher(StxCpuClient(), self.bus.uow))\r
+\r
+            self.worker.add_watcher(root)\r
+\r
             self.worker.start()\r
         except Exception as ex:\r
             logger.warning("WorkerService Exception:" + str(ex))\r