private org.opennms.netmgt.translator.EventTranslator getEventTranslator() { return org.opennms.netmgt.translator.EventTranslator.getInstance(); } }
/** * <p>Constructor for EventTranslator.</p> * * @param eventMgr a {@link org.opennms.netmgt.events.api.EventIpcManager} object. */ public EventTranslator(EventIpcManager eventMgr) { this(); setEventManager(eventMgr); }
/** * <p>onStart</p> */ @Override protected void onStart() { getEventTranslator().start(); }
/** * <p>onInit</p> */ @Override protected void onInit() { if (m_initialized) return; checkPreRequisites(); createMessageSelectorAndSubscribe(); m_initialized = true; }
@Before @Override public void setUp() throws Exception { super.setUp(); MockLogAppender.setupLogging(); createAnticipators(); m_eventMgr = new MockEventIpcManager(); m_eventMgr.setEventWriter(m_db); m_eventMgr.addEventListener(m_outageAnticipator); m_eventMgr.setSynchronous(true); InputStream rdr = new ByteArrayInputStream(m_passiveStatusConfiguration.getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); m_translator.setDataSource(m_db); m_translator.init(); m_translator.start(); }
@Test public void testTranslateLinkDown() throws SQLException, IOException { InputStream rdr = new ByteArrayInputStream(getLinkDownTranslation().getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); // nodeId=1, ifIndex=2 will match in db final List<Event> translatedEvents = m_config.translateEvent(createLinkDownEvent(1,2)); assertNotNull(translatedEvents); assertEquals(1, translatedEvents.size()); assertEquals(3, translatedEvents.get(0).getParmCollection().size()); assertEquals(".1.3.6.1.2.1.2.2.1.1.2", translatedEvents.get(0).getParmCollection().get(0).getParmName()); assertEquals("ifName", translatedEvents.get(0).getParmCollection().get(1).getParmName()); assertEquals("ifAlias", translatedEvents.get(0).getParmCollection().get(2).getParmName()); assertEquals("david", translatedEvents.get(0).getParmCollection().get(1).getValue().getContent()); assertEquals("p-brane", translatedEvents.get(0).getParmCollection().get(2).getValue().getContent()); }
/** * <p>onInit</p> */ @Override protected void onInit() { try { EventTranslatorConfigFactory.init(); } catch (IOException e) { LOG.error("IOException: ", e); throw new UndeclaredThrowableException(e); } catch (ClassNotFoundException e) { LOG.error("Unable to initialize database", e); throw new UndeclaredThrowableException(e); } catch (SQLException e) { LOG.error("SQLException: ", e); throw new UndeclaredThrowableException(e); } catch (PropertyVetoException e) { LOG.error("PropertyVetoException: ", e); throw new UndeclaredThrowableException(e); } EventIpcManagerFactory.init(); EventIpcManager mgr = EventIpcManagerFactory.getIpcManager(); org.opennms.netmgt.translator.EventTranslator keeper = getEventTranslator(); keeper.setConfig(EventTranslatorConfigFactory.getInstance()); keeper.setEventManager(mgr); keeper.setDataSource(DataSourceFactory.getInstance()); keeper.init(); }
if (isReloadConfigEvent(e)) { handleReloadEvent(e); return; if (getName().equals(e.getSource())) { LOG.debug("onEvent: ignoring event with EventTranslator as source"); return; getEventManager().sendNow(log);
/** * Re-marshals the translator specs into the factory's config member and * re-registers the UIEs with the eventProxy. * * @param e The reload daemon config event<code>Event</code> */ protected void handleReloadEvent(Event e) { LOG.info("onEvent: reloading configuration...."); EventBuilder ebldr = null; try { List<String> previousUeis = m_config.getUEIList(); m_config.update(); //need to re-register the UEIs not including those the daemon //registered separate from the config (i.e. reloadDaemonConfig) getEventManager().removeEventListener(this, previousUeis); getEventManager().addEventListener(this, m_config.getUEIList()); LOG.debug("onEvent: configuration reloaded."); ebldr = new EventBuilder(EventConstants.RELOAD_DAEMON_CONFIG_SUCCESSFUL_UEI, getName()); ebldr.addParam(EventConstants.PARM_DAEMON_NAME, "Translator"); } catch (Throwable exception) { LOG.error("onEvent: reload config failed: {}", e, exception); ebldr = new EventBuilder(EventConstants.RELOAD_DAEMON_CONFIG_FAILED_UEI, getName()); ebldr.addParam(EventConstants.PARM_DAEMON_NAME, "Translator"); ebldr.addParam(EventConstants.PARM_REASON, exception.getLocalizedMessage().substring(1, 128)); } if (ebldr != null) { m_eventMgr.sendNow(ebldr.getEvent()); } LOG.info("onEvent: reload configuration: reload configuration contains {} UEI specs.", m_config.getUEIList().size()); }
/** * <p>onStop</p> */ @Override protected void onStop() { getEventTranslator().stop(); }
private void validateTranslatedEvent(Event event) { assertEquals(m_translator.getName(), event.getSource()); assertEquals(Long.valueOf(3), event.getNodeid()); assertEquals("www.opennms.org", event.getHost()); assertEquals("a generated event", event.getDescr()); assertEquals("192.168.1.1", event.getInterface()); assertEquals("Switch", EventUtils.getParm(event, "nodeLabel")); assertEquals("PSV", event.getService()); assertEquals("Down", EventUtils.getParm(event, "passiveStatus")); }
@Before public void setUp() throws Exception { MockLogAppender.setupLogging(); createMockNetwork(); createMockDb(); createAnticipators(); m_eventMgr = new MockEventIpcManager(); m_eventMgr.setEventWriter(m_db); m_eventMgr.addEventListener(m_outageAnticipator); m_eventMgr.setSynchronous(true); InputStream rdr = new ByteArrayInputStream(m_passiveStatusConfiguration.getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); m_translator.setDataSource(m_db); m_translator.init(); m_translator.start(); }
@Test public void testTranslateLinkDownWithoutDefaults() throws SQLException, IOException { final InputStream rdr = new ByteArrayInputStream(getLinkDownTranslation().getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); // nodeId=1, ifIndex=2 will match in db final List<Event> translatedEvents1 = m_config.translateEvent(createLinkDownEvent(1,2)); assertNotNull(translatedEvents1); assertEquals(1, translatedEvents1.size()); assertEquals(3, translatedEvents1.get(0).getParmCollection().size()); assertEquals(".1.3.6.1.2.1.2.2.1.1.2", translatedEvents1.get(0).getParmCollection().get(0).getParmName()); assertEquals("ifName", translatedEvents1.get(0).getParmCollection().get(1).getParmName()); assertEquals("ifAlias", translatedEvents1.get(0).getParmCollection().get(2).getParmName()); assertEquals("david", translatedEvents1.get(0).getParmCollection().get(1).getValue().getContent()); assertEquals("p-brane", translatedEvents1.get(0).getParmCollection().get(2).getValue().getContent()); // nodeId=3, ifIndex=4 will not match in db, but no defaults set... final List<Event> translatedEvents2 = m_config.translateEvent(createLinkDownEvent(3,4)); assertNotNull(translatedEvents2); assertEquals(0, translatedEvents2.size()); }
@After public void tearDown() throws Exception { m_eventMgr.finishProcessingEvents(); m_translator.stop(); sleep(200); MockLogAppender.assertNoWarningsOrGreater(); m_db.drop(); }
@Test public void testTranslateLinkDownWithSomeDefaults() throws SQLException, IOException { final InputStream rdr = new ByteArrayInputStream(getLinkDownTranslation("foo", null).getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); // nodeId=1, ifIndex=2 will match in db final List<Event> translatedEvents1 = m_config.translateEvent(createLinkDownEvent(1,2)); assertNotNull(translatedEvents1); assertEquals(1, translatedEvents1.size()); assertEquals(3, translatedEvents1.get(0).getParmCollection().size()); assertEquals(".1.3.6.1.2.1.2.2.1.1.2", translatedEvents1.get(0).getParmCollection().get(0).getParmName()); assertEquals("ifName", translatedEvents1.get(0).getParmCollection().get(1).getParmName()); assertEquals("ifAlias", translatedEvents1.get(0).getParmCollection().get(2).getParmName()); assertEquals("david", translatedEvents1.get(0).getParmCollection().get(1).getValue().getContent()); assertEquals("p-brane", translatedEvents1.get(0).getParmCollection().get(2).getValue().getContent()); // nodeId=3, ifIndex=4 will not match in db, but only one default set... final List<Event> translatedEvents2 = m_config.translateEvent(createLinkDownEvent(3,4)); assertNotNull(translatedEvents2); assertEquals(0, translatedEvents2.size()); }
@Test public void testTranslateLinkDownWithDefaults() throws SQLException, IOException { final InputStream rdr = new ByteArrayInputStream(getLinkDownTranslation("foo", "bar").getBytes(StandardCharsets.UTF_8)); m_config = new EventTranslatorConfigFactory(rdr, m_db); EventTranslatorConfigFactory.setInstance(m_config); m_translator = EventTranslator.getInstance(); m_translator.setEventManager(m_eventMgr); m_translator.setConfig(EventTranslatorConfigFactory.getInstance()); // nodeId=1, ifIndex=2 will match in db final List<Event> translatedEvents1 = m_config.translateEvent(createLinkDownEvent(1,2)); assertNotNull(translatedEvents1); assertEquals(1, translatedEvents1.size()); assertEquals(3, translatedEvents1.get(0).getParmCollection().size()); assertEquals(".1.3.6.1.2.1.2.2.1.1.2", translatedEvents1.get(0).getParmCollection().get(0).getParmName()); assertEquals("ifName", translatedEvents1.get(0).getParmCollection().get(1).getParmName()); assertEquals("ifAlias", translatedEvents1.get(0).getParmCollection().get(2).getParmName()); assertEquals("david", translatedEvents1.get(0).getParmCollection().get(1).getValue().getContent()); assertEquals("p-brane", translatedEvents1.get(0).getParmCollection().get(2).getValue().getContent()); // nodeId=3, ifIndex=4 will not match in db final List<Event> translatedEvents2 = m_config.translateEvent(createLinkDownEvent(3,4)); assertNotNull(translatedEvents2); assertEquals(1, translatedEvents2.size()); assertEquals(3, translatedEvents2.get(0).getParmCollection().size()); assertEquals(".1.3.6.1.2.1.2.2.1.1.2", translatedEvents2.get(0).getParmCollection().get(0).getParmName()); assertEquals("ifName", translatedEvents2.get(0).getParmCollection().get(1).getParmName()); assertEquals("ifAlias", translatedEvents2.get(0).getParmCollection().get(2).getParmName()); assertEquals("foo", translatedEvents2.get(0).getParmCollection().get(1).getValue().getContent()); assertEquals("bar", translatedEvents2.get(0).getParmCollection().get(2).getValue().getContent()); }