X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fservice%2Fwatcher%2Falarm_watcher.py;h=b4af164bb4a2d35687f261083f820b696bd0f94e;hb=refs%2Fchanges%2F02%2F9802%2F1;hp=3581ef2262b889e007bb5e49bed5d51922032d13;hpb=d2f6cc674bf3623caf114a8d7709e70d55ec9340;p=pti%2Fo2.git diff --git a/o2ims/service/watcher/alarm_watcher.py b/o2ims/service/watcher/alarm_watcher.py index 3581ef2..b4af164 100644 --- a/o2ims/service/watcher/alarm_watcher.py +++ b/o2ims/service/watcher/alarm_watcher.py @@ -12,13 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -# from o2ims.domain.resource_type import ResourceTypeEnum -from o2common.service.client.base_client import BaseClient -# from o2ims.domain.stx_object import StxGenericModel -# from o2common.service.unit_of_work import AbstractUnitOfWork -from o2common.service.watcher.base import BaseWatcher +from o2common.domain import tags from o2common.service.messagebus import MessageBus +from o2common.service.watcher.base import BaseWatcher +from o2common.service.client.base_client import BaseClient + from o2ims.domain import commands +from o2ims.domain.stx_object import StxGenericModel from o2common.helper import o2logging logger = o2logging.get_logger(__name__) @@ -28,65 +28,22 @@ class AlarmWatcher(BaseWatcher): def __init__(self, fault_client: BaseClient, bus: MessageBus) -> None: super().__init__(fault_client, bus) + self._tags = tags.Tag() + self.poolid = None def _targetname(self): return "alarm" - def _probe(self, parent: object = None, tags: object = None): - newmodels = self._client.list() - # if len(newmodels) == 0: - # return [] - - # uow = self._bus.uow - # exist_alarms = {} - # with uow: - # rs = uow.session.execute( - # ''' - # SELECT "alarmEventRecordId" - # FROM "alarmEventRecord" - # WHERE "perceivedSeverity" != :perceived_severity_enum - # ''', - # dict(perceived_severity_enum=alarm_obj.PerceivedSeverityEnum. - # CLEARED) - # ) - # for row in rs: - # id = row[0] - # # logger.debug('Exist alarm: ' + id) - # exist_alarms[id] = False + def _probe(self, parent: StxGenericModel, tags: object = None): + # Set a tag for children resource + self._tags.pool = parent.res_pool_id + self._set_respool_client() - # ret = [] - # for m in newmodels: - # try: - # if exist_alarms[m.id]: - # ret.append(commands.UpdateAlarm(m)) - # exist_alarms[m.id] = True - # except KeyError: - # logger.debug('alarm new: ' + m.id) - # ret.append(commands.UpdateAlarm(m)) - - # for alarm in exist_alarms: - # logger.debug('exist alarm: ' + alarm) - # if exist_alarms[alarm]: - # # exist alarm is active - # continue - # event = self._client.get(alarm) - # ret.append(commands.UpdateAlarm(event)) - - # return ret - - return [commands.UpdateAlarm(m) for m in newmodels] \ + resourcepoolid = parent.id + newmodels = self._client.list() + return [commands.UpdateAlarm(m, resourcepoolid) for m in newmodels] \ if len(newmodels) > 0 else [] - -# class EventWatcher(BaseWatcher): -# def __init__(self, fault_client: BaseClient, -# bus: MessageBus) -> None: -# super().__init__(fault_client, bus) - -# def _targetname(self): -# return "event" - -# def _probe(self, parent: object = None, tags: object = None): -# newmodels = self._client.list() -# return [commands.UpdateAlarm(m) for m in newmodels] \ -# if len(newmodels) > 0 else [] + def _set_respool_client(self): + self.poolid = self._tags.pool + self._client.set_pool_driver(self.poolid)