Event translator does not fully reload configuration on reloadDaemonConfig event

Description

Steps to reproduce:

0. Configure a translation that's easily triggered and has at least one parameter assignment
1. Turn up Translator logging to DEBUG
2. Send in an event that gets translated by the translation set up in step 0
3. Change the name of the parameter in the assignment set up in step 0
4. Send in a reloadDaemonConfig event with its "daemonName" parameter set to "Translator" (as expected by the ET)
5. Send in the same event as in step 2 and watch translator.log

Expected result: log message indicates that the assignment being made is for the new parameter name as specified in the changes made at step 3 above

Actual result: log message still indicates that the assignment being made is for the OLD parameter name from translation configured in step 0 above.

Viable (but fairly painful) workaround: restart OpenNMS to reload the ET's configuration fully

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Will Keaney June 24, 2015 at 10:32 PM

This behavior is still present in 14.0.3-1, and possibly later releases.

Antonio Russo November 8, 2011 at 4:13 AM

I found the same issue on 1.8.15!

Step to respoduce:

1)I added two translations for interfaceUp and interfaceDown event to translator-configuration.xml:
--------CUT HERE----------- <event-translation-spec uei="uei.opennms.org/nodes/interfaceDown">
<mappings>
<mapping>
<assignment name="uei" type="field" >
<value type="constant" result="uei.opennms.org/translator/nodes/interfaceDown" />
</assignment>
<assignment name="ifDescr" type="parameter">
<value type="sql" result="SELECT snmp.snmpIfDescr FROM snmpInterface snmp WHERE snmp.nodeid = ?::integer AND snmp.ipaddr = ?::varchar" >
<value type="field" name="nodeid" matches=".*" result="${0}" />
<value type="field" name="interface" matches=".*" result="${0}" />
</value>
</assignment>
</mapping>
</mappings>
</event-translation-spec>
<event-translation-spec uei="uei.opennms.org/nodes/interfaceUp">
<mappings>
<mapping>
<assignment name="uei" type="field" >
<value type="constant" result="uei.opennms.org/translator/nodes/interfaceUp" />
</assignment>
<assignment name="ifDescr" type="parameter">
<value type="sql" result="SELECT snmp.snmpIfDescr FROM snmpInterface snmp WHERE snmp.nodeid = ?::integer AND snmp.ipaddr = ?::varchar" >
<value type="field" name="nodeid" matches=".*" result="${0}" />
<value type="field" name="interface" matches=".*" result="${0}" />
</value>
</assignment>
</mapping>
</mappings>
</event-translation-spec>
--------CUT HERE-----------
2) Then I send the reload daemon config
send-event.pl uei.opennms.org/internal/reloadDaemonConfig --parm 'daemonName Translator'

3) Send an interfaceDownEvent using send-event:
send-event.pl --nodeid 511 --interface 169.254.231.10 uei.opennms.org/nodes/interfaceDown

4) Expected behaviuor, the translator is able to translate the sent event

5) Here is the log message:

2011-11-08 09:34:21,851 INFO [OpenNMS.EventTranslator] EventIpcManagerDefaultImpl: run: calling onEvent on OpenNMS.EventTranslator for event uei.opennms.org/internal/reloadDaemonConfig dbid 3074360 with time Tuesday, 8 November 2011 8:34:21 o'clock GMT
2011-11-08 09:34:21,855 DEBUG [OpenNMS.EventTranslator] EventTranslator: isReloadConfigEventTarget: Event Translator was target of reload event: true
2011-11-08 09:34:21,855 INFO [OpenNMS.EventTranslator] EventTranslator: onEvent: reloading configuration....
2011-11-08 09:34:21,863 DEBUG [OpenNMS.EventTranslator] EventIpcManagerDefaultImpl: Adding event listener OpenNMS.EventTranslator for UEIs: uei.opennms.org/nodes/interfaceDown,uei.opennms.org/nodes/interfaceUp,uei.opennms.org/generic/traps/SNMP_Link_Down,uei.opennms.org/generic/traps/SNMP_Link_Up,uei.opennms.org/external/hyperic/alert,uei.opennms.org/vendor/Cisco/traps/ciscoConfigManEvent,uei.opennms.org/vendor/Juniper/traps/jnxCmCfgChange
2011-11-08 09:34:21,863 DEBUG [OpenNMS.EventTranslator] EventTranslator: onEvent: configuration reloaded.
2011-11-08 09:34:21,863 INFO [OpenNMS.EventTranslator] EventTranslator: onEvent: reload configuration: reload configuration contains 7 UEI specs.
2011-11-08 09:34:48,558 INFO [OpenNMS.EventTranslator] EventIpcManagerDefaultImpl: run: calling onEvent on OpenNMS.EventTranslator for event uei.opennms.org/nodes/interfaceDown dbid 3074405 with time Tuesday, 8 November 2011 8:34:48 o'clock GMT
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslatorConfig: TransSpec.matches: No match comparing spec UEI: uei.opennms.org/generic/traps/SNMP_Link_Down with event UEI: uei.opennms.org/nodes/interfaceDown
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslatorConfig: TransSpec.matches: No match comparing spec UEI: uei.opennms.org/generic/traps/SNMP_Link_Up with event UEI: uei.opennms.org/nodes/interfaceDown
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslatorConfig: TransSpec.matches: No match comparing spec UEI: uei.opennms.org/external/hyperic/alert with event UEI: uei.opennms.org/nodes/interfaceDown
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslatorConfig: TransSpec.matches: No match comparing spec UEI: uei.opennms.org/vendor/Cisco/traps/ciscoConfigManEvent with event UEI: uei.opennms.org/nodes/interfaceDown
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslatorConfig: TransSpec.matches: No match comparing spec UEI: uei.opennms.org/vendor/Juniper/traps/jnxCmCfgChange with event UEI: uei.opennms.org/nodes/interfaceDown
2011-11-08 09:34:48,558 DEBUG [OpenNMS.EventTranslator] EventTranslator: onEvent: received event that matches no translations:
Event: Dbid: 3074405
Descr: <p>All services are down on interface 169.254.231.10 </p> <p>This event is generated when node outage processing determines that the critical service or all services on the interface are now down </p> <p> New outage records have been created and service level availability calculations will be impacted until this outage is resolved.</p>
Host: svipcmonitor.corp.local
Interface: 169.254.231.10
Logmsg: org.opennms.netmgt.xml.event.Logmsg@777671eb
Nodeid: 511
Severity: Minor
Source: perl_send_event
Time: Tuesday, 8 November 2011 8:34:48 o'clock GMT
Uei: uei.opennms.org/nodes/interfaceDown
End Event

Clearly the translator is able to listen for new events but it has not reloaded the related translation-specification.

Duplicate

Details

Assignee

Reporter

Affects versions

Priority

PagerDuty

Created July 27, 2011 at 6:44 PM
Updated February 14, 2018 at 7:30 PM
Resolved August 2, 2017 at 1:42 PM

Flag notifications