Merge "Revert "Add the PATCH method for the monitoring API""
authorJon Zhang <rong.zhang@windriver.com>
Tue, 7 May 2024 05:30:30 +0000 (05:30 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Tue, 7 May 2024 05:30:30 +0000 (05:30 +0000)
1  2 
o2ims/adapter/clients/fault_client.py

@@@ -1,4 -1,4 +1,4 @@@
- # Copyright (C) 2022-2024 Wind River Systems, Inc.
+ # Copyright (C) 2022 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.
@@@ -21,7 -21,7 +21,7 @@@ from cgtsclient.client import get_clien
  from cgtsclient.exc import EndpointException
  from dcmanagerclient.api.client import client as get_dc_client
  from fmclient.client import get_client as get_fm_client
 -from fmclient.common.exceptions import HTTPNotFound
 +from fmclient.common.exceptions import HTTPNotFound, HttpServerError
  
  from o2app.adapter import unit_of_work
  from o2common.config import config
@@@ -85,11 -85,6 +85,11 @@@ class StxAlarmClient(BaseClient)
                  logger.debug('alarm {} not in this resource pool {}'
                               .format(alarm, self._pool_id))
                  continue
 +            except HttpServerError:
 +                # TODO(jon): This exception needs to be removed when the
 +                # INF-457 related FM client upgrade and issue fix occur.
 +                logger.debug('alarm {} query failed'.format(alarm))
 +                continue
              ret.append(event)
  
          return ret
  
  
  class StxEventClient(BaseClient):
-     def __init__(self, uow: unit_of_work.AbstractUnitOfWork, driver=None):
+     def __init__(self, driver=None):
          super().__init__()
          self.driver = driver if driver else StxFaultClientImp()
-         self.uow = uow
  
      def _get(self, id) -> alarmModel.FaultGenericModel:
          return self.driver.getEventInfo(id)
      def _set_stx_client(self):
          self.driver.setFaultClient(self._pool_id)
  
-     def suppression_list(self, alarm_id) -> List[alarmModel.FaultGenericModel]:
-         return self.driver.getSuppressionList(alarm_id)
-     def suppress(self, id) -> alarmModel.FaultGenericModel:
-         return self.driver.suppressEvent(id)
  
  # internal driver which implement client call to Stx Fault Management instance
  class StxFaultClientImp(object):
          return alarmModel.FaultGenericModel(
              alarmModel.EventTypeEnum.EVENT, self._eventconverter(event))
  
-     def suppressEvent(self, id) -> alarmModel.FaultGenericModel:
-         patch = [dict(path='/' + 'suppression_status', value='suppressed',
-                       op='replace')]
-         event = self.fmclient.event_suppression.update(id, patch)
-         logger.debug('suppressed event id ' + id + ':' + str(event.to_dict()))
-         return alarmModel.FaultGenericModel(
-             alarmModel.EventTypeEnum.EVENT, self._suppression_converter(event))
-     def getSuppressionList(self, alarm_id) -> alarmModel.FaultGenericModel:
-         suppression_list = []
-         queryAsArray = []
-         events = self.fmclient.event_suppression.list(q=queryAsArray)
-         for event in events:
-             if event.alarm_id == alarm_id:
-                 # logger.debug('suppression event:' + str(event.to_dict()))
-                 suppression_list.append(
-                     alarmModel.FaultGenericModel(
-                         alarmModel.EventTypeEnum.EVENT,
-                         self._suppression_converter(event)))
-         return suppression_list
      @ staticmethod
      def _alarmconverter(alarm):
          selected_keys = [
                  uuid.NAMESPACE_URL, event.probable_cause)))
          return event
  
-     @ staticmethod
-     def _suppression_converter(event, clear=False):
-         selected_keys = [
-             'alarm_id', 'description', 'suppression_status',
-             'links'
-         ]
-         content = event.to_dict()
-         filtered = dict(
-             filter(lambda item: item[0] in selected_keys, content.items()))
-         setattr(event, 'filtered', filtered)
-         setattr(event, 'uuid', event.uuid)
-         setattr(event, 'alarm_id', event.alarm_id)
-         setattr(event, 'description', event.description)
-         setattr(event, 'suppression_status', event.suppression_status)
-         setattr(event, 'alarm_type', None)
-         setattr(event, 'alarm_def_id', None)
-         setattr(event, 'probable_cause_id', None)
-         setattr(event, 'state', None)
-         setattr(event, 'timestamp', None)
-         return event
      @ staticmethod
      def _alarmeventhasher(event, state=''):
          # The event model and the alarm model have different parameter name