m_nodeId = alarm.getNodeId(); m_ackTime = alarm.getAlarmAckTime(); m_ackUser = alarm.getAlarmAckUser(); m_alarmType = alarm.getAlarmType() == null ? null : AlarmType.toAlarmType(alarm.getAlarmType()); m_appDn = alarm.getApplicationDN(); m_clearKey = alarm.getClearKey(); m_count = alarm.getCounter(); m_desc = alarm.getDescription(); m_poller = alarm.getDistPoller(); m_firstOccurrence = alarm.getFirstEventTime(); m_id = alarm.getId(); m_ipAddr = alarm.getIpAddr() != null ? InetAddressUtils.toIpAddrString(alarm.getIpAddr()) : null; m_lastOccurrence = alarm.getLastEventTime(); m_logMsg = alarm.getLogMsg(); m_objectInstance = alarm.getManagedObjectInstance(); m_objectType = alarm.getManagedObjectType(); m_operInst = alarm.getOperInstruct(); m_ossKey = alarm.getOssPrimaryKey(); m_ossState = alarm.getQosAlarmState(); m_alarmKey = alarm.getReductionKey(); m_service = alarm.getServiceType() == null ? null : alarm.getServiceType().getName(); m_severity = alarm.getSeverity(); m_suppressed = alarm.getSuppressedTime(); m_suppressedUntil = alarm.getSuppressedUntil(); m_suppressedBy = alarm.getSuppressedUser(); m_ticketId = alarm.getTTicketId(); m_ticketState = alarm.getTTicketState(); m_uei = alarm.getUei(); m_x733Type = alarm.getX733AlarmType();
/** * 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(); }
private void incrementCounter(OnmsAlarm alarm) { alarm.setCounter(alarm.getCounter() + 1); }
/** * Used to determine if an alarm that is presently in the working memory should be updated * with the given alarm, when handling alarm snapshots. * * @param alarmInMem the alarm that is currently in the working memory * @param alarmInDb the alarm that is currently in the database * @return true if the alarm in the working memory should be updated, false otherwise */ protected static boolean shouldUpdateAlarmForSnapshot(OnmsAlarm alarmInMem, OnmsAlarm alarmInDb) { return !Objects.equals(alarmInMem.getLastEventTime(), alarmInDb.getLastEventTime()) || !Objects.equals(alarmInMem.getAckTime(), alarmInDb.getAckTime()); }
alarmDTO.setSeverity( alarm.getSeverityLabel() ); alarmDTO.setAckTime( alarm.getAlarmAckTime() ); alarmDTO.setLogMessage( alarm.getLogMsg() ); alarmDTO.setOperatorInstructions( alarm.getOperInstruct() ); alarmDTO.setIpAddress( alarm.getIpAddr() ); alarmDTO.setCount( alarm.getCounter() ); alarmDTO.setSuppressedBy( alarm.getSuppressedUser() ); alarmDTO.setTroubleTicket( alarm.getTTicketId() ); alarmDTO.setType( alarm.getAlarmType() ); alarmDTO.setAckUser( alarm.getAlarmAckUser() ); alarmDTO.setTroubleTicketState( mapTicketStateToInt( alarm.getTTicketState() ) ); alarmDTO.setId( alarm.getId() ); alarmDTO.setUei( alarm.getUei() ); alarmDTO.setNodeId( alarm.getNodeId() ); alarmDTO.setNodeLabel( alarm.getNodeLabel() );
public OpennmsModelProtos.Alarm.Builder toAlarm(OnmsAlarm alarm) { final OpennmsModelProtos.Alarm.Builder builder = OpennmsModelProtos.Alarm.newBuilder() .setId(alarm.getId()) .setUei(alarm.getUei()) .setCount(alarm.getCounter()) .setSeverity(toSeverity(alarm.getSeverity())); if (alarm.getReductionKey() != null) { builder.setReductionKey(alarm.getReductionKey()); if (toEvent(alarm.getLastEvent()) != null) { builder.setLastEvent(toEvent(alarm.getLastEvent())); if (alarm.getLogMsg() != null) { builder.setLogMessage(alarm.getLogMsg()); if (alarm.getDescription() != null) { builder.setDescription(alarm.getDescription()); if (alarm.getIpAddr() != null) { builder.setIpAddress(InetAddressUtils.toIpAddrString(alarm.getIpAddr())); if (alarm.getIfIndex() != null) { builder.setIfIndex(alarm.getIfIndex()); if (alarm.getOperInstruct() != null) { builder.setOperatorInstructions(alarm.getOperInstruct()); if (alarm.getAckUser() != null) { builder.setAckUser(alarm.getAckUser());
event.setDbid(alarm.getLastEvent().getId()); if (alarm.getUei() != null ) { event.setUei(alarm.getUei()); } else { return null; if (alarm.getLastEvent().getEventSource() != null ) { event.setSource(alarm.getLastEvent().getEventSource()); if (alarm.getNode() != null) { event.setNodeid(alarm.getNode().getId().longValue()); if (alarm.getFirstEventTime() != null) { event.setCreationTime(alarm.getFirstEventTime()); if (alarm.getLastEventTime() != null) { event.setTime(alarm.getLastEventTime()); if (alarm.getLastEvent().getEventHost() != null) { event.setHost(alarm.getLastEvent().getEventHost()); if (alarm.getIpAddr() != null) { event.setInterfaceAddress(alarm.getIpAddr()); if (alarm.getServiceType() != null) { event.setService(alarm.getServiceType().getName());
@Override public List<Alarm> call() throws Exception { /** * retrieve the matching alarms */ List<OnmsAlarm> onmsAlarms = getSurveillanceViewService().getAlarmsForCategories(rowCategories, colCategories); List<Alarm> alarms = new ArrayList<>(); Map<Integer, OnmsNode> nodeMap = new HashMap<>(); for (OnmsAlarm onmsAlarm : onmsAlarms) { if (!nodeMap.containsKey(onmsAlarm.getNodeId())) { nodeMap.put(onmsAlarm.getNodeId(), getSurveillanceViewService().getNodeForId(onmsAlarm.getNodeId())); } alarms.add(new Alarm(onmsAlarm.getId(), onmsAlarm.getUei(), onmsAlarm.getSeverityId(), onmsAlarm.getSeverity().getLabel(), nodeMap.get(onmsAlarm.getNodeId()).getLabel(), onmsAlarm.getNodeId(), onmsAlarm.getLogMsg(), onmsAlarm.getCounter(), onmsAlarm.getFirstEventTime(), onmsAlarm.getLastEventTime())); } return alarms; } });
@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 @Transactional public void clearAlarm(OnmsAlarm alarm, Date clearTime) { LOG.info("Clearing alarm with id: {} with current severity: {} at: {}", alarm.getId(), alarm.getSeverity(), clearTime); final OnmsAlarm alarmInTrans = alarmDao.get(alarm.getId()); if (alarmInTrans == null) { LOG.warn("Alarm disappeared: {}. Skipping clear.", alarm); return; } final OnmsSeverity previousSeverity = alarmInTrans.getSeverity(); alarmInTrans.setSeverity(OnmsSeverity.CLEARED); updateAutomationTime(alarmInTrans, clearTime); alarmDao.update(alarmInTrans); alarmEntityNotifier.didUpdateAlarmSeverity(alarmInTrans, previousSeverity); }
private void populateRelatedAlarmsForTicket(Ticket ticket, Set<OnmsAlarm> relatedAlarms) { List<RelatedAlarmSummary> relatedAlarmSummaryList = new ArrayList<>(); relatedAlarms.forEach(relatedAlarm -> { RelatedAlarmSummary relatedAlarmSummary = new RelatedAlarmSummary(); relatedAlarmSummary.setAlarmId(relatedAlarm.getId()); relatedAlarmSummary.setIpAddress(relatedAlarm.getIpAddr()); relatedAlarmSummary.setNodeId(relatedAlarm.getNodeId()); relatedAlarmSummary.setSummary(relatedAlarm.getDescription()); relatedAlarmSummary.setDetails(relatedAlarm.getLogMsg()); relatedAlarmSummaryList.add(relatedAlarmSummary); }); ticket.setRelatedAlarms(relatedAlarmSummaryList); }
public static EventBuilder createEventBuilder(String uei, OnmsAlarm alarm, Map<String, String> attributes) { EventBuilder bldr = new EventBuilder(uei, "AlarmUI"); bldr.setNode(alarm.getNode()); bldr.setInterface(alarm.getIpAddr()); bldr.setService(alarm.getServiceType() == null ? null : alarm.getServiceType().getName()); bldr.addParam(EventConstants.PARM_ALARM_UEI, alarm.getUei()); if (attributes == null || !attributes.containsKey(EventConstants.PARM_USER)) bldr.addParam(EventConstants.PARM_USER, alarm.getAlarmAckUser()); bldr.addParam(EventConstants.PARM_ALARM_ID, alarm.getId()); if (alarm.getTTicketId() != null) { bldr.addParam(EventConstants.PARM_TROUBLE_TICKET, alarm.getTTicketId()); } if (attributes != null) { for (Map.Entry<String, String> attribute: attributes.entrySet()) { bldr.addParam(attribute.getKey(), attribute.getValue()); } } return bldr; }
@Override @Transactional public void unclearAlarm(OnmsAlarm alarm, Date now) { LOG.info("Un-clearing alarm with id: {} at: {}", alarm.getId(), alarm.getLastEventTime()); final OnmsAlarm alarmInTrans = alarmDao.get(alarm.getId()); if (alarmInTrans == null) { LOG.warn("Alarm disappeared: {}. Skipping un-clear.", alarm); return; } final OnmsSeverity previousSeverity = alarmInTrans.getSeverity(); alarmInTrans.setSeverity(OnmsSeverity.get(alarmInTrans.getLastEvent().getEventSeverity())); updateAutomationTime(alarmInTrans, now); alarmDao.update(alarmInTrans); alarmEntityNotifier.didUpdateAlarmSeverity(alarmInTrans, previousSeverity); }
/** * <p>toString</p> * * @return a {@link java.lang.String} object. */ @Override public String toString() { return MoreObjects.toStringHelper(this) .add("alarmid", getId()) .add("distPoller", getDistPoller()) .add("uei", getUei()) .add("severity", getSeverity()) .add("lastEventTime",getLastEventTime()) .toString(); }
OnmsNode onmsNode = null; if (onmsAlarm.getNodeId() != null) { CriteriaBuilder nodeCb = new CriteriaBuilder(OnmsNode.class); nodeCb.eq("id", onmsAlarm.getNodeId()); sb.append("<tr class='alert-details-dashlet " + onmsAlarm.getSeverity().getLabel() + "'>"); sb.append("<td class='alert-details-dashlet onms-cell divider bright onms' valign='middle' rowspan='1'><nobr> " + onmsAlarm.getId() + "</nobr></td>"); sb.append("<td class='alert-details-dashlet onms-cell divider onms' valign='middle' rowspan='1'><nobr>" + onmsAlarm.getSeverity().getLabel() + "</nobr></td>"); sb.append("<td class='alert-details-dashlet onms-cell divider onms' valign='middle' rowspan='1'><nobr>" + (onmsNode != null ? onmsNode.getLabel() : "-") + "</nobr></td>"); sb.append("<td class='alert-details-dashlet onms-cell divider onms' valign='middle' rowspan='1'><nobr>" + onmsAlarm.getCounter() + "</nobr></td>"); sb.append("<td class='alert-details-dashlet onms-cell divider onms' valign='middle' rowspan='1'><nobr>" + m_timeformatService.format(onmsAlarm.getLastEventTime(), userTimeZone) + "</nobr></td>"); sb.append("<td class='alert-details-dashlet onms-cell divider onms' valign='middle' rowspan='1'>" + onmsAlarm.getLogMsg().replaceAll("\\<.*?>", "") + "</td>"); sb.append("</td></tr>");
public boolean areAlarmsEqual(OnmsAlarm a1, OnmsAlarm a2) { if (a1 == null && a2 == null) { return true; } if (a1 == null || a2 == null) { return false; } return Objects.equals(a1.getId(), a2.getId()) && Objects.equals(a1.getLastEventTime(), a2.getLastEventTime()) && Objects.equals(a1.getLastAutomationTime(), a2.getLastAutomationTime()) && Objects.equals(a1.getSeverity(), a2.getSeverity()) && Objects.equals(a1.getAckUser(), a2.getAckUser()) && Objects.equals(a1.getAckTime(), a2.getAckTime()); }
@Override public void updateTicket(OnmsAlarm alarm, Date now) { /* <action-event name="updateTicket" for-each-result="true" > <assignment type="field" name="uei" value="uei.opennms.org/troubleTicket/update" /> <assignment type="parameter" name="alarmUei" value="${_eventuei}" /> <assignment type="parameter" name="user" value="${_user}" /> <assignment type="parameter" name="alarmId" value="${_alarmid}" /> <assignment type="parameter" name="troubleTicket" value="${_tticketID}" /> </action-event> */ // Send the update ticket event eventForwarder.sendNow(new EventBuilder(EventConstants.TROUBLETICKET_UPDATE_UEI, DefaultAlarmTicketerService.class.getSimpleName()) .addParam(EventConstants.PARM_ALARM_UEI, alarm.getUei()) .addParam(EventConstants.PARM_USER, DefaultAlarmService.DEFAULT_USER) .addParam(EventConstants.PARM_ALARM_ID, alarm.getId()) .addParam(EventConstants.PARM_TROUBLE_TICKET, alarm.getTTicketId()) .getEvent()); // Update the lastAutomationTime updateLastAutomationTime(alarm, now); }
if (alarm == null || (m_createNewAlarmIfClearedAlarmExists && OnmsSeverity.CLEARED.equals(alarm.getSeverity()))) { if (LOG.isDebugEnabled()) { LOG.debug("addOrReduceEventAsAlarm: reductionKey:{} not found, instantiating new alarm", reductionKey); LOG.debug("addOrReduceEventAsAlarm: \"archiving\" cleared Alarm for problem: {}; " + "A new alarm will be instantiated to manage the problem.", reductionKey); alarm.archive(); m_alarmDao.save(alarm); m_alarmDao.flush(); LOG.debug("addOrReduceEventAsAlarm: reductionKey:{} found, reducing event to existing alarm: {}", reductionKey, alarm.getIpAddr()); reduceEvent(persistedEvent, alarm, event); m_eventDao.deletePreviousEventsForAlarm(alarm.getId(), persistedEvent);
@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); }
@Override protected Integer getId(final OnmsAlarm alarm) { return alarm.getId(); }