Search in sources :

Example 66 with OnmsEvent

use of org.opennms.netmgt.model.OnmsEvent in project opennms by OpenNMS.

the class DatabasePopulator method buildEvent.

public OnmsEvent buildEvent(final OnmsDistPoller distPoller) {
    final OnmsEvent event = new OnmsEvent();
    event.setDistPoller(distPoller);
    event.setEventCreateTime(new Date(1437061537126L));
    event.setEventDescr("This is the description of a test event.");
    event.setEventDisplay("Y");
    // TODO: Figure out exactly what this field is storing
    event.setEventHost("127.0.0.1");
    event.setEventLog("Y");
    event.setEventLogMsg("Test Event Log Message");
    event.setEventParameters(Lists.newArrayList(new OnmsEventParameter(event, "testParm", "HelloWorld", "string")));
    event.setEventSeverity(OnmsSeverity.INDETERMINATE.getId());
    event.setEventSource("test");
    event.setEventTime(new Date(1437061537105L));
    event.setEventUei("uei.opennms.org/test");
    event.setIpAddr(InetAddressUtils.getInetAddress("192.168.1.1"));
    event.setNode(m_node1);
    event.setServiceType(m_serviceTypeDao.findByName("ICMP"));
    return event;
}
Also used : OnmsEvent(org.opennms.netmgt.model.OnmsEvent) OnmsEventParameter(org.opennms.netmgt.model.OnmsEventParameter) Date(java.util.Date)

Example 67 with OnmsEvent

use of org.opennms.netmgt.model.OnmsEvent in project opennms by OpenNMS.

the class AlarmDaoHibernate method getAlarmsForEventParameters.

public List<OnmsAlarm> getAlarmsForEventParameters(final Map<String, String> eventParameters) {
    final StringBuffer hqlStringBuffer = new StringBuffer("From OnmsAlarm a where ");
    for (int i = 0; i < eventParameters.size(); i++) {
        if (i > 0) {
            hqlStringBuffer.append(" and ");
        }
        hqlStringBuffer.append("exists (select p.event from OnmsEventParameter p where a.lastEvent=p.event and p.name = :name" + i + " and p.value like :value" + i + ")");
    }
    return (List<OnmsAlarm>) getHibernateTemplate().executeFind(new HibernateCallback<List<OnmsEvent>>() {

        @Override
        public List<OnmsEvent> doInHibernate(Session session) throws HibernateException, SQLException {
            Query q = session.createQuery(hqlStringBuffer.toString());
            int i = 0;
            for (final Map.Entry<String, String> entry : eventParameters.entrySet()) {
                q = q.setParameter("name" + i, entry.getKey()).setParameter("value" + i, entry.getValue());
                i++;
            }
            return q.list();
        }
    });
}
Also used : OnmsEvent(org.opennms.netmgt.model.OnmsEvent) Query(org.hibernate.Query) List(java.util.List) HibernateCallback(org.springframework.orm.hibernate3.HibernateCallback) Map(java.util.Map) Session(org.hibernate.Session)

Example 68 with OnmsEvent

use of org.opennms.netmgt.model.OnmsEvent in project opennms by OpenNMS.

the class HibernateEventWriter method process.

/**
 * {@inheritDoc}
 *
 * The method that inserts the event into the database
 */
private void process(final Header eventHeader, final Event event) throws EventProcessorException {
    LOG.debug("HibernateEventWriter: processing {}, nodeid: {}, ipaddr: {}, serviceid: {}, time: {}", event.getUei(), event.getNodeid(), event.getInterface(), event.getService(), event.getTime());
    try {
        final OnmsEvent ovent = createOnmsEvent(eventHeader, event);
        eventDao.save(ovent);
        // Update the event with the database ID of the event stored in the database
        event.setDbid(ovent.getId());
    } catch (DeadlockLoserDataAccessException e) {
        throw new EventProcessorException("Encountered deadlock when inserting event: " + event.toString(), e);
    } catch (Throwable e) {
        throw new EventProcessorException("Unexpected exception while storing event: " + event.toString(), e);
    }
}
Also used : EventProcessorException(org.opennms.netmgt.events.api.EventProcessorException) OnmsEvent(org.opennms.netmgt.model.OnmsEvent) DeadlockLoserDataAccessException(org.springframework.dao.DeadlockLoserDataAccessException)

