@Override public String getReductionKey() { return alarm.getReductionKey(); }
/** * {@inheritDoc} */ @Override @Transactional public void updateReductionKeyMemo(Integer alarmId, String body, String user) { final OnmsAlarm onmsAlarm = m_alarmDao.get(alarmId); if (onmsAlarm != null) { OnmsReductionKeyMemo memo = onmsAlarm.getReductionKeyMemo(); if (memo == null) { memo = new OnmsReductionKeyMemo(); memo.setCreated(new Date()); } final String previousBody = memo.getBody(); final String previousAuthor = memo.getAuthor(); final Date previousUpdated = memo.getUpdated(); memo.setBody(body); memo.setAuthor(user); memo.setReductionKey(onmsAlarm.getReductionKey()); memo.setUpdated(new Date()); m_memoDao.saveOrUpdate(memo); onmsAlarm.setReductionKeyMemo(memo); m_alarmEntityNotifier.didUpdateReductionKeyMemo(onmsAlarm, previousBody, previousAuthor, previousUpdated); } }
/** * This marks an alarm as archived and prevents it from being used again in during reduction. */ public void archive() { m_qosAlarmState = ARCHIVED; m_severity = OnmsSeverity.CLEARED; m_reductionKey = getReductionKey() + ":ID:"+ getId(); }
@Override public void visit(ActionVisitor visitor) { visitor.unacknowledgeAlarm(ackUser, ackTime, (a) -> Objects.equals(reductionKey, a.getReductionKey())); } }
@Override public void visit(ActionVisitor visitor) { visitor.acknowledgeAlarm(ackUser, ackTime, (a) -> Objects.equals(reductionKey, a.getReductionKey())); } }
@Override public OnmsAlarm findByReductionKey(final String reductionKey) { for (OnmsAlarm alarm : findAll()) { if (alarm.getReductionKey().equals(reductionKey)) { return alarm; } } return null; }
private boolean formingCyclicGraph(OnmsAlarm situation, OnmsAlarm relatedAlarm) { return situation.getReductionKey().equals(relatedAlarm.getReductionKey()) || relatedAlarm.getRelatedAlarms().stream().anyMatch(ra -> formingCyclicGraph(situation, ra)); }
@Override public OnmsAlarm findByReductionKey(final String reductionKey) { for (OnmsAlarm alarm : findAll()) { if (alarm.getReductionKey().equals(reductionKey)) { return alarm; } } return null; }
@Override public void handleNewOrUpdatedAlarm(OnmsAlarm alarm) { if (!forwardAlarms) { // Ignore return; } updateAlarm(alarm.getReductionKey(), alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
@Override public void handleNewOrUpdatedAlarm(OnmsAlarm alarm) { if (!forwardAlarms) { // Ignore return; } updateAlarm(alarm.getReductionKey(), alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
public AlarmWrapperImpl(OnmsAlarm alarm) { Objects.requireNonNull(alarm); m_reductionKey = alarm.getReductionKey(); m_status = SeverityMapper.toStatus(alarm.getSeverity()); }
@Override public Map<String, AlarmWrapper> lookup(Set<String> reductionKeys) { if (reductionKeys == null || reductionKeys.isEmpty()) { return new HashMap<>(); } if (reductionKeys.size() <= threshold) { List<OnmsAlarm> alarms = alarmDao.findMatching(new CriteriaBuilder(OnmsAlarm.class).in("reductionKey", reductionKeys).toCriteria()); return alarms.stream().collect(Collectors.toMap(OnmsAlarm::getReductionKey, AlarmWrapperImpl::new)); } else { return alarmDao.findAll().stream() .filter(a -> reductionKeys.contains(a.getReductionKey())) .collect(Collectors.toMap(OnmsAlarm::getReductionKey, AlarmWrapperImpl::new)); } }
private String getReductionKey(int situationId) throws FeedbackException { OnmsAlarm situation = alarmDao.get(situationId); if (situation == null) { throw new FeedbackException("No Situation found with ID " + situationId); } return situation.getReductionKey(); }
@Override public void onAlarmDeleted(OnmsAlarm alarm) { forEachListener(l -> l.handleDeletedAlarm(alarm.getId(), alarm.getReductionKey())); }
@Override public void onAlarmDeleted(OnmsAlarm alarm) { forEachListener(l -> l.handleDeletedAlarm(alarm.getId(), alarm.getReductionKey())); }
@Override public void handleNewOrUpdatedAlarm(OnmsAlarm alarm) { final AlarmWrapperImpl alarmWrapper = new AlarmWrapperImpl(alarm); LOG.debug("Handling alarm with id: {}, reduction key: {} and severity: {} and status: {}", alarm.getId(), alarm.getReductionKey(), alarm.getSeverity(), alarmWrapper.getStatus()); m_stateMachine.handleNewOrUpdatedAlarm(alarmWrapper); }
private void handleNewOrUpdatedAlarmNoLock(OnmsAlarm alarm) { final KieSession kieSession = getKieSession(); // Initialize any related objects that are needed for rule execution Hibernate.initialize(alarm.getRelatedAlarms()); if (alarm.getLastEvent() != null) { // The last event may be null in unit tests Hibernate.initialize(alarm.getLastEvent().getEventParameters()); } final AlarmAndFact alarmAndFact = alarmsById.get(alarm.getId()); if (alarmAndFact == null) { LOG.debug("Inserting alarm into session: {}", alarm); final FactHandle fact = getKieSession().insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } else { // Updating the fact doesn't always give us to expected results so we resort to deleting it // and adding it again instead LOG.trace("Deleting alarm from session (for re-insertion): {}", alarm); kieSession.delete(alarmAndFact.getFact()); // Reinsert LOG.trace("Re-inserting alarm into session: {}", alarm); final FactHandle fact = kieSession.insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
private void handleNewOrUpdatedAlarmNoLock(OnmsAlarm alarm) { final KieSession kieSession = getKieSession(); // Initialize any related objects that are needed for rule execution Hibernate.initialize(alarm.getAssociatedAlarms()); if (alarm.getLastEvent() != null) { // The last event may be null in unit tests Hibernate.initialize(alarm.getLastEvent().getEventParameters()); } final AlarmAndFact alarmAndFact = alarmsById.get(alarm.getId()); if (alarmAndFact == null) { LOG.debug("Inserting alarm into session: {}", alarm); final FactHandle fact = getKieSession().insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } else { // Updating the fact doesn't always give us to expected results so we resort to deleting it // and adding it again instead LOG.trace("Deleting alarm from session (for re-insertion): {}", alarm); kieSession.delete(alarmAndFact.getFact()); // Reinsert LOG.trace("Re-inserting alarm into session: {}", alarm); final FactHandle fact = kieSession.insert(alarm); alarmsById.put(alarm.getId(), new AlarmAndFact(alarm, fact)); } handleRelatedAlarms(alarm); stateTracker.trackNewOrUpdatedAlarm(alarm.getId(), alarm.getReductionKey()); }
@Override public AlarmSummaryDTO alarmToAlarmSummaryDTO(OnmsAlarm alarm) { if ( alarm == null ) { return null; } AlarmSummaryDTO alarmSummaryDTO = new AlarmSummaryDTO(); if ( alarm.getSeverity() != null ) { alarmSummaryDTO.setSeverity( alarm.getSeverity().name() ); } alarmSummaryDTO.setLogMessage( alarm.getLogMsg() ); String eventUei = alarmLastEventEventUei( alarm ); if ( eventUei != null ) { alarmSummaryDTO.setUei( eventUei ); } alarmSummaryDTO.setDescription( alarm.getDescription() ); alarmSummaryDTO.setId( alarm.getId() ); alarmSummaryDTO.setType( ackTypeToInteger( alarm.getType() ) ); alarmSummaryDTO.setReductionKey( alarm.getReductionKey() ); alarmSummaryDTO.setNodeLabel( alarm.getNodeLabel() ); mapEventLabel( alarmSummaryDTO ); return alarmSummaryDTO; }
@Override public AlarmSummaryDTO alarmToAlarmSummaryDTO(OnmsAlarm alarm) { if ( alarm == null ) { return null; } AlarmSummaryDTO alarmSummaryDTO = new AlarmSummaryDTO(); if ( alarm.getSeverity() != null ) { alarmSummaryDTO.setSeverity( alarm.getSeverity().name() ); } alarmSummaryDTO.setLogMessage( alarm.getLogMsg() ); String eventUei = alarmLastEventEventUei( alarm ); if ( eventUei != null ) { alarmSummaryDTO.setUei( eventUei ); } alarmSummaryDTO.setDescription( alarm.getDescription() ); alarmSummaryDTO.setId( alarm.getId() ); alarmSummaryDTO.setType( ackTypeToInteger( alarm.getType() ) ); alarmSummaryDTO.setReductionKey( alarm.getReductionKey() ); alarmSummaryDTO.setNodeLabel( alarm.getNodeLabel() ); mapEventLabel( alarmSummaryDTO ); return alarmSummaryDTO; }