Update watcher worker
[pti/o2.git] / o2ims / entrypoints / resource_watcher.py
similarity index 50%
rename from o2ims/service/watcher/executor.py
rename to o2ims/entrypoints/resource_watcher.py
index 607bdc9..a3292df 100644 (file)
 import cotyledon\r
 \r
 from o2ims.service.watcher.worker import PollWorker\r
-from o2ims.service.watcher.base import OcloudWather\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.adapter.clients.ocloud_sa_client import StxSaDmsClient\r
+from o2ims.adapter.clients.ocloud_sa_client import StxSaOcloudClient\r
+\r
+from o2ims import bootstrap\r
+# from o2ims import config\r
+# import redis\r
 \r
 import logging\r
 logger = logging.getLogger(__name__)\r
 \r
+# r = redis.Redis(**config.get_redis_host_and_port())\r
+\r
 \r
 class WatcherService(cotyledon.Service):\r
-    def __init__(self, worker_id, args) -> None:\r
+    def __init__(self, worker_id, args=None) -> None:\r
         super().__init__(worker_id)\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(OcloudWather())\r
-            self.worker.add_watcher(DmsWatcher())\r
+            self.worker.add_watcher(OcloudWatcher(StxSaOcloudClient(),\r
+                                    self.bus.uow))\r
+            self.worker.add_watcher(DmsWatcher(StxSaDmsClient(),\r
+                                    self.bus.uow))\r
             self.worker.start()\r
         except Exception as ex:\r
-            logger.warning(ex.message)\r
+            logger.warning("WorkerService Exception:" + str(ex))\r
         finally:\r
             self.worker.stop()\r
 \r
 \r
-def start_watchers(sm=None):\r
+def start_watchers(sm: cotyledon.ServiceManager = None):\r
     watchersm = sm if sm else cotyledon.ServiceManager()\r
     watchersm.add(WatcherService, workers=1, args=())\r
-    return watchersm\r
+    watchersm.run()\r
+\r
+\r
+def main():\r
+    logger.info("Resource watcher starting")\r
+    start_watchers()\r
+\r
+\r
+if __name__ == "__main__":\r
+    main()\r