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
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