|
OpenNMS API 1.2.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opennms.netmgt.config.CollectdConfigFactory
This is the singleton class used to load the configuration for the OpenNMS Collection Daemon from the collectd-configuration xml file. A mapping of the configured URLs to the iplist they contain is built at init() time so as to avoid numerous file reads. Note: Users of this class should make sure the init() is called before calling any other method to ensure the config is loaded before accessing other convenience methods.
Field Summary | |
private CollectdConfiguration |
m_config
The config class loaded from the config file |
private static boolean |
m_loaded
This member is set to true if the configuration file has been loaded. |
private static java.lang.String |
m_localServer
Name of the local NMS server. |
private java.util.Map |
m_pkgIpMap
A mapping of the configured package to a list of IPs selected via filter rules, so as to avoid repetetive database access. |
private static CollectdConfigFactory |
m_singleton
The singleton instance of this factory |
private java.util.Map |
m_urlIPMap
A mapping of the configured URLs to a list of the specific IPs configured in each - so as to avoid file reads |
private static boolean |
m_verifyServer
A boolean flag to indicate If a filter rule against the local NMS server has to be used. |
private static java.lang.String |
SELECT_METHOD_MAX
|
private static java.lang.String |
SELECT_METHOD_MIN
|
Constructor Summary | |
private |
CollectdConfigFactory(java.lang.String configFile)
Private constructor |
Method Summary | |
java.net.InetAddress |
compareAndSelectPrimaryCollectionInterface(java.lang.String svcName,
java.net.InetAddress currentIf,
java.net.InetAddress oldPrimary,
java.lang.String method,
boolean strict)
Utility method which compares two InetAddress objects based on the provided method (MIN/MAX) and returns the InetAddress which is to be considered the primary interface. |
private void |
createPackageIpListMap()
This method is used to establish package agaist iplist mapping, with which, the iplist is selected per package via the configured filter rules from the database. |
private void |
createUrlIpMap()
Go through the configuration and build a mapping of each configured URL to a list of IPs configured in that URL - done at init() time so that repeated file reads can be avoided |
java.net.InetAddress |
determinePrimarySnmpInterface(java.util.List addressList,
boolean strict)
This method is responsbile for determining the node's primary SNMP interface from the specified list of InetAddress objects. |
CollectdConfiguration |
getConfiguration()
Return the collectd configuration object. |
static CollectdConfigFactory |
getInstance()
Return the singleton instance of this factory. |
Package |
getPackage(java.lang.String name)
|
private boolean |
hasExcludeRange(Package pkg,
long addr,
boolean has_specific)
|
private boolean |
hasIncludeRange(long addr,
java.util.Enumeration eincs)
|
private boolean |
hasSpecific(Package pkg,
long addr)
|
private boolean |
hasSpecificUrl(java.lang.String iface,
Package pkg,
boolean has_specific)
|
static void |
init()
Load the config from the default config file and create the singleton instance of this factory. |
private boolean |
interfaceInFilter(java.lang.String iface,
Package pkg,
org.apache.log4j.Category log)
|
boolean |
interfaceInPackage(java.lang.String iface,
Package pkg)
This method is used to determine if the named interface is included in the passed package definition. |
private boolean |
interfaceInUrl(java.lang.String addr,
java.lang.String url)
This method is used to determine if the named interface is included in the passed package's url includes. |
boolean |
lookupInterfaceServicePair(java.lang.String ipAddr,
java.lang.String svcName)
Returns true if the specified interface is included by at least one package which has the specified service and that service is enabled (set to "on"). |
void |
rebuildPackageIpListMap()
This method is used to rebuild the package agaist iplist mapping when needed. |
static void |
reload()
Reload the config from the default config file |
void |
saveCurrent()
Saves the current in-memory configuration to disk and reloads |
boolean |
serviceInPackageAndEnabled(java.lang.String svcName,
Package pkg)
Returns true if the service is part of the package and the status of the service is set to "on". |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static final java.lang.String SELECT_METHOD_MIN
private static final java.lang.String SELECT_METHOD_MAX
private static CollectdConfigFactory m_singleton
private static boolean m_loaded
private CollectdConfiguration m_config
private java.util.Map m_urlIPMap
private java.util.Map m_pkgIpMap
private static boolean m_verifyServer
private static java.lang.String m_localServer
Constructor Detail |
private CollectdConfigFactory(java.lang.String configFile) throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
java.io.IOException
- Thrown if the specified config file cannot be read
org.exolab.castor.xml.MarshalException
- Thrown if the file does not conform to the schema.
org.exolab.castor.xml.ValidationException
- Thrown if the contents do not match the required schema.Method Detail |
private void createUrlIpMap()
private void createPackageIpListMap()
public void rebuildPackageIpListMap()
public static void init() throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
java.io.IOException
- Thrown if the specified config file cannot be read
org.exolab.castor.xml.MarshalException
- Thrown if the file does not conform to the schema.
org.exolab.castor.xml.ValidationException
- Thrown if the contents do not match the required schema.public static void reload() throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
java.io.IOException
- Thrown if the specified config file cannot be read/loaded
org.exolab.castor.xml.MarshalException
- Thrown if the file does not conform to the schema.
org.exolab.castor.xml.ValidationException
- Thrown if the contents do not match the required schema.public void saveCurrent() throws org.exolab.castor.xml.MarshalException, java.io.IOException, org.exolab.castor.xml.ValidationException
org.exolab.castor.xml.MarshalException
java.io.IOException
org.exolab.castor.xml.ValidationException
public static CollectdConfigFactory getInstance()
java.lang.IllegalStateException
- Thrown if the factory has not yet been initialized.public CollectdConfiguration getConfiguration()
public Package getPackage(java.lang.String name)
private boolean interfaceInUrl(java.lang.String addr, java.lang.String url)
The file URL is read and each entry in this file checked. Each line in the URL file can be one of - <IP><space>#<comments> or <IP> or #<comments> Lines starting with a '#' are ignored and so are characters after a '<space>#' in a line.
addr
- The interface to test against the package's URLurl
- The url file to read
public boolean interfaceInPackage(java.lang.String iface, Package pkg)
iface
- The interface to test against the package.pkg
- The package to check for the inclusion of the interface.
public boolean serviceInPackageAndEnabled(java.lang.String svcName, Package pkg)
svcName
- The service name to lookup.pkg
- The package to lookup up service.public boolean lookupInterfaceServicePair(java.lang.String ipAddr, java.lang.String svcName)
ipAddr
- IP address of the interface to lookupsvcName
- The service name to lookup
public java.net.InetAddress determinePrimarySnmpInterface(java.util.List addressList, boolean strict)
addressList
- List of InetAddress objects representing all the interfaces
belonging to a particular node which support the "SNMP"
service and have a valid ifIndex.strict
- Boolean variable which requires an interface to be part of a
Collectd package to be eligible as a primary SNMP interface
public java.net.InetAddress compareAndSelectPrimaryCollectionInterface(java.lang.String svcName, java.net.InetAddress currentIf, java.net.InetAddress oldPrimary, java.lang.String method, boolean strict)
svcName
- Service namecurrentIf
- Interface with which to compare the 'oldPrimary' address.oldPrimary
- Primary interface to be compared against the 'currentIf'
address.method
- Comparison method to be used (either "min" or "max")strict
- require interface to be part of a Collectd package
private boolean hasExcludeRange(Package pkg, long addr, boolean has_specific)
private boolean hasSpecificUrl(java.lang.String iface, Package pkg, boolean has_specific)
private boolean hasSpecific(Package pkg, long addr)
private boolean hasIncludeRange(long addr, java.util.Enumeration eincs)
private boolean interfaceInFilter(java.lang.String iface, Package pkg, org.apache.log4j.Category log)
|
OpenNMS API 1.2.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |