private Event createTestEvent(String type, String nodeLabel, String ipAddr, String serviceName, String status) { final List<Parm> parms = new ArrayList<>(); if(nodeLabel != null) parms.add(buildParm(EventConstants.PARM_PASSIVE_NODE_LABEL, nodeLabel)); if(ipAddr != null) parms.add(buildParm(EventConstants.PARM_PASSIVE_IPADDR, ipAddr)); if(serviceName != null) parms.add(buildParm(EventConstants.PARM_PASSIVE_SERVICE_NAME, serviceName)); if(status != null) parms.add(buildParm(EventConstants.PARM_PASSIVE_SERVICE_STATUS, status)); return createEventWithParms("uei.opennms.org/services/"+type, parms); }
private String getLinkDownTranslation() { return getLinkDownTranslation(null, null); }
@Test public void testSubElementLong() throws Exception { m_passiveStatusConfiguration = getSqlSubValueLong(); tearDown(); setUp(); testTranslateEvent(); }
@Test public void testSubElementString() throws Exception { m_passiveStatusConfiguration = getSqlSubValueString(); tearDown(); setUp(); testTranslateEvent(); }
@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()); }
@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(); }
Event pse = createTestEvent("someOtherUei", "Router", "192.168.1.1", "ICMP", "Down"); assertTrue(m_config.translateEvent(pse).isEmpty()); Event te = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "This node is way Down!"); List<Event> translatedEvents = m_config.translateEvent(te); assertNotNull(translatedEvents); assertEquals(1, translatedEvents.size()); validateTranslatedEvent((Event)translatedEvents.get(0)); Event teWithNullParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); teWithNullParms.setParmCollection(null); assertTrue(m_config.translateEvent(teWithNullParms).isEmpty()); Event teWithNoParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); teWithNoParms.setParmCollection(new ArrayList<Parm>()); assertTrue(m_config.translateEvent(teWithNoParms).isEmpty()); Event teWithWrongParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); List<Parm> p = teWithWrongParms.getParmCollection(); p.get(2).setParmName("unmatching"); // change the name for the third parm so it fails to match Event te2 = createTestEvent("translationTest", "Router", "xxx192.168.1.1xxx", "ICMP", "Down"); assertNotNull(m_config.translateEvent(te2)); assertEquals(1, translatedEvents.size()); validateTranslatedEvent((Event)translatedEvents.get(0)); Event te3 = createTestEvent("translationTest", "Router", "xxx192.168.1.2", "ICMP", "Down"); assertTrue(m_config.translateEvent(te3).isEmpty());
@Test public void testIsTranslationEvent() throws Exception { Event pse = createTestEvent("someOtherUei", "Router", "192.168.1.1", "ICMP", "Down"); assertTrue(m_config.translateEvent(pse).isEmpty()); Event te = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); assertFalse(m_config.translateEvent(te).isEmpty()); Event teWithNullParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); teWithNullParms.setParmCollection(null); assertTrue(m_config.translateEvent(teWithNullParms).isEmpty()); Event teWithNoParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); teWithNoParms.setParmCollection(new ArrayList<Parm>()); assertTrue(m_config.translateEvent(teWithNoParms).isEmpty()); Event teWithWrongParms = createTestEvent("translationTest", "Router", "192.168.1.1", "ICMP", "Down"); List<Parm> p = teWithWrongParms.getParmCollection(); p.get(2).setParmName("unmatching"); // change the name for the third parm so it fails to match Event te2 = createTestEvent("translationTest", "Router", "xxx192.168.1.1xxx", "ICMP", "Down"); assertFalse(m_config.translateEvent(te2).isEmpty()); Event te3 = createTestEvent("translationTest", "Router", "xxx192.168.1.2", "ICMP", "Down"); assertTrue(m_config.translateEvent(te3).isEmpty());
@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()); }
@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()); }
@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()); }