use of org.opennms.netmgt.xml.eventconf.AlarmData in project opennms by OpenNMS.
the class SpectrumTrapImporter method makeAlarmData.
public AlarmData makeAlarmData(AlertMapping mapping, EventDisposition dispo) {
if (!dispo.isCreateAlarm() && !dispo.isClearAlarm()) {
return null;
}
AlarmData alarmData = new AlarmData();
// Set the alarm-type according to clues in the disposition
if (dispo.isClearAlarm()) {
alarmData.setAlarmType(2);
} else {
alarmData.setAlarmType(1);
}
// Set the reduction key to include standard node stuff plus any discriminators
StringBuilder rkBuilder = new StringBuilder("%uei%:");
rkBuilder.append(m_reductionKeyBody);
for (int discriminator : dispo.getDiscriminators()) {
rkBuilder.append(":%parm[#").append(discriminator).append("]%");
}
// If it's marked as a unique alarm, add the event ID to the reduction-key
if (dispo.isUniqueAlarm()) {
rkBuilder.append("%eventid%");
}
alarmData.setReductionKey(rkBuilder.toString());
// If it's a clear-alarm, set the clear-key appropriately
if (dispo.isClearAlarm()) {
StringBuilder ckBuilder = new StringBuilder(makeUei(dispo.getClearAlarmCause()));
ckBuilder.append(":").append(m_reductionKeyBody);
for (int discriminator : dispo.getDiscriminators()) {
ckBuilder.append(":%parm[#").append(discriminator).append("]%");
}
alarmData.setClearKey(ckBuilder.toString());
}
return alarmData;
}
use of org.opennms.netmgt.xml.eventconf.AlarmData in project opennms by OpenNMS.
the class ThresholdController method ensureUEIInEventConf.
private void ensureUEIInEventConf(org.opennms.netmgt.xml.eventconf.Event source, String targetUei, ThresholdType thresholdType, String clearKey, boolean isTrigger) {
List<org.opennms.netmgt.xml.eventconf.Event> eventsForUEI = m_eventConfDao.getEvents(targetUei);
if (eventsForUEI == null || eventsForUEI.size() == 0) {
String typeDesc = isTrigger ? "exceeded" : "rearmed";
org.opennms.netmgt.xml.eventconf.Event event = new org.opennms.netmgt.xml.eventconf.Event();
event.setUei(targetUei);
event.setEventLabel("User-defined " + thresholdType + " threshold event " + typeDesc + ": " + targetUei);
Logmsg logmsg = new Logmsg();
event.setLogmsg(logmsg);
if (source == null) {
event.setDescr("Threshold " + typeDesc + " for %service% datasource %parm[ds]% on interface %interface%, parms: %parm[all]%");
logmsg.setDest(LogDestType.LOGNDISPLAY);
logmsg.setContent("Threshold " + typeDesc + " for %service% datasource %parm[ds]% on interface %interface%, parms: %parm[all]%");
event.setLogmsg(logmsg);
event.setSeverity("Warning");
} else {
event.setDescr(source.getDescr());
event.setSeverity(source.getSeverity());
event.setOperinstruct(source.getOperinstruct());
logmsg.setDest(source.getLogmsg().getDest());
logmsg.setContent(source.getLogmsg().getContent());
if (source.getAlarmData() != null) {
final AlarmData alarmData = new AlarmData();
final AlarmData sourceAlarmData = source.getAlarmData();
alarmData.setAlarmType(sourceAlarmData.getAlarmType());
alarmData.setAutoClean(sourceAlarmData.getAutoClean());
alarmData.setReductionKey(sourceAlarmData.getReductionKey());
if (!isTrigger && clearKey != null) {
alarmData.setClearKey(clearKey);
}
event.setAlarmData(alarmData);
}
}
m_eventConfDao.addEventToProgrammaticStore(event);
eventConfChanged = true;
}
}
Aggregations