-def alarm_event_record_ack(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.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()
- alarm_event_record.events.append(events.AlarmEventPurged(
- id=alarm_event_record.alarmEventRecordId,
- notificationEventType=AlarmNotificationEventEnum.ACKNOWLEDGE,
- updatetime=alarm_event_record.alarmAcknowledgeTime))
-
- uow.alarm_event_records.update(alarm_event_record)
- uow.commit()
-
- result = alarm_event_record.serialize()
- _handle_events(bus)
- return result
-
-
-def _handle_events(bus: messagebus.MessageBus):
- # handle events
- events = bus.uow.collect_new_events()
- for event in events:
- bus.handle(event)
- return True
-
-