X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fviews%2Falarm_view.py;h=00d4a2020c58b642ed1689d02e377470bb1648ae;hb=76a2f103ef57cc47973f0e7914ff5b7036f49800;hp=9f7af042279d8812db60aff85a23155ac6316462;hpb=e00040ca7c6149995c5883bcd9dd81e02b25d0da;p=pti%2Fo2.git diff --git a/o2ims/views/alarm_view.py b/o2ims/views/alarm_view.py index 9f7af04..00d4a20 100644 --- a/o2ims/views/alarm_view.py +++ b/o2ims/views/alarm_view.py @@ -24,7 +24,8 @@ from o2common.views.route_exception import BadRequestException, \ from o2ims.domain import events from o2ims.views.alarm_dto import SubscriptionDTO from o2ims.domain.alarm_obj import AlarmSubscription, AlarmEventRecord, \ - AlarmNotificationEventEnum + AlarmNotificationEventEnum, AlarmEventRecordModifications, \ + PerceivedSeverityEnum from o2common.helper import o2logging # from o2common.config import config @@ -52,26 +53,43 @@ def alarm_event_record_ack(alarmEventRecordId: str, uow: unit_of_work.AbstractUnitOfWork): with uow: alarm_event_record = uow.alarm_event_records.get(alarmEventRecordId) + # Check the record does not exist, return None. Otherwise, the + # acknowledge request will update the record even if it is + # acknowledged. if alarm_event_record is None: return None - elif alarm_event_record.alarmAcknowledged == 'true': - raise BadRequestException( - "Alarm Event Record {} has already been acknowledged." - .format(alarmEventRecordId)) alarm_event_record.alarmAcknowledged = True alarm_event_record.alarmAcknowledgeTime = datetime.\ now().strftime("%Y-%m-%dT%H:%M:%S") - bus = messagebus.MessageBus.get_instance() + uow.alarm_event_records.update(alarm_event_record) + uow.commit() + + result = AlarmEventRecordModifications(True) + return result + + +def alarm_event_record_clear(alarmEventRecordId: str, + uow: unit_of_work.AbstractUnitOfWork): + with uow: + alarm_event_record = uow.alarm_event_records.get(alarmEventRecordId) + if alarm_event_record is None: + return None + elif alarm_event_record.perceivedSeverity == \ + PerceivedSeverityEnum.CLEARED: + raise BadRequestException( + "Alarm Event Record {} has already been marked as CLEARED." + .format(alarmEventRecordId)) alarm_event_record.events.append(events.AlarmEventPurged( id=alarm_event_record.alarmEventRecordId, - notificationEventType=AlarmNotificationEventEnum.ACKNOWLEDGE, + notificationEventType=AlarmNotificationEventEnum.CLEAR, updatetime=alarm_event_record.alarmAcknowledgeTime)) uow.alarm_event_records.update(alarm_event_record) uow.commit() - result = alarm_event_record.serialize() - _handle_events(bus) + result = AlarmEventRecordModifications( + clear=PerceivedSeverityEnum.CLEARED) + _handle_events(messagebus.MessageBus.get_instance()) return result