@Test public void testNodeGainedServiceWhileNodeDownAndServiceUp() { startDaemons(); MockNode node = m_network.getNode(4); MockService svc = m_network.getService(4, "192.168.1.6", "SNMP"); anticipateDown(node); node.bringDown(); verifyAnticipated(5000); resetAnticipated(); anticipateUp(node); anticipateDown(svc, true); MockService newSvc = m_network.addService(4, "192.168.1.6", "SMTP"); m_db.writeService(newSvc); Event e = MockEventUtil.createNodeGainedServiceEvent("Test", newSvc); m_eventMgr.sendEventToListeners(e); sleep(5000); System.err.println(m_db.getOutages()); verifyAnticipated(8000); }
// nodeLabelChanged: EventConstants.NODE_LABEL_CHANGED_EVENT_UEI @Test public void testNodeLabelChanged() { MockNode element = m_network.getNode(1); String newLabel = "NEW LABEL"; Event event = element.createNodeLabelChangedEvent(newLabel); m_pollerConfig.setNodeOutageProcessingEnabled(false); PollAnticipator poll = new PollAnticipator(); element.addAnticipator(poll); poll.anticipateAllServices(element); startDaemons(); // wait until after the first poll of the services poll.waitForAnticipated(1000L); assertEquals("Router", m_poller.getNetwork().getNode(1).getNodeLabel()); // now delete the node and send a nodeDeleted event element.setLabel(newLabel); m_eventMgr.sendEventToListeners(event); assertEquals(newLabel, m_poller.getNetwork().getNode(1).getNodeLabel()); }
// Test harness that tests any type of node, interface or element. private void testElementDeleted(MockElement element) { Event deleteEvent = element.createDeleteEvent(); m_pollerConfig.setNodeOutageProcessingEnabled(false); PollAnticipator poll = new PollAnticipator(); element.addAnticipator(poll); poll.anticipateAllServices(element); startDaemons(); // wait til after the first poll of the services poll.waitForAnticipated(1000L); // now delete the node and send a nodeDeleted event m_network.removeElement(element); m_eventMgr.sendEventToListeners(deleteEvent); // reset the poll count and wait to see if any polls on the removed // element happened m_network.resetInvalidPollCount(); // now ensure that no invalid polls have occurred sleep(3000); assertEquals( "Received a poll for an element that doesn't exist", 0, m_network.getInvalidPollCount()); }
@Test public void testSuspendPollingResumeService() { MockService svc = m_network.getService(1, "192.168.1.2", "SMTP"); startDaemons(); sleep(2000); assertTrue(0 < svc.getPollCount()); m_eventMgr.sendEventToListeners(MockEventUtil.createSuspendPollingServiceEvent("Test", svc)); svc.resetPollCount(); sleep(5000); assertEquals(0, svc.getPollCount()); m_eventMgr.sendEventToListeners(MockEventUtil.createResumePollingServiceEvent("Test", svc)); sleep(2000); assertTrue(0 < svc.getPollCount()); }
// test open outages for unmanaged services @Test public void testReparentCausesStatusChange() { m_pollerConfig.setNodeOutageProcessingEnabled(true); MockNode node1 = m_network.getNode(1); MockNode node2 = m_network.getNode(2); MockInterface dotOne = m_network.getInterface(1, "192.168.1.1"); MockInterface dotTwo = m_network.getInterface(1, "192.168.1.2"); MockInterface dotThree = m_network.getInterface(2, "192.168.1.3"); // // Plan to bring down both nodes except the reparented interface // the node owning the interface should be up while the other is down // after reparenting we should got the old owner go down while the other // comes up. // anticipateDown(node2); anticipateDown(dotOne); // bring down both nodes but bring iface back up node1.bringDown(); node2.bringDown(); dotTwo.bringUp(); Event reparentEvent = MockEventUtil.createReparentEvent("Test", "192.168.1.2", 1, 2); startDaemons(); verifyAnticipated(2000); m_db.reparentInterface(dotTwo.getIpAddr(), dotTwo.getNodeId(), node2.getNodeId()); dotTwo.moveTo(node2); resetAnticipated(); anticipateDown(node1, true); anticipateUp(node2, true); anticipateDown(dotThree, true); m_eventMgr.sendEventToListeners(reparentEvent); verifyAnticipated(20000); }
public void testOutagesClosedOnDelete(MockElement element) { startDaemons(); Event deleteEvent = element.createDeleteEvent(); // bring down so we create an outage in the outages table anticipateDown(element); element.bringDown(); verifyAnticipated(5000, false); m_outageAnticipator.anticipateOutageClosed(element, deleteEvent); // now delete the service m_eventMgr.sendEventToListeners(deleteEvent); m_network.removeElement(element); verifyAnticipated(5000); }
// interfaceReparented: EventConstants.INTERFACE_REPARENTED_EVENT_UEI @Test public void testInterfaceReparented() throws Exception { m_assertLevel = null; m_pollerConfig.setNodeOutageProcessingEnabled(true); MockNode node1 = m_network.getNode(1); MockNode node2 = m_network.getNode(2); assertNotNull("Node 1 should have 192.168.1.1", node1.getInterface("192.168.1.1")); assertNotNull("Node 1 should have 192.168.1.2", node1.getInterface("192.168.1.2")); assertNull("Node 2 should not yet have 192.168.1.2", node2.getInterface("192.168.1.2")); assertNotNull("Node 2 should have 192.168.1.3", node2.getInterface("192.168.1.3")); MockInterface dotTwo = m_network.getInterface(1, "192.168.1.2"); MockInterface dotThree = m_network.getInterface(2, "192.168.1.3"); Event reparentEvent = MockEventUtil.createReparentEvent("Test", "192.168.1.2", 1, 2); // we are going to reparent to node 2 so when we bring down its only // current interface we expect an interface down not the whole node. anticipateDown(dotThree); startDaemons(); final int waitTime = 2000; final int verifyTime = 2000; sleep(waitTime); // move the reparented interface and send a reparented event dotTwo.moveTo(node2); m_db.reparentInterface(dotTwo.getIpAddr(), node1.getNodeId(), node2.getNodeId()); // send the reparent event to the daemons m_eventMgr.sendEventToListeners(reparentEvent); sleep(waitTime); // now bring down the other interface on the new node // System.err.println("Bring Down:"+node2Iface); dotThree.bringDown(); verifyAnticipated(verifyTime); resetAnticipated(); anticipateDown(node2); // System.err.println("Bring Down:"+reparentedIface); dotTwo.bringDown(); sleep(waitTime); verifyAnticipated(verifyTime); node1 = m_network.getNode(1); node2 = m_network.getNode(2); assertNotNull("Node 1 should still have 192.168.1.1", node1.getInterface("192.168.1.1")); assertNull("Node 1 should no longer have 192.168.1.2", node1.getInterface("192.168.1.2")); assertNotNull("Node 2 should now have 192.168.1.2", node2.getInterface("192.168.1.2")); assertNotNull("Node 2 should still have 192.168.1.3", node2.getInterface("192.168.1.3")); }