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;
}
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();
}
});
}
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);
}
}
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;
}
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());
}
Aggregations