/** {@inheritDoc} */ @Override public PollEvent sendEvent(Event event) { if (!m_listenerAdded) { getEventManager().addEventListener(this, Arrays.asList(UEIS)); m_listenerAdded = true; } PendingPollEvent pollEvent = new PendingPollEvent(event); m_pendingPollEvents.add(pollEvent); //log().info("Sending "+event.getUei()+" for element "+event.getNodeid()+":"+event.getInterface()+":"+event.getService(), new Exception("StackTrace")); getEventManager().sendNow(event); return pollEvent; }
/** * <p>isServiceUnresponsiveEnabled</p> * * @return a boolean. */ @Override public boolean isServiceUnresponsiveEnabled() { return getPollerConfig().isServiceUnresponsiveEnabled(); }
private String getNodeLabel(int nodeId) { String nodeLabel = null; try { nodeLabel = getQueryManager().getNodeLabel(nodeId); } catch (SQLException sqlE) { // Log a warning LOG.warn("Failed to retrieve node label for nodeid {}", nodeId, sqlE); } if (nodeLabel == null) { // This should never happen but if it does just // use nodeId for the nodeLabel so that the // event description has something to display. nodeLabel = String.valueOf(nodeId); } return nodeLabel; }
Assert.assertEquals("HTTP", svc.getName()); DefaultPollContext pollContext = new DefaultPollContext(); pollContext.setEventManager(m_eventMgr); pollContext.setLocalHostName("localhost"); pollContext.setName("Test.DefaultPollContext"); pollContext.setPollerConfig(factory); pollContext.setQueryManager(m_queryManager); pollContext.setLocationAwarePingClient(m_locationAwarePingClient);
/** {@inheritDoc} */ @Override public void openOutage(final PollableService svc, final PollEvent svcLostEvent) { // Open the outage immediately final Integer outageId = getQueryManager().openOutagePendingLostEventId(svc.getNodeId(), svc.getIpAddr(), svc.getSvcName(), svcLostEvent.getDate()); // Defer updating the outage with the event id until we receive back // from the event bus final Runnable r = new Runnable() { @Override public void run() { final int eventId = svcLostEvent.getEventId(); if (eventId > 0) { getQueryManager().updateOpenOutageWithEventId(outageId, eventId); } else { LOG.warn("run: Failed to determine an eventId for service lost for: {} with event: {}", svc, svcLostEvent); } } }; if (svcLostEvent instanceof PendingPollEvent) { ((PendingPollEvent)svcLostEvent).addPending(r); } else { r.run(); } LOG.debug("openOutage: sending outageCreated event for: {} on {}", svc.getSvcName(), svc.getIpAddr()); sendEvent(createEvent(EventConstants.OUTAGE_CREATED_EVENT_UEI, svc.getNodeId(), svc.getAddress(), svc.getSvcName(), svcLostEvent.getDate(), null)); }
LOG.debug("createEvent: uei = {} nodeid = {}", uei, nodeId); EventBuilder bldr = new EventBuilder(uei, this.getName(), date); bldr.setNodeid(nodeId); if (address != null) { bldr.setService(svcName); bldr.setHost(this.getLocalHostName()); && this.getPollerConfig().isPathOutageEnabled()) { final CriticalPath criticalPath = PathOutageManagerDaoImpl.getInstance().getCriticalPath(nodeId); if (criticalPath != null && criticalPath.getIpAddress() != null) { if (!testCriticalPath(criticalPath)) { LOG.debug("Critical path test failed for node {}", nodeId); bldr.addParam(EventConstants.PARM_LOSTSERVICE_REASON, EventConstants.PARM_VALUE_PATHOUTAGE); || uei.equals(EventConstants.NODE_DOWN_EVENT_UEI)) { String nodeLabel = this.getNodeLabel(nodeId); bldr.addParam(EventConstants.PARM_NODE_LABEL, nodeLabel);
m_pollerConfig.addService(m_network.getService(2, "192.168.1.3", "HTTP")); DefaultPollContext pollContext = new DefaultPollContext(); pollContext.setLocalHostName("localhost"); pollContext.setName("Test.DefaultPollContext"); pollContext.setPollerConfig(m_pollerConfig); pollContext.setQueryManager(m_queryManager);
Event downEvent = m_mSvc.createDownEvent(); m_outageAnticipator.anticipateOutageOpened(m_mSvc, downEvent); PollEvent pollDownEvent = m_pollContext.sendEvent(downEvent); m_pollContext.openOutage(m_pSvc, pollDownEvent); Event upEvent = m_mSvc.createUpEvent(); m_outageAnticipator.anticipateOutageClosed(m_mSvc, upEvent); PollEvent pollUpEvent = m_pollContext.sendEvent(upEvent); m_pollContext.resolveOutage(m_pSvc, pollUpEvent); PollEvent pollDownEvent2 = m_pollContext.sendEvent(downEvent2); m_pollContext.openOutage(m_pSvc, pollDownEvent2); Event upEvent2 = m_mSvc.createUpEvent(); m_outageAnticipator.anticipateOutageClosed(m_mSvc, upEvent2); PollEvent pollUpEvent2 = m_pollContext.sendEvent(upEvent2); m_pollContext.resolveOutage(m_pSvc, pollUpEvent2);
@Test public void testCreateEvent() throws Exception { Date date = new Date(1222222222000L); Event nodeEvent = m_pollContext.createEvent(EventConstants.NODE_DOWN_EVENT_UEI, 1, null, null, date, String.valueOf(PollStatus.SERVICE_UNAVAILABLE)); assertEquals(EventConstants.NODE_DOWN_EVENT_UEI, nodeEvent.getUei()); assertEquals(Long.valueOf(1), nodeEvent.getNodeid()); assertNull(nodeEvent.getInterface()); assertNull(nodeEvent.getService()); assertEquals("Unexpected time for event", date, nodeEvent.getTime()); Event ifEvent = m_pollContext.createEvent(EventConstants.INTERFACE_UP_EVENT_UEI, 1, InetAddressUtils.addr("192.168.1.1"), null, date, null); assertEquals(EventConstants.INTERFACE_UP_EVENT_UEI, ifEvent.getUei()); assertEquals(Long.valueOf(1), ifEvent.getNodeid()); assertEquals("192.168.1.1", ifEvent.getInterface()); assertNull(ifEvent.getService()); assertEquals("Unexpected time for event", date, ifEvent.getTime()); Event svcEvent = m_pollContext.createEvent(EventConstants.NODE_GAINED_SERVICE_EVENT_UEI, 1, InetAddressUtils.addr("192.168.1.1"), "ICMP", date, null); assertEquals(EventConstants.NODE_GAINED_SERVICE_EVENT_UEI, svcEvent.getUei()); assertEquals(Long.valueOf(1), svcEvent.getNodeid()); assertEquals("192.168.1.1", svcEvent.getInterface()); assertEquals("ICMP", svcEvent.getService()); assertEquals("Unexpected time for event", date, svcEvent.getTime()); }
@Test public void testSendEvent() { m_eventMgr.getEventAnticipator().anticipateEvent(m_mSvc.createDownEvent()); PollEvent e = m_pollContext.sendEvent(m_mSvc.createDownEvent()); m_eventMgr.finishProcessingEvents(); assertNotNull(e); assertTrue("Invalid Event Id", e.getEventId() > 0); assertEquals(0, m_eventMgr.getEventAnticipator().waitForAnticipated(0).size()); assertEquals(0, m_eventMgr.getEventAnticipator().getUnanticipatedEvents().size()); }
@Test public void testGetCriticalServiceName() { assertEquals("ICMP", m_pollContext.getCriticalServiceName()); m_pollerConfig.setCriticalService("HTTP"); assertEquals("HTTP", m_pollContext.getCriticalServiceName()); }
m_pollContext = new DefaultPollContext(); m_pollContext.setEventManager(m_eventMgr); m_pollContext.setLocalHostName("localhost"); m_pollContext.setName("PollContextTest.DefaultPollContext"); m_pollContext.setPollerConfig(m_pollerConfig); m_pollContext.setQueryManager(m_queryManager); m_pollContext.setLocationAwarePingClient(m_locationAwarePingClient);
public void resolveOutage(final PollableService svc, final PollEvent svcRegainEvent) { final Integer outageId = getQueryManager().resolveOutagePendingRegainEventId(svc.getNodeId(), svc.getIpAddr(), svc.getSvcName(), svcRegainEvent.getDate()); sendEvent(createEvent(EventConstants.OUTAGE_RESOLVED_EVENT_UEI, svc.getNodeId(), svc.getAddress(), svc.getSvcName(), svcRegainEvent.getDate(), null));
@Test public void testPathOutages() throws Exception { Assert.assertNotNull(m_nodeDao); Assert.assertNotNull(m_pathOutageDao); Assert.assertNotNull(m_pathOutageManager); OnmsNode node = m_nodeDao.get(1); Assert.assertNotNull(node); OnmsPathOutage pathOutage = new OnmsPathOutage(node, InetAddressUtils.addr("169.254.0.1"), "ICMP"); m_pathOutageDao.save(pathOutage); m_pathOutageDao.flush(); m_pollerConfig.setPathOutageEnabled(true); CriticalPath path = m_pathOutageManager.getCriticalPath(1); Assert.assertEquals(InetAddrUtils.addr("169.254.0.1"), path.getIpAddress()); Event nodeEvent = m_pollContext.createEvent(EventConstants.NODE_DOWN_EVENT_UEI, 1, null, null, new Date(), String.valueOf(PollStatus.SERVICE_UNAVAILABLE)); Assert.assertNotNull(nodeEvent); Assert.assertEquals("169.254.0.1", nodeEvent.getParm(EventConstants.PARM_CRITICAL_PATH_IP).getValue().getContent()); Assert.assertEquals(EventConstants.PARM_VALUE_PATHOUTAGE, nodeEvent.getParm(EventConstants.PARM_LOSTSERVICE_REASON).getValue().getContent()); } }
DefaultPollContext pollContext = new DefaultPollContext(); pollContext.setEventManager(m_eventMgr); pollContext.setLocalHostName("localhost"); pollContext.setName("Test.DefaultPollContext"); pollContext.setPollerConfig(m_pollerConfig); pollContext.setQueryManager(m_queryManager); pollContext.setLocationAwarePingClient(m_locationAwarePingClient);
/** * <p>isPollingAllIfCritServiceUndefined</p> * * @return a boolean. */ @Override public boolean isPollingAllIfCritServiceUndefined() { return getPollerConfig().shouldPollAllIfNoCriticalServiceDefined(); }
@Override public void run() { final int eventId = svcLostEvent.getEventId(); if (eventId > 0) { getQueryManager().updateOpenOutageWithEventId(outageId, eventId); } else { LOG.warn("run: Failed to determine an eventId for service lost for: {} with event: {}", svc, svcLostEvent); } } };
DefaultPollContext pollContext = new DefaultPollContext(); pollContext.setEventManager(m_eventMgr); pollContext.setLocalHostName("localhost"); pollContext.setName("Test.DefaultPollContext"); pollContext.setPollerConfig(m_pollerConfig); pollContext.setQueryManager(m_queryManager); pollContext.setLocationAwarePingClient(m_locationAwarePingClient);
/** * <p>isNodeProcessingEnabled</p> * * @return a boolean. */ @Override public boolean isNodeProcessingEnabled() { return getPollerConfig().isNodeOutageProcessingEnabled(); }
@Override public void run() { final int eventId = svcRegainEvent.getEventId(); if (eventId > 0) { getQueryManager().updateResolvedOutageWithEventId(outageId, eventId); } else { LOG.warn("run: Failed to determine an eventId for service regained for: {} with event: {}", svc, svcRegainEvent); } } };