# 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__)
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)