Example 69 with OnmsEvent

use of org.opennms.netmgt.model.OnmsEvent in project opennms by OpenNMS.

the class HibernateEventWriter method createOnmsEvent.

/**
 * Creates OnmsEvent to be inserted afterwards.
 *
 * @exception java.lang.NullPointerException
 *                Thrown if a required resource cannot be found in the
 *                properties file.
 */
private OnmsEvent createOnmsEvent(final Header eventHeader, final Event event) {
    OnmsEvent ovent = new OnmsEvent();
    // eventID
    // ovent.setId(event.getDbid());
    // eventUEI
    ovent.setEventUei(EventDatabaseConstants.format(event.getUei(), EVENT_UEI_FIELD_SIZE));
    // nodeID
    if (event.hasNodeid()) {
        ovent.setNode(nodeDao.get(event.getNodeid().intValue()));
    }
    // eventTime
    ovent.setEventTime(event.getTime());
    // eventHost
    // Resolve the event host to a hostname using the ipInterface table
    ovent.setEventHost(EventDatabaseConstants.format(eventUtil.getEventHost(event), EVENT_HOST_FIELD_SIZE));
    // eventSource
    ovent.setEventSource(EventDatabaseConstants.format(event.getSource(), EVENT_SOURCE_FIELD_SIZE));
    // ipAddr
    ovent.setIpAddr(event.getInterfaceAddress());
    // ifindex
    if (event.hasIfIndex()) {
        ovent.setIfIndex(event.getIfIndex());
    } else {
        ovent.setIfIndex(null);
    }
    // If available, use the header's distPoller
    if (eventHeader != null && eventHeader.getDpName() != null && !"".equals(eventHeader.getDpName().trim())) {
        // TODO: Should we also try a look up the value in the MinionDao and LocationMonitorDao here?
        ovent.setDistPoller(distPollerDao.get(eventHeader.getDpName()));
    }
    // Otherwise, use the event's distPoller
    if (ovent.getDistPoller() == null && event.getDistPoller() != null && !"".equals(event.getDistPoller().trim())) {
        ovent.setDistPoller(monitoringSystemDao.get(event.getDistPoller()));
    }
    // And if both are unavailable, use the local system as the event's source system
    if (ovent.getDistPoller() == null) {
        ovent.setDistPoller(distPollerDao.whoami());
    }
    // eventSnmpHost
    ovent.setEventSnmpHost(EventDatabaseConstants.format(event.getSnmphost(), EVENT_SNMPHOST_FIELD_SIZE));
    // service
    ovent.setServiceType(serviceTypeDao.findByName(event.getService()));
    // eventSnmp
    ovent.setEventSnmp(event.getSnmp() == null ? null : SnmpInfo.format(event.getSnmp(), EVENT_SNMP_FIELD_SIZE));
    // eventParms
    ovent.setEventParametersFromEvent(event);
    // eventCreateTime
    // TODO: We are overriding the 'eventcreatetime' field of the event with a new Date
    // representing the storage time of the event. 'eventcreatetime' should really be
    // renamed to something like 'eventpersisttime' since that is closer to its meaning.
    ovent.setEventCreateTime(new Date());
    // eventDescr
    ovent.setEventDescr(EventDatabaseConstants.format(event.getDescr(), 0));
    // eventLoggroup
    ovent.setEventLogGroup(event.getLoggroupCount() > 0 ? EventDatabaseConstants.format(event.getLoggroup(), EVENT_LOGGRP_FIELD_SIZE) : null);
    // eventDisplay
    if (event.getLogmsg() != null) {
        // set log message
        ovent.setEventLogMsg(EventDatabaseConstants.format(event.getLogmsg().getContent(), 0));
        String logdest = event.getLogmsg().getDest();
        if (LOG_MSG_DEST_LOG_AND_DISPLAY.equals(logdest)) {
            // if 'logndisplay' set both log and display column to yes
            ovent.setEventLog(String.valueOf(MSG_YES));
            ovent.setEventDisplay(String.valueOf(MSG_YES));
        } else if (LOG_MSG_DEST_LOG_ONLY.equals(logdest)) {
            // if 'logonly' set log column to true
            ovent.setEventLog(String.valueOf(MSG_YES));
            ovent.setEventDisplay(String.valueOf(MSG_NO));
        } else if (LOG_MSG_DEST_DISPLAY_ONLY.equals(logdest)) {
            // if 'displayonly' set display column to true
            ovent.setEventLog(String.valueOf(MSG_NO));
            ovent.setEventDisplay(String.valueOf(MSG_YES));
        } else if (LOG_MSG_DEST_SUPRRESS.equals(logdest)) {
            // if 'suppress' set both log and display to false
            ovent.setEventLog(String.valueOf(MSG_NO));
            ovent.setEventDisplay(String.valueOf(MSG_NO));
        }
    } else {
        ovent.setEventLogMsg(null);
        ovent.setEventLog(String.valueOf(MSG_YES));
        ovent.setEventDisplay(String.valueOf(MSG_YES));
    }
    // eventSeverity
    ovent.setEventSeverity(OnmsSeverity.get(event.getSeverity()).getId());
    // eventPathOutage
    ovent.setEventPathOutage(event.getPathoutage() != null ? EventDatabaseConstants.format(event.getPathoutage(), EVENT_PATHOUTAGE_FIELD_SIZE) : null);
    // eventCorrelation
    ovent.setEventCorrelation(event.getCorrelation() != null ? Correlation.format(event.getCorrelation(), EVENT_CORRELATION_FIELD_SIZE) : null);
    // eventSuppressedCount
    ovent.setEventSuppressedCount(null);
    // eventOperInstruct
    ovent.setEventOperInstruct(EventDatabaseConstants.format(event.getOperinstruct(), 0));
    // eventAutoAction
    ovent.setEventAutoAction(event.getAutoactionCount() > 0 ? AutoAction.format(event.getAutoaction(), EVENT_AUTOACTION_FIELD_SIZE) : null);
    // eventOperAction / eventOperActionMenuText
    if (event.getOperactionCount() > 0) {
        final List<Operaction> a = new ArrayList<>();
        final List<String> b = new ArrayList<>();
        for (final Operaction eoa : event.getOperactionCollection()) {
            a.add(eoa);
            b.add(eoa.getMenutext());
        }
        ovent.setEventOperAction(OperatorAction.format(a, EVENT_OPERACTION_FIELD_SIZE));
        ovent.setEventOperActionMenuText(EventDatabaseConstants.format(b, EVENT_OPERACTION_FIELD_SIZE));
    } else {
        ovent.setEventOperAction(null);
        ovent.setEventOperActionMenuText(null);
    }
    // eventNotification, this column no longer needed
    ovent.setEventNotification(null);
    // eventTroubleTicket / eventTroubleTicket state
    if (event.getTticket() != null) {
        ovent.setEventTTicket(EventDatabaseConstants.format(event.getTticket().getContent(), EVENT_TTICKET_FIELD_SIZE));
        ovent.setEventTTicketState("on".equals(event.getTticket().getState()) ? 1 : 0);
    } else {
        ovent.setEventTTicket(null);
        ovent.setEventTTicketState(null);
    }
    // eventForward
    ovent.setEventForward(event.getForwardCount() > 0 ? Forward.format(event.getForward(), EVENT_FORWARD_FIELD_SIZE) : null);
    // eventmouseOverText
    ovent.setEventMouseOverText(EventDatabaseConstants.format(event.getMouseovertext(), EVENT_MOUSEOVERTEXT_FIELD_SIZE));
    // eventAckUser
    if (event.getAutoacknowledge() != null && "on".equals(event.getAutoacknowledge().getState())) {
        ovent.setEventAckUser(EventDatabaseConstants.format(event.getAutoacknowledge().getContent(), EVENT_ACKUSER_FIELD_SIZE));
        // eventAckTime - if autoacknowledge is present,
        // set time to event create time
        ovent.setEventAckTime(ovent.getEventCreateTime());
    } else {
        ovent.setEventAckUser(null);
        ovent.setEventAckTime(null);
    }
    return ovent;
}
Also used : OnmsEvent(org.opennms.netmgt.model.OnmsEvent) Operaction(org.opennms.netmgt.xml.event.Operaction) ArrayList(java.util.ArrayList) Date(java.util.Date)

Example 70 with OnmsEvent

use of org.opennms.netmgt.model.OnmsEvent in project opennms by OpenNMS.

the class EventdIT method testNMS8919.

@Test(timeout = 30000)
public void testNMS8919() throws Exception {
    CriteriaBuilder cb = new CriteriaBuilder(OnmsEvent.class);
    cb.eq("eventUei", EventConstants.FORCE_RESCAN_EVENT_UEI);
    assertEquals(0, m_eventDao.countMatching(cb.toCriteria()));
    OnmsNode node = m_databasePopulator.getNode1();
    assertNotNull(node);
    final EventBuilder e = new EventBuilder(EventConstants.FORCE_RESCAN_EVENT_UEI, "JUnit");
    e.addParam("_foreignSource", "imported:");
    e.addParam("_foreignId", "1");
    e.setLogDest("logndisplay");
    e.setLogMessage("forcing rescan");
    final Event event = e.getEvent();
    m_eventdIpcMgr.sendNow(event);
    while (m_eventDao.countMatching(cb.toCriteria()) < 1) {
        Thread.sleep(SLEEP_TIME);
    }
    final List<OnmsEvent> matching = m_eventDao.findMatching(cb.toCriteria());
    System.err.println("matching = " + matching);
    assertEquals(1, matching.size());
    assertEquals(new Integer(1), matching.get(0).getNodeId());
}
Also used : CriteriaBuilder(org.opennms.core.criteria.CriteriaBuilder) OnmsEvent(org.opennms.netmgt.model.OnmsEvent) OnmsNode(org.opennms.netmgt.model.OnmsNode) EventBuilder(org.opennms.netmgt.model.events.EventBuilder) OnmsEvent(org.opennms.netmgt.model.OnmsEvent) Event(org.opennms.netmgt.xml.event.Event) Test(org.junit.Test)

Aggregations

OnmsEvent (org.opennms.netmgt.model.OnmsEvent)94 Date (java.util.Date)49 OnmsAlarm (org.opennms.netmgt.model.OnmsAlarm)41 OnmsNode (org.opennms.netmgt.model.OnmsNode)37 Test (org.junit.Test)36 OnmsEventParameter (org.opennms.netmgt.model.OnmsEventParameter)22 OnmsIpInterface (org.opennms.netmgt.model.OnmsIpInterface)21 Transactional (org.springframework.transaction.annotation.Transactional)19 OnmsOutage (org.opennms.netmgt.model.OnmsOutage)16 InetAddress (java.net.InetAddress)13 NorthboundAlarm (org.opennms.netmgt.alarmd.api.NorthboundAlarm)13 OnmsMonitoredService (org.opennms.netmgt.model.OnmsMonitoredService)13 OnmsSnmpInterface (org.opennms.netmgt.model.OnmsSnmpInterface)9 ArrayList (java.util.ArrayList)7 Before (org.junit.Before)6 OnmsNotification (org.opennms.netmgt.model.OnmsNotification)6 Event (org.opennms.netmgt.xml.event.Event)6 LinkedList (java.util.LinkedList)5 List (java.util.List)5 CriteriaBuilder (org.opennms.core.criteria.CriteriaBuilder)5