Search in sources :

Example 1 with ServiceSelector

use of org.opennms.netmgt.model.ServiceSelector in project opennms by OpenNMS.

the class DefaultCategoryStatusServiceTest method testGetCategoriesStatus.

public void testGetCategoriesStatus() {
    View view = new View();
    Section section = new Section();
    section.setSectionName("Section One");
    section.addCategory("Category One");
    OnmsOutage outage = new OnmsOutage();
    Collection<OnmsOutage> outages = new ArrayList<OnmsOutage>();
    outage.setId(300);
    OnmsServiceType svcType = new OnmsServiceType();
    svcType.setId(3);
    svcType.setName("HTTP");
    OnmsNode node = new OnmsNode();
    node.setId(1);
    node.setLabel("superLabel");
    OnmsSnmpInterface snmpIface = new OnmsSnmpInterface(node, 1);
    OnmsIpInterface iface = new OnmsIpInterface("192.168.1.1", node);
    iface.setSnmpInterface(snmpIface);
    //iface.setId(9);
    OnmsMonitoredService monSvc = new OnmsMonitoredService(iface, svcType);
    outage.setMonitoredService(monSvc);
    outages.add(outage);
    view.addSection(section);
    List<String> services = new ArrayList<String>();
    services.add("HTTP");
    //		ServiceSelector selector = new ServiceSelector("isHTTP",(List<String>) services);
    expect(viewDisplayDao.getView()).andReturn(view);
    expect(categoryDao.getCategoryByLabel("Category One")).andReturn(createCategoryFromLabel("Category One"));
    expect(outageDao.matchingCurrentOutages(isA(ServiceSelector.class))).andReturn(outages);
    replay(categoryDao);
    replay(viewDisplayDao);
    replay(outageDao);
    Collection<StatusSection> statusSections = categoryStatusService.getCategoriesStatus();
    verify(viewDisplayDao);
    verify(categoryDao);
    verify(outageDao);
    assertEquals("Wrong Number of StatusSections", view.getSections().size(), statusSections.size());
    for (StatusSection statusSection : statusSections) {
        assertEquals("StatusSection Name Does Not Match", "Section One", statusSection.getName());
        Collection<StatusCategory> statusCategorys = statusSection.getCategories();
        for (StatusCategory statusCategory : statusCategorys) {
            assertEquals("StatusCategoryName does not match", "Category One", statusCategory.getLabel());
            //assertEquals("Category Comment Does not match","Category One Comment",statusCategory.getComment());				
            assertTrue("Nodes >= 1", statusCategory.getNodes().size() >= 1);
            for (StatusNode statusNode : statusCategory.getNodes()) {
                assertEquals("Label does not match", "superLabel", statusNode.getLabel());
            }
        }
    }
}
Also used : OnmsOutage(org.opennms.netmgt.model.OnmsOutage) OnmsNode(org.opennms.netmgt.model.OnmsNode) StatusNode(org.opennms.web.svclayer.catstatus.model.StatusNode) ServiceSelector(org.opennms.netmgt.model.ServiceSelector) ArrayList(java.util.ArrayList) OnmsSnmpInterface(org.opennms.netmgt.model.OnmsSnmpInterface) StatusSection(org.opennms.web.svclayer.catstatus.model.StatusSection) View(org.opennms.netmgt.config.viewsdisplay.View) StatusSection(org.opennms.web.svclayer.catstatus.model.StatusSection) Section(org.opennms.netmgt.config.viewsdisplay.Section) OnmsMonitoredService(org.opennms.netmgt.model.OnmsMonitoredService) StatusCategory(org.opennms.web.svclayer.catstatus.model.StatusCategory) OnmsIpInterface(org.opennms.netmgt.model.OnmsIpInterface) OnmsServiceType(org.opennms.netmgt.model.OnmsServiceType)

Example 2 with ServiceSelector

use of org.opennms.netmgt.model.ServiceSelector in project opennms by OpenNMS.

the class PollerBackEndTest method setUp.

@Override
protected void setUp() throws Exception {
    System.setProperty("opennms.home", "src/test/test-configurations/PollerBackEndTest-home");
    m_monitoringLocationDao = m_mocks.createMock(MonitoringLocationDao.class);
    m_locMonDao = m_mocks.createMock(LocationMonitorDao.class);
    m_scanReportDao = m_mocks.createMock(ScanReportDao.class);
    m_monSvcDao = m_mocks.createMock(MonitoredServiceDao.class);
    m_pollerConfig = m_mocks.createMock(PollerConfig.class);
    m_timeKeeper = m_mocks.createMock(TimeKeeper.class);
    m_eventIpcManager = new MockEventIpcManager();
    m_backEnd = new DefaultPollerBackEnd();
    m_backEnd.setMonitoringLocationDao(m_monitoringLocationDao);
    m_backEnd.setLocationMonitorDao(m_locMonDao);
    m_backEnd.setScanReportDao(m_scanReportDao);
    m_backEnd.setMonitoredServiceDao(m_monSvcDao);
    m_backEnd.setPollerConfig(m_pollerConfig);
    m_backEnd.setTimeKeeper(m_timeKeeper);
    m_backEnd.setEventIpcManager(m_eventIpcManager);
    m_backEnd.setDisconnectedTimeout(DISCONNECTED_TIMEOUT);
    m_backEnd.setPersisterFactory(new MockPersisterFactory());
    m_startTime = new Date(System.currentTimeMillis() - 600000);
    expect(m_timeKeeper.getCurrentDate()).andReturn(m_startTime);
    replay(m_timeKeeper);
    m_backEnd.afterPropertiesSet();
    verify(m_timeKeeper);
    reset(m_timeKeeper);
    // set up some objects that can be used to mock up the tests
    // the location definition
    m_locationDefinition = new OnmsMonitoringLocation();
    m_locationDefinition.setMonitoringArea("Oakland");
    m_locationDefinition.setLocationName("OAK");
    m_locationDefinition.setPollingPackageNames(Collections.singletonList("OAKPackage"));
    m_package = createPackage("OAKPackage", "ipaddr = '192.168.1.1'");
    m_serviceSelector = new ServiceSelector(m_package.getFilter().getContent(), Arrays.asList(new String[] { "HTTP", "DNS" }));
    m_httpSvcConfig = addService(m_package, "HTTP", 1234, "url", "http://www.opennms.org");
    m_dnsSvcConfig = addService(m_package, "DNS", 5678, "hostname", "www.opennms.org");
    m_locationMonitor = new OnmsLocationMonitor();
    m_locationMonitor.setId(LOCATION_MONITOR_ID);
    m_locationMonitor.setLocation(m_locationDefinition.getLocationName());
    OnmsApplication application = new OnmsApplication();
    application.setName(APPLICATION_NAME);
    NetworkBuilder builder = new NetworkBuilder();
    builder.addNode("testNode").setId(1);
    builder.addInterface("192.168.1.1").setId(1);
    m_httpService = builder.addService(new OnmsServiceType("HTTP"));
    m_httpService.setId(1);
    m_httpService.setApplications(Collections.singleton(application));
    m_dnsService = builder.addService(new OnmsServiceType("DNS"));
    m_dnsService.setId(2);
    m_dnsService.setApplications(Collections.singleton(application));
    m_monServices = new OnmsMonitoredService[] { m_httpService, m_dnsService };
    long now = System.currentTimeMillis();
    PollStatus httpResult = PollStatus.available(1000.0);
    httpResult.setTimestamp(new Date(now - 300000));
    m_httpCurrentStatus = new OnmsLocationSpecificStatus(m_locationMonitor, m_httpService, httpResult);
    m_httpCurrentStatus.setId(1);
    PollStatus dnsResult = PollStatus.unavailable("Non responsive");
    dnsResult.setTimestamp(new Date(now - 300000));
    m_dnsCurrentStatus = new OnmsLocationSpecificStatus(m_locationMonitor, m_dnsService, dnsResult);
    m_dnsCurrentStatus.setId(2);
    m_pollerDetails = new HashMap<String, String>();
    m_pollerDetails.put("os.name", "WonkaOS");
    m_pollerDetails.put("os.version", "1.2.3");
}
Also used : PollStatus(org.opennms.netmgt.poller.PollStatus) TimeKeeper(org.opennms.netmgt.collection.api.TimeKeeper) MockEventIpcManager(org.opennms.netmgt.dao.mock.MockEventIpcManager) OnmsLocationSpecificStatus(org.opennms.netmgt.model.OnmsLocationSpecificStatus) ScanReportDao(org.opennms.netmgt.dao.api.ScanReportDao) MonitoredServiceDao(org.opennms.netmgt.dao.api.MonitoredServiceDao) PollerConfig(org.opennms.netmgt.config.PollerConfig) ServiceSelector(org.opennms.netmgt.model.ServiceSelector) MonitoringLocationDao(org.opennms.netmgt.dao.api.MonitoringLocationDao) OnmsApplication(org.opennms.netmgt.model.OnmsApplication) LocationMonitorDao(org.opennms.netmgt.dao.api.LocationMonitorDao) DefaultPollerBackEnd(org.opennms.netmgt.poller.remote.support.DefaultPollerBackEnd) Date(java.util.Date) NetworkBuilder(org.opennms.netmgt.model.NetworkBuilder) OnmsServiceType(org.opennms.netmgt.model.OnmsServiceType) MockPersisterFactory(org.opennms.netmgt.mock.MockPersisterFactory) OnmsLocationMonitor(org.opennms.netmgt.model.OnmsLocationMonitor) OnmsMonitoringLocation(org.opennms.netmgt.model.monitoringLocations.OnmsMonitoringLocation)

Example 3 with ServiceSelector

use of org.opennms.netmgt.model.ServiceSelector in project opennms by OpenNMS.

the class PollerConfigManager method getServiceSelectorForPackage.

/** {@inheritDoc} */
@Override
public ServiceSelector getServiceSelectorForPackage(final Package pkg) {
    try {
        getReadLock().lock();
        final List<String> svcNames = new LinkedList<String>();
        for (Service svc : services(pkg)) {
            svcNames.add(svc.getName());
        }
        final String filter = pkg.getFilter().getContent();
        return new ServiceSelector(filter, svcNames);
    } finally {
        getReadLock().unlock();
    }
}
Also used : ServiceSelector(org.opennms.netmgt.model.ServiceSelector) CriticalService(org.opennms.netmgt.config.poller.CriticalService) Service(org.opennms.netmgt.config.poller.Service) LinkedList(java.util.LinkedList)

Example 4 with ServiceSelector

use of org.opennms.netmgt.model.ServiceSelector in project opennms by OpenNMS.

the class DefaultCategoryStatusService method createCategory.

private StatusCategory createCategory(String category) {
    Collection<OnmsOutage> outages;
    CategoryBuilder categoryBuilder = new CategoryBuilder();
    StatusCategory statusCategory = new StatusCategory();
    Category categoryDetail = m_categoryConfigDao.getCategoryByLabel(category);
    //statusCategory.setComment(categoryDetail.getCategoryComment());	
    statusCategory.setLabel(category);
    ServiceSelector selector = new ServiceSelector(categoryDetail.getRule(), getServicesForCategory(categoryDetail));
    outages = m_outageDao.matchingCurrentOutages(selector);
    for (OnmsOutage outage : outages) {
        OnmsMonitoredService monitoredService = outage.getMonitoredService();
        OnmsServiceType serviceType = monitoredService.getServiceType();
        OnmsIpInterface ipInterface = monitoredService.getIpInterface();
        final String ipAddress = InetAddressUtils.str(ipInterface.getIpAddress());
        categoryBuilder.addOutageService(monitoredService.getNodeId(), ipAddress, ipAddress, ipInterface.getNode().getLabel(), serviceType.getName());
    }
    for (StatusNode node : categoryBuilder.getNodes()) {
        statusCategory.addNode(node);
    }
    return statusCategory;
}
Also used : OnmsOutage(org.opennms.netmgt.model.OnmsOutage) StatusCategory(org.opennms.web.svclayer.catstatus.model.StatusCategory) Category(org.opennms.netmgt.config.categories.Category) StatusCategory(org.opennms.web.svclayer.catstatus.model.StatusCategory) StatusNode(org.opennms.web.svclayer.catstatus.model.StatusNode) OnmsIpInterface(org.opennms.netmgt.model.OnmsIpInterface) ServiceSelector(org.opennms.netmgt.model.ServiceSelector) OnmsServiceType(org.opennms.netmgt.model.OnmsServiceType) OnmsMonitoredService(org.opennms.netmgt.model.OnmsMonitoredService)

Example 5 with ServiceSelector

use of org.opennms.netmgt.model.ServiceSelector in project opennms by OpenNMS.

the class DefaultPollerBackEnd method createPollerConfiguration.

private SimplePollerConfiguration createPollerConfiguration(String pollingPackageName) {
    final Package pkg = getPollingPackage(pollingPackageName);
    final ServiceSelector selector = m_pollerConfig.getServiceSelectorForPackage(pkg);
    final Collection<OnmsMonitoredService> services = m_monSvcDao.findMatchingServices(selector);
    final List<PolledService> configs = new ArrayList<PolledService>(services.size());
    LOG.debug("Found {} services in polling package {}", services.size(), pollingPackageName);
    for (final OnmsMonitoredService monSvc : services) {
        final Service serviceConfig = m_pollerConfig.getServiceInPackage(monSvc.getServiceName(), pkg);
        final long interval = serviceConfig.getInterval();
        final Map<String, Object> parameters = getParameterMap(serviceConfig);
        if (LOG.isTraceEnabled()) {
            for (Map.Entry<String, Object> entry : parameters.entrySet()) {
                LOG.trace("Service {} has parameter {} with type {} and value: {}", monSvc.getServiceName(), entry.getKey(), entry.getValue() != null ? entry.getValue().getClass().getCanonicalName() : "null", entry.getValue());
            }
        }
        configs.add(new PolledService(monSvc, parameters, new OnmsPollModel(interval)));
    }
    Collections.sort(configs);
    return new SimplePollerConfiguration(getConfigurationTimestamp(), configs.toArray(new PolledService[configs.size()]));
}
Also used : OnmsPollModel(org.opennms.netmgt.poller.remote.OnmsPollModel) ServiceSelector(org.opennms.netmgt.model.ServiceSelector) ArrayList(java.util.ArrayList) PolledService(org.opennms.netmgt.poller.remote.PolledService) OnmsMonitoredService(org.opennms.netmgt.model.OnmsMonitoredService) Service(org.opennms.netmgt.config.poller.Service) OnmsMonitoredService(org.opennms.netmgt.model.OnmsMonitoredService) PolledService(org.opennms.netmgt.poller.remote.PolledService) Package(org.opennms.netmgt.config.poller.Package) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap)

Aggregations

ServiceSelector (org.opennms.netmgt.model.ServiceSelector)7 ArrayList (java.util.ArrayList)3 OnmsMonitoredService (org.opennms.netmgt.model.OnmsMonitoredService)3 OnmsNode (org.opennms.netmgt.model.OnmsNode)3 OnmsServiceType (org.opennms.netmgt.model.OnmsServiceType)3 Collection (java.util.Collection)2 Test (org.junit.Test)2 JUnitTemporaryDatabase (org.opennms.core.test.db.annotations.JUnitTemporaryDatabase)2 Service (org.opennms.netmgt.config.poller.Service)2 OnmsIpInterface (org.opennms.netmgt.model.OnmsIpInterface)2 OnmsOutage (org.opennms.netmgt.model.OnmsOutage)2 StatusCategory (org.opennms.web.svclayer.catstatus.model.StatusCategory)2 StatusNode (org.opennms.web.svclayer.catstatus.model.StatusNode)2 TransactionStatus (org.springframework.transaction.TransactionStatus)2 TransactionCallbackWithoutResult (org.springframework.transaction.support.TransactionCallbackWithoutResult)2 Date (java.util.Date)1 HashMap (java.util.HashMap)1 LinkedList (java.util.LinkedList)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1