Search in sources :

Example 1 with Event

use of org.opennms.netmgt.xml.event.Event in project opennms by OpenNMS.

the class MockNetworkTest method testWaitForEvent.

public void testWaitForEvent() throws Throwable {
    MockNode node = m_network.getNode(1);
    final Event event1 = MockEventUtil.createNodeDownEvent("Test", node);
    final Event event2 = MockEventUtil.createNodeDownEvent("Test", node);
    final Event event3 = MockEventUtil.createNodeDownEvent("Test", m_network.getNode(2));
    EventAnticipator anticipator = m_eventMgr.getEventAnticipator();
    anticipator.anticipateEvent(event1);
    anticipator.anticipateEvent(event3);
    class EventSender extends Thread {

        Throwable m_t = null;

        public void assertSuccess() throws Throwable {
            if (m_t != null)
                throw m_t;
        }

        @Override
        public void run() {
            try {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                }
                m_eventMgr.sendNow(event2);
                m_eventMgr.sendNow(event2);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                }
                m_eventMgr.sendNow(event3);
            } catch (Throwable t) {
                m_t = t;
            }
        }
    }
    ;
    EventSender eventSender = new EventSender();
    eventSender.start();
    eventSender.assertSuccess();
    assertEquals(1, anticipator.waitForAnticipated(1500).size());
    assertEquals(0, anticipator.waitForAnticipated(1000).size());
    assertEquals(1, anticipator.getUnanticipatedEvents().size());
}
Also used : Event(org.opennms.netmgt.xml.event.Event) EventAnticipator(org.opennms.netmgt.dao.mock.EventAnticipator)

Example 2 with Event

use of org.opennms.netmgt.xml.event.Event in project opennms by OpenNMS.

the class MockNetworkTest method testEventListeners.

public void testEventListeners() {
    Event sentEvent = MockEventUtil.createEvent("Test", EventConstants.NODE_GAINED_SERVICE_EVENT_UEI, 1, "192.168.1.1", "NEW", null);
    Event sentEvent2 = MockEventUtil.createEvent("Test", EventConstants.NODE_REGAINED_SERVICE_EVENT_UEI, 1, "192.168.1.1", "NEW", null);
    class MockListener implements EventListener {

        private Event receivedEvent;

        @Override
        public String getName() {
            return "MockListener";
        }

        public Event getReceivedEvent() {
            return receivedEvent;
        }

        @Override
        public void onEvent(Event event) {
            System.err.println("onEvent: " + event.getUei());
            receivedEvent = event;
        }

        public void reset() {
            receivedEvent = null;
        }
    }
    ;
    MockListener listener = new MockListener();
    m_eventMgr.addEventListener(listener, EventConstants.NODE_GAINED_SERVICE_EVENT_UEI);
    m_eventMgr.sendEventToListeners(sentEvent);
    assertTrue(EventUtils.eventsMatch(sentEvent, listener.getReceivedEvent()));
    listener.reset();
    m_eventMgr.sendEventToListeners(sentEvent2);
    assertFalse(EventUtils.eventsMatch(sentEvent2, listener.getReceivedEvent()));
}
Also used : Event(org.opennms.netmgt.xml.event.Event) EventListener(org.opennms.netmgt.events.api.EventListener)

Example 3 with Event

use of org.opennms.netmgt.xml.event.Event in project opennms by OpenNMS.

the class TransactionAwareEventForwarderIT method testTwoTransactions.

@Test
public void testTwoTransactions() {
    m_transTemplate.execute(new TransactionCallbackWithoutResult() {

        @Override
        public void doInTransactionWithoutResult(TransactionStatus status) {
            Event event = sendEvent();
            getEventAnticipator().anticipateEvent(event);
        }
    });
    m_transTemplate.execute(new TransactionCallbackWithoutResult() {

        @Override
        public void doInTransactionWithoutResult(TransactionStatus status) {
            Event event = sendEvent();
            getEventAnticipator().anticipateEvent(event);
        }
    });
}
Also used : TransactionStatus(org.springframework.transaction.TransactionStatus) Event(org.opennms.netmgt.xml.event.Event) TransactionCallbackWithoutResult(org.springframework.transaction.support.TransactionCallbackWithoutResult) Test(org.junit.Test)

Example 4 with Event

use of org.opennms.netmgt.xml.event.Event in project opennms by OpenNMS.

the class TrapHandlerITCase method testV2EnterpriseIdAndGenericAndSpecificAndMatchWithVarbindsAndTC.

// FIXME: these exist to provide testing for the new Textual Convention feature
@Test
@DirtiesContext
public void testV2EnterpriseIdAndGenericAndSpecificAndMatchWithVarbindsAndTC() throws Exception {
    SnmpValueFactory valueFactory = SnmpUtils.getValueFactory();
    byte[] macAddr = new byte[] { (byte) 0x00, (byte) 0x14, (byte) 0xf1, (byte) 0xad, (byte) 0xa7, (byte) 0x50 };
    String encoded = new String(Base64.encodeBase64(macAddr));
    byte[] decodeBytes = Base64.decodeBase64(encoded.toCharArray());
    assertByteArrayEquals(macAddr, decodeBytes);
    LinkedHashMap<String, SnmpValue> varbinds = new LinkedHashMap<String, SnmpValue>();
    varbinds.put(".1.3.6.1.4.1.14179.2.6.2.20.0", valueFactory.getOctetString(macAddr));
    Collection<Event> events = anticipateAndSend(false, true, "uei.opennms.org/vendor/cisco/bsnAPNoiseProfileUpdatedToPass", "v2c", ".1.3.6.1.4.1.14179.2.6.3", 6, 38, varbinds);
    boolean foundMacAddress = false;
    // Assert that the MAC address varbind has been formatted into a colon-separated octet string
    for (Event event : events) {
        for (Parm parm : event.getParmCollection()) {
            if (".1.3.6.1.4.1.14179.2.6.2.20.0".equals(parm.getParmName())) {
                assertEquals("MAC address does not match", "00:14:F1:AD:A7:50", parm.getValue().getContent());
                foundMacAddress = true;
            }
        }
    }
    assertTrue("Did not find expected MAC address parm", foundMacAddress);
}
Also used : SnmpValueFactory(org.opennms.netmgt.snmp.SnmpValueFactory) SnmpValue(org.opennms.netmgt.snmp.SnmpValue) Event(org.opennms.netmgt.xml.event.Event) Parm(org.opennms.netmgt.xml.event.Parm) LinkedHashMap(java.util.LinkedHashMap) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 5 with Event

use of org.opennms.netmgt.xml.event.Event in project opennms by OpenNMS.

the class TrapHandlerITCase method testInterfaceDeletedModifiesIpMgr.

@Test
@DirtiesContext
public void testInterfaceDeletedModifiesIpMgr() throws Exception {
    // Put the default list of nodes in the database
    m_dbPopulator.populateDatabase();
    // Sync the managed interface cache
    m_cache.dataSourceSync();
    long nodeId = 0;
    // Send an interfaceDeleted to clear the entry out of the cache
    Event event = anticipateEvent(EventConstants.INTERFACE_DELETED_EVENT_UEI, m_ip, m_dbPopulator.getNode1().getId());
    m_eventMgr.sendNow(event);
    // Anticipate the trap and the newSuspect event
    anticipateEvent("uei.opennms.org/default/trap", m_ip, nodeId);
    anticipateEvent(EventConstants.NEW_SUSPECT_INTERFACE_EVENT_UEI, m_ip, nodeId);
    try {
        Thread.sleep(100);
    } catch (InterruptedException e) {
    // do nothing
    }
    sendTrap("v1", null, 6, 1);
    finishUp();
    m_dbPopulator.resetDatabase();
    m_cache.clear();
}
Also used : Event(org.opennms.netmgt.xml.event.Event) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Aggregations

Event (org.opennms.netmgt.xml.event.Event)280 Test (org.junit.Test)133 EventBuilder (org.opennms.netmgt.model.events.EventBuilder)84 Date (java.util.Date)32 MockNode (org.opennms.netmgt.mock.MockNode)21 OnmsNode (org.opennms.netmgt.model.OnmsNode)20 MockService (org.opennms.netmgt.mock.MockService)19 DirtiesContext (org.springframework.test.annotation.DirtiesContext)19 Parm (org.opennms.netmgt.xml.event.Parm)18 ArrayList (java.util.ArrayList)17 MockInterface (org.opennms.netmgt.mock.MockInterface)13 Log (org.opennms.netmgt.xml.event.Log)13 OnmsEvent (org.opennms.netmgt.model.OnmsEvent)12 EventListener (org.opennms.netmgt.events.api.EventListener)10 Events (org.opennms.netmgt.xml.event.Events)9 Threshold (org.opennms.netmgt.config.threshd.Threshold)8 OnmsIpInterface (org.opennms.netmgt.model.OnmsIpInterface)8 LinkedList (java.util.LinkedList)7 EventAnticipator (org.opennms.netmgt.dao.mock.EventAnticipator)7 MetricRegistry (com.codahale.metrics.MetricRegistry)6