diff --git a/opennms-config/src/main/castor/snmp-interface-poller-configuration.xsd b/opennms-config/src/main/castor/snmp-interface-poller-configuration.xsd index 6fae678..245d7c1 100644 --- a/opennms-config/src/main/castor/snmp-interface-poller-configuration.xsd +++ b/opennms-config/src/main/castor/snmp-interface-poller-configuration.xsd @@ -68,6 +68,21 @@ + + + + Flag which indicates if the filters defined on packages and interface + criterias must be used to select the SNMP interfaces to be tracked by the poller + instead of do this selection through requisition policies. + + + + + + + + + diff --git a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfig.java b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfig.java index 3b17feb..ee31a8a 100644 --- a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfig.java +++ b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfig.java @@ -56,6 +56,12 @@ public interface SnmpInterfacePollerConfig { */ public int getThreads(); /** + *

useCriteriaFilters

+ * + * @return a boolean. + */ + public boolean useCriteriaFilters(); + /** *

getService

* * @return a {@link java.lang.String} object. diff --git a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigFactory.java b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigFactory.java index 0e8ed00..57a883a 100644 --- a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigFactory.java +++ b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigFactory.java @@ -229,4 +229,5 @@ public final class SnmpInterfacePollerConfigFactory extends SnmpInterfacePollerC logStatic().debug("init: finished loading config file: " + cfgFile.getPath()); } } + } diff --git a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigManager.java b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigManager.java index 4dc67b3..666672d 100644 --- a/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigManager.java +++ b/opennms-services/src/main/java/org/opennms/netmgt/config/SnmpInterfacePollerConfigManager.java @@ -593,5 +593,14 @@ abstract public class SnmpInterfacePollerConfigManager implements SnmpInterfaceP public String getService() { return getConfiguration().getService(); } - + + /** + *

useCriteriaFilters

+ * + * @return a boolean. + */ + public boolean useCriteriaFilters() { + return Boolean.parseBoolean(getConfiguration().getUseCriteriaFilters()); + } + } diff --git a/opennms-services/src/main/java/org/opennms/netmgt/snmpinterfacepoller/SnmpPoller.java b/opennms-services/src/main/java/org/opennms/netmgt/snmpinterfacepoller/SnmpPoller.java index 5ca8db0..a26cd6e 100644 --- a/opennms-services/src/main/java/org/opennms/netmgt/snmpinterfacepoller/SnmpPoller.java +++ b/opennms-services/src/main/java/org/opennms/netmgt/snmpinterfacepoller/SnmpPoller.java @@ -250,7 +250,7 @@ public class SnmpPoller extends AbstractServiceDaemon { if (pkgName != null) { log().debug("Scheduling snmppolling for node: " + nodeid +" ip address: " + ipaddress + " - Found package interface with name: " + pkgName); scheduleSnmpCollection(getNetwork().create(nodeid,ipaddress,pkgName), pkgName); - } else { + } else if (!getPollerConfig().useCriteriaFilters()) { log().debug("No SNMP Poll Package found for node: " + nodeid +" ip address: " + ipaddress + ". - Scheduling according with default interval"); scheduleSnmpCollection(getNetwork().create(nodeid, ipaddress, "null"), "null"); } @@ -297,15 +297,15 @@ public class SnmpPoller extends AbstractServiceDaemon { log().debug("package interface status: Off"); } } - - log().debug("excluding criteria used for default polling: " + excludingCriteria); - PollableSnmpInterface node = nodeGroup.createPollableSnmpInterface("null", excludingCriteria, + if (!getPollerConfig().useCriteriaFilters()) { + log().debug("excluding criteria used for default polling: " + excludingCriteria); + PollableSnmpInterface node = nodeGroup.createPollableSnmpInterface("null", excludingCriteria, false, -1, false, -1, false, -1, false, -1); - node.setSnmpinterfaces(getNetwork().getContext().get(node.getParent().getNodeid(), excludingCriteria)); + node.setSnmpinterfaces(getNetwork().getContext().get(node.getParent().getNodeid(), excludingCriteria)); - getNetwork().schedule(node,getPollerConfig().getInterval(),getScheduler()); - + getNetwork().schedule(node,getPollerConfig().getInterval(),getScheduler()); + } } private void createScheduler() {