/** * Handles the event driven access to acknowledging <code>OnmsAcknowledgable</code>s. The acknowledgment event * contains 4 parameters: * ackUser: The user acknowledging the <code>OnmsAcknowledgable</code> * ackAction: ack, unack, esc, clear * ackType: <code>AckType</code. representing either an <code>OnmsAlarm</code>, <code>OnmsNotification</code>, etc. * refId: The ID of the <code>OnmsAcknowledgable</code> * * @param event a {@link org.opennms.netmgt.xml.event.Event} object. */ @EventHandler(uei=EventConstants.ACKNOWLEDGE_EVENT_UEI) public void handleAckEvent(Event event) { LOG.info("handleAckEvent: Received acknowledgment event: {}", event); OnmsAcknowledgment ack; try { ack = new OnmsAcknowledgment(event); m_ackDao.processAck(ack); } catch (ParseException e) { LOG.error("handleAckEvent: unable to process acknowledgment event: {}", event, e); } }
/** * {@inheritDoc} */ @Transactional @Override public void unacknowledgeMatchingAlarms(OnmsCriteria criteria, String user) { List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); for (OnmsAlarm alarm : alarms) { OnmsAcknowledgment ack = new OnmsAcknowledgment(alarm, user); ack.setAckAction(AckAction.UNACKNOWLEDGE); m_ackDao.processAck(ack); } }
/** * {@inheritDoc} */ @Transactional @Override public void acknowledgeMatchingAlarms(String user, Date timestamp, OnmsCriteria criteria) { List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); Iterator<OnmsAlarm> alarmsIt = alarms.iterator(); while (alarmsIt.hasNext()) { OnmsAlarm alarm = alarmsIt.next(); OnmsAcknowledgment ack = new OnmsAcknowledgment(alarm, user); ack.setAckTime(timestamp); ack.setAckAction(AckAction.ACKNOWLEDGE); m_ackDao.processAck(ack); } }
@Override @Transactional public void acknowledgeAlarm(OnmsAlarm alarm, Date now) { LOG.info("Acknowledging alarm with id: {} @ {}", alarm.getId(), now); final OnmsAlarm alarmInTrans = alarmDao.get(alarm.getId()); if (alarmInTrans == null) { LOG.warn("Alarm disappeared: {}. Skipping ack.", alarm); return; } OnmsAcknowledgment ack = new OnmsAcknowledgment(alarmInTrans, DEFAULT_USER, now); ack.setAckAction(AckAction.ACKNOWLEDGE); acknowledgmentDao.processAck(ack); }
@Override @Transactional public void unacknowledgeAlarm(OnmsAlarm alarm, Date now) { LOG.info("Un-Acknowledging alarm with id: {} @ {}", alarm.getId(), now); final OnmsAlarm alarmInTrans = alarmDao.get(alarm.getId()); if (alarmInTrans == null) { LOG.warn("Alarm disappeared: {}. Skipping un-ack.", alarm); return; } OnmsAcknowledgment ack = new OnmsAcknowledgment(alarmInTrans, DEFAULT_USER, now); ack.setAckAction(AckAction.UNACKNOWLEDGE); acknowledgmentDao.processAck(ack); }
/** * {@inheritDoc} */ @Transactional @Override public void escalateAlarms(int[] alarmIds, String user, Date timestamp) { OnmsCriteria criteria = new OnmsCriteria(OnmsAlarm.class); criteria.add(Restrictions.in("id", Arrays.asList(ArrayUtils.toObject(alarmIds)))); List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); Iterator<OnmsAlarm> alarmsIt = alarms.iterator(); while (alarmsIt.hasNext()) { OnmsAlarm alarm = alarmsIt.next(); OnmsAcknowledgment ack = new OnmsAcknowledgment(alarm, user); ack.setAckTime(timestamp); ack.setAckAction(AckAction.ESCALATE); m_ackDao.processAck(ack); } }
/** * {@inheritDoc} */ @Transactional @Override public void clearAlarms(int[] alarmIds, String user, Date timestamp) { OnmsCriteria criteria = new OnmsCriteria(OnmsAlarm.class); criteria.add(Restrictions.in("id", Arrays.asList(ArrayUtils.toObject(alarmIds)))); List<OnmsAlarm> alarms = m_alarmDao.findMatching(criteria); Iterator<OnmsAlarm> alarmsIt = alarms.iterator(); while (alarmsIt.hasNext()) { OnmsAlarm alarm = alarmsIt.next(); OnmsAcknowledgment ack = new OnmsAcknowledgment(alarm, user); ack.setAckTime(timestamp); ack.setAckAction(AckAction.CLEAR); m_ackDao.processAck(ack); } }