-# Copyright (C) 2021 Wind River Systems, Inc.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-import cotyledon\r
-\r
-from o2app import bootstrap\r
-from o2common.service.watcher.base import WatcherTree\r
-from o2common.service.watcher.worker import PollWorker\r
-\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.pserver_mem_watcher import PServerMemWatcher\r
-from o2ims.adapter.clients.ocloud_sa_client import StxMemClient\r
-\r
-from o2ims.service.watcher.pserver_if_watcher import PServerIfWatcher\r
-from o2ims.adapter.clients.ocloud_sa_client import StxIfClient\r
-\r
-from o2ims.service.watcher.pserver_port_watcher import PServerIfPortWatcher\r
-from o2ims.adapter.clients.ocloud_sa_client import StxIfPortClient\r
-\r
-from o2ims.service.watcher.pserver_eth_watcher import PServerEthWatcher\r
-from o2ims.adapter.clients.ocloud_sa_client import StxEthClient\r
-\r
-from o2common.helper import o2logging\r
-logger = o2logging.get_logger(__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) -> None:\r
- super().__init__(worker_id)\r
- self.args = args\r
- self.bus = bootstrap.bootstrap()\r
- self.worker = PollWorker(bus=self.bus)\r
-\r
- def run(self):\r
- try:\r
- root = WatcherTree(OcloudWatcher(\r
- StxSaOcloudClient(), self.bus))\r
- root.addchild(\r
- DmsWatcher(StxSaDmsClient(), self.bus))\r
-\r
- child_respool = root.addchild(\r
- ResourcePoolWatcher(StxSaResourcePoolClient(),\r
- self.bus))\r
- child_pserver = child_respool.addchild(\r
- PServerWatcher(StxPserverClient(), self.bus))\r
- child_pserver.addchild(\r
- PServerCpuWatcher(StxCpuClient(), self.bus))\r
- child_pserver.addchild(\r
- PServerMemWatcher(StxMemClient(), self.bus))\r
- child_pserver.addchild(\r
- PServerEthWatcher(StxEthClient(), self.bus))\r
- child_if = child_pserver.addchild(\r
- PServerIfWatcher(StxIfClient(), self.bus))\r
- # child_if.addchild(\r
- # PServerIfPortWatcher(StxIfPortClient(), self.bus))\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
- finally:\r
- self.worker.stop()\r
-\r
-\r
-def start_watchers(sm: cotyledon.ServiceManager = None):\r
- watchersm = sm if sm else cotyledon.ServiceManager()\r
- watchersm.add(WatcherService, workers=1, args=())\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
+# Copyright (C) 2021 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import cotyledon
+
+from o2app import bootstrap
+from o2common.service.watcher.base import WatcherTree
+from o2common.service.watcher.worker import PollWorker
+
+from o2ims.service.watcher.ocloud_watcher import OcloudWatcher
+from o2ims.service.watcher.ocloud_watcher import DmsWatcher
+from o2ims.service.watcher.resourcepool_watcher import ResourcePoolWatcher
+from o2ims.service.watcher.alarm_watcher import AlarmWatcher
+
+from o2ims.adapter.clients.ocloud_client import StxDmsClient
+from o2ims.adapter.clients.ocloud_client import StxOcloudClient
+from o2ims.adapter.clients.ocloud_client import StxResourcePoolClient
+from o2ims.adapter.clients.fault_client import StxAlarmClient
+
+from o2ims.service.watcher.pserver_watcher import PServerWatcher
+from o2ims.adapter.clients.ocloud_client import StxPserverClient
+
+from o2ims.service.watcher.pserver_cpu_watcher import PServerCpuWatcher
+from o2ims.adapter.clients.ocloud_client import StxCpuClient
+
+from o2ims.service.watcher.pserver_mem_watcher import PServerMemWatcher
+from o2ims.adapter.clients.ocloud_client import StxMemClient
+
+from o2ims.service.watcher.pserver_if_watcher import PServerIfWatcher
+from o2ims.adapter.clients.ocloud_client import StxIfClient
+
+# from o2ims.service.watcher.pserver_port_watcher import PServerIfPortWatcher
+# from o2ims.adapter.clients.ocloud_client import StxIfPortClient
+
+from o2ims.service.watcher.pserver_eth_watcher import PServerEthWatcher
+from o2ims.adapter.clients.ocloud_client import StxEthClient
+
+# from o2ims.service.watcher.pserver_dev_watcher import PServerDevWatcher
+# from o2ims.adapter.clients.ocloud_client import StxDevClient
+from o2ims.service.watcher.pserver_acc_watcher import PServerAccWatcher
+from o2ims.adapter.clients.ocloud_client import StxAccClient
+
+from o2ims.adapter.clients.alarm_dict_client import load_alarm_definition,\
+ load_alarm_dictionary_from_conf_file
+from o2ims.service.watcher.agg_compute_watcher import ComputeAggWatcher
+from o2ims.service.watcher.agg_network_watcher import NetworkAggWatcher
+from o2ims.service.watcher.agg_storage_watcher import StorageAggWatcher
+from o2ims.service.watcher.agg_undefined_watcher import UndefinedAggWatcher
+from o2ims.adapter.clients.aggregate_client import ComputeAggClient, \
+ NetworkAggClient, StorageAggClient, UndefinedAggClient
+
+from o2common.helper import o2logging
+logger = o2logging.get_logger(__name__)
+
+# r = redis.Redis(**config.get_redis_host_and_port())
+
+
+class WatcherService(cotyledon.Service):
+ def __init__(self, worker_id, args=None) -> None:
+ super().__init__(worker_id)
+ self.args = args
+ self.bus = bootstrap.bootstrap()
+ self.worker = PollWorker(bus=self.bus)
+ load_alarm_definition(self.bus.uow)
+ load_alarm_dictionary_from_conf_file(self.bus.uow)
+
+ def run(self):
+ try:
+ root = WatcherTree(OcloudWatcher(
+ StxOcloudClient(), self.bus))
+ root.addchild(
+ DmsWatcher(StxDmsClient(), self.bus))
+ # root.addchild(
+ # AlarmWatcher(StxFaultClient(), self.bus))
+
+ child_respool = root.addchild(
+ ResourcePoolWatcher(StxResourcePoolClient(),
+ self.bus))
+
+ # Add Aggregate watch
+ child_respool.addchild(
+ ComputeAggWatcher(ComputeAggClient(), self.bus))
+ child_respool.addchild(
+ NetworkAggWatcher(NetworkAggClient(), self.bus))
+ child_respool.addchild(
+ StorageAggWatcher(StorageAggClient(), self.bus))
+ child_respool.addchild(
+ UndefinedAggWatcher(UndefinedAggClient(), self.bus))
+
+ # Add Resource watch
+ child_pserver = child_respool.addchild(
+ PServerWatcher(StxPserverClient(), self.bus))
+ child_pserver.addchild(
+ PServerCpuWatcher(StxCpuClient(), self.bus))
+ child_pserver.addchild(
+ PServerMemWatcher(StxMemClient(), self.bus))
+ child_pserver.addchild(
+ PServerEthWatcher(StxEthClient(), self.bus))
+ child_pserver.addchild(
+ PServerIfWatcher(StxIfClient(), self.bus))
+ # child_if.addchild(
+ # PServerIfPortWatcher(StxIfPortClient(), self.bus))
+ # child_pserver.addchild(
+ # PServerDevWatcher(StxDevClient(), self.bus))
+ child_pserver.addchild(
+ PServerAccWatcher(StxAccClient(), self.bus))
+
+ # Add Alarm watch
+ child_respool.addchild(
+ AlarmWatcher(StxAlarmClient(self.bus.uow), self.bus))
+
+ self.worker.add_watcher(root)
+
+ self.worker.start()
+ except Exception as ex:
+ logger.warning("WorkerService Exception:" + str(ex))
+ finally:
+ self.worker.stop()
+
+
+def start_watchers(sm: cotyledon.ServiceManager = None):
+ watchersm = sm if sm else cotyledon.ServiceManager()
+ watchersm.add(WatcherService, workers=1, args=())
+ watchersm.run()
+
+
+def main():
+ logger.info("Resource watcher starting")
+ start_watchers()
+
+
+if __name__ == "__main__":
+ main()