org.opennms.netmgt.config
Class PollerConfigManager

java.lang.Object
  extended by org.opennms.netmgt.config.PollerConfigManager
All Implemented Interfaces:
PollerConfig
Direct Known Subclasses:
PollerConfigFactory

public abstract class PollerConfigManager
extends Object
implements PollerConfig

Abstract PollerConfigManager class.

Version:
$Id: $
Author:
Mathew Brozowski, David Hustace, Mathew Brozowski, David Hustace

Field Summary
protected  PollerConfiguration m_config
          The config class loaded from the config file
 
Constructor Summary
PollerConfigManager(InputStream stream, String localServer, boolean verifyServer)
          Constructor for PollerConfigManager.
PollerConfigManager(Reader reader, String localServer, boolean verifyServer)
          Constructor for PollerConfigManager.
 
Method Summary
 void addMonitor(String svcName, String className)
          addMonitor
 void addPackage(Package pkg)
          addPackage
 Enumeration<Monitor> enumerateMonitor()
          enumerateMonitor
 Enumeration<Package> enumeratePackage()
          enumeratePackage
 List<String> getAllPackageMatches(String ipaddr)
          getAllPackageMatches
 PollerConfiguration getConfiguration()
          Return the poller configuration object.
 String getCriticalService()
          This method returns the configured critical service name.
 Package getFirstLocalPackageMatch(String ipaddr)
          Returns the first package that the ip belongs to that is not marked as remote, null if none.
 Package getFirstPackageMatch(String ipaddr)
          Returns the first package that the ip belongs to, null if none.
 List<String> getIpList(Package pkg)
          Determine the list of IPs the filter rule for this package allows
 String getNextOutageIdSql()
          getNextOutageIdSql
 Package getPackage(String name)
          getPackage
 List<String> getRRAList(Package pkg)
          Retrieves configured list of RoundRobin Archive statements.
 Service getServiceInPackage(String svcName, Package pkg)
          Return the Service object with the given name from the give Package.
 ServiceMonitor getServiceMonitor(String svcName)
          getServiceMonitor
 Collection<ServiceMonitorLocator> getServiceMonitorLocators(DistributionContext context)
          getServiceMonitorLocators
 Map<String,ServiceMonitor> getServiceMonitors()
          getServiceMonitors
 ServiceSelector getServiceSelectorForPackage(Package pkg)
          getServiceSelectorForPackage
 int getStep(Package pkg)
          Retrieves configured RRD step size.
 int getThreads()
          getThreads
 boolean getXmlrpc()
          This method returns the boolean flag xmlrpc to indicate if notification to external xmlrpc server is needed.
 Iterable<String> includeURLs(Package pkg)
          includeURLs
 boolean interfaceInPackage(String iface, Package pkg)
          This method is used to determine if the named interface is included in the passed package definition.
 boolean isPolled(String ipaddr)
          Returns true if the ip is part of at least one package.
 boolean isPolled(String svcName, Package pkg)
          Returns true if this package has the service enabled and if there is a monitor for this service.
 boolean isPolled(String ipaddr, String svcName)
          Returns true if the ip is part of atleast one package and if this package has the service enabled and if there is a monitor for this service.
 boolean isPolledLocally(String ipaddr)
          Returns true if the ip is part of at least one package that is NOT marked as remote Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.
 boolean isPolledLocally(String ipaddr, String svcName)
          Returns true if the ip is part of at least one package and if this package has the service enabled and if there is a monitor for this service and the package is NOT marked as remote Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.
 Iterable<Monitor> monitors()
          monitors
 boolean nodeOutageProcessingEnabled()
          Returns true if node outage processing is enabled.
 Iterable<Package> packages()
          packages
 Iterable<Parameter> parameters(Service svc)
          parameters
 boolean pathOutageEnabled()
          This method returns the boolean flag pathOutageEnabled to indicate if path outage processing on nodeDown events is enabled
 boolean pollAllIfNoCriticalServiceDefined()
          This method returns the configured value of the 'pollAllIfNoCriticalServiceDefined' flag.
 void rebuildPackageIpListMap()
          This method is used to rebuild the package agaist iplist mapping when needed.
 void releaseAllServiceMonitors()
          releaseAllServiceMonitors
 void save()
          Saves the current in-memory configuration to disk and reloads
 void saveResponseTimeData(String locationMonitor, OnmsMonitoredService monSvc, double responseTime, Package pkg)
          saveResponseTimeData
protected abstract  void saveXml(String xml)
          saveXml
 boolean serviceInPackageAndEnabled(String svcName, Package pkg)
          Returns true if the service is part of the package and the status of the service is set to "on".
 boolean serviceMonitored(String svcName)
          Returns true if the service has a monitor configured, false otherwise.
 Iterable<Service> services(Package pkg)
          services
 boolean serviceUnresponsiveEnabled()
          Returns true if serviceUnresponsive behavior is enabled.
protected  void setConfig(PollerConfiguration conf)
          setConfig
protected  void setUpInternalData()
          setUpInternalData
protected  void unmarshalConfig(InputStream is)
          unmarshalConfig
abstract  void update()
          update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_config

protected PollerConfiguration m_config
The config class loaded from the config file

Constructor Detail

PollerConfigManager

public PollerConfigManager(Reader reader,
                           String localServer,
                           boolean verifyServer)
                    throws org.exolab.castor.xml.MarshalException,
                           org.exolab.castor.xml.ValidationException,
                           IOException

Constructor for PollerConfigManager.

Parameters:
reader - a Reader object.
localServer - a String object.
verifyServer - a boolean.
Throws:
org.exolab.castor.xml.MarshalException - if any.
org.exolab.castor.xml.ValidationException - if any.
IOException - if any.

PollerConfigManager

public PollerConfigManager(InputStream stream,
                           String localServer,
                           boolean verifyServer)
                    throws org.exolab.castor.xml.MarshalException,
                           org.exolab.castor.xml.ValidationException

Constructor for PollerConfigManager.

Parameters:
stream - a InputStream object.
localServer - a String object.
verifyServer - a boolean.
Throws:
org.exolab.castor.xml.MarshalException - if any.
org.exolab.castor.xml.ValidationException - if any.
Method Detail

setConfig

protected void setConfig(PollerConfiguration conf)

setConfig

Parameters:
conf - a PollerConfiguration object.

unmarshalConfig

protected void unmarshalConfig(InputStream is)
                        throws org.exolab.castor.xml.MarshalException,
                               org.exolab.castor.xml.ValidationException

unmarshalConfig

Parameters:
is - a InputStream object.
Throws:
org.exolab.castor.xml.MarshalException - if any.
org.exolab.castor.xml.ValidationException - if any.

setUpInternalData

protected void setUpInternalData()

setUpInternalData


update

public abstract void update()
                     throws IOException,
                            org.exolab.castor.xml.MarshalException,
                            org.exolab.castor.xml.ValidationException

update

Specified by:
update in interface PollerConfig
Throws:
IOException - if any.
org.exolab.castor.xml.MarshalException - if any.
org.exolab.castor.xml.ValidationException - if any.

saveXml

protected abstract void saveXml(String xml)
                         throws IOException

saveXml

Parameters:
xml - a String object.
Throws:
IOException - if any.

save

public void save()
          throws org.exolab.castor.xml.MarshalException,
                 IOException,
                 org.exolab.castor.xml.ValidationException
Saves the current in-memory configuration to disk and reloads

Specified by:
save in interface PollerConfig
Throws:
org.exolab.castor.xml.MarshalException - if any.
IOException - if any.
org.exolab.castor.xml.ValidationException - if any.

getConfiguration

public PollerConfiguration getConfiguration()
Return the poller configuration object.

Specified by:
getConfiguration in interface PollerConfig
Returns:
a PollerConfiguration object.

getPackage

public Package getPackage(String name)

getPackage

Specified by:
getPackage in interface PollerConfig
Parameters:
name - a String object.
Returns:
a Package object.

getServiceSelectorForPackage

public ServiceSelector getServiceSelectorForPackage(Package pkg)

getServiceSelectorForPackage

Specified by:
getServiceSelectorForPackage in interface PollerConfig
Parameters:
pkg - a Package object.
Returns:
a ServiceSelector object.

addPackage

public void addPackage(Package pkg)

addPackage

Specified by:
addPackage in interface PollerConfig
Parameters:
pkg - a Package object.

addMonitor

public void addMonitor(String svcName,
                       String className)

addMonitor

Specified by:
addMonitor in interface PollerConfig
Parameters:
svcName - a String object.
className - a String object.

getXmlrpc

public boolean getXmlrpc()
This method returns the boolean flag xmlrpc to indicate if notification to external xmlrpc server is needed.

Specified by:
getXmlrpc in interface PollerConfig
Returns:
true if need to notify an external xmlrpc server

pathOutageEnabled

public boolean pathOutageEnabled()
This method returns the boolean flag pathOutageEnabled to indicate if path outage processing on nodeDown events is enabled

Specified by:
pathOutageEnabled in interface PollerConfig
Returns:
true if pathOutageEnabled

getCriticalService

public String getCriticalService()
This method returns the configured critical service name.

Specified by:
getCriticalService in interface PollerConfig
Returns:
the name of the configured critical service, or null if none is present

pollAllIfNoCriticalServiceDefined

public boolean pollAllIfNoCriticalServiceDefined()
This method returns the configured value of the 'pollAllIfNoCriticalServiceDefined' flag. A value of true causes the poller's node outage code to poll all the services on an interface if a status change has occurred and there is no critical service defined on the interface. A value of false causes the poller's node outage code to not poll all the services on an interface in this situation.

Specified by:
pollAllIfNoCriticalServiceDefined in interface PollerConfig
Returns:
true or false based on configured value

nodeOutageProcessingEnabled

public boolean nodeOutageProcessingEnabled()
Returns true if node outage processing is enabled.

Specified by:
nodeOutageProcessingEnabled in interface PollerConfig
Returns:
a boolean.

serviceUnresponsiveEnabled

public boolean serviceUnresponsiveEnabled()
Returns true if serviceUnresponsive behavior is enabled. If enabled a serviceUnresponsive event is generated for TCP-based services if the service monitor is able to connect to the designated port but times out before receiving the expected response. If disabled, an outage will be generated in this scenario.

Specified by:
serviceUnresponsiveEnabled in interface PollerConfig
Returns:
a boolean.

getIpList

public List<String> getIpList(Package pkg)
Determine the list of IPs the filter rule for this package allows

Specified by:
getIpList in interface PollerConfig
Parameters:
pkg - a Package object.
Returns:
a List object.

rebuildPackageIpListMap

public void rebuildPackageIpListMap()
This method is used to rebuild the package agaist iplist mapping when needed. When a node gained service event occurs, poller has to determine which package the ip/service combination is in, but if the interface is a newly added one, the package iplist should be rebuilt so that poller could know which package this ip/service pair is in.

Specified by:
rebuildPackageIpListMap in interface PollerConfig

interfaceInPackage

public boolean interfaceInPackage(String iface,
                                  Package pkg)
This method is used to determine if the named interface is included in the passed package definition. If the interface belongs to the package then a value of true is returned. If the interface does not belong to the package a false value is returned. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database. This method is used to determine if the named interface is included in the passed package definition. If the interface belongs to the package then a value of true is returned. If the interface does not belong to the package a false value is returned. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.

Specified by:
interfaceInPackage in interface PollerConfig
Parameters:
iface - The interface to test against the package.
pkg - The package to check for the inclusion of the interface.
Returns:
True if the interface is included in the package, false otherwise.

serviceInPackageAndEnabled

public boolean serviceInPackageAndEnabled(String svcName,
                                          Package pkg)
Returns true if the service is part of the package and the status of the service is set to "on". Returns false if the service is not in the package or it is but the status of the service is set to "off". Returns true if the service is part of the package and the status of the service is set to "on". Returns false if the service is not in the package or it is but the status of the service is set to "off".

Specified by:
serviceInPackageAndEnabled in interface PollerConfig
Parameters:
svcName - The service name to lookup.
pkg - The package to lookup up service.
Returns:
a boolean.

getServiceInPackage

public Service getServiceInPackage(String svcName,
                                   Package pkg)
Return the Service object with the given name from the give Package. Return the Service object with the given name from the give Package.

Specified by:
getServiceInPackage in interface PollerConfig
Parameters:
svcName - the service name to lookup
pkg - the packe to lookup the the service in
Returns:
the Service object from the package with the give name, null if its not in the pkg

serviceMonitored

public boolean serviceMonitored(String svcName)
Returns true if the service has a monitor configured, false otherwise. Returns true if the service has a monitor configured, false otherwise.

Specified by:
serviceMonitored in interface PollerConfig
Parameters:
svcName - The service name to lookup.
Returns:
a boolean.

getFirstPackageMatch

public Package getFirstPackageMatch(String ipaddr)
Returns the first package that the ip belongs to, null if none. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database. Returns the first package that the ip belongs to, null if none. Note: Evaluation of the interface against a package filter will only work if the IP is alrady in the database.

Specified by:
getFirstPackageMatch in interface PollerConfig
Parameters:
ipaddr - the interface to check
Returns:
the first package that the ip belongs to, null if none

getFirstLocalPackageMatch

public Package getFirstLocalPackageMatch(String ipaddr)
Returns the first package that the ip belongs to that is not marked as remote, null if none. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.

Specified by:
getFirstLocalPackageMatch in interface PollerConfig
Parameters:
ipaddr - the interface to check
Returns:
the first package that the ip belongs to, null if none

getAllPackageMatches

public List<String> getAllPackageMatches(String ipaddr)

getAllPackageMatches

Returns a list of package names that the ip belongs to, null if none. Note: Evaluation of the interface against a package filter will only work if the IP is alrady in the database.

Specified by:
getAllPackageMatches in interface PollerConfig
Parameters:
ipaddr - a String object.
Returns:
a List object.

isPolled

public boolean isPolled(String ipaddr)
Returns true if the ip is part of at least one package. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database. Returns true if the ip is part of atleast one package. Note: Evaluation of the interface against a package filter will only work if the IP is alrady in the database.

Specified by:
isPolled in interface PollerConfig
Parameters:
ipaddr - the interface to check
Returns:
true if the ip is part of at least one package, false otherwise

isPolledLocally

public boolean isPolledLocally(String ipaddr)
Returns true if the ip is part of at least one package that is NOT marked as remote Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.

Specified by:
isPolledLocally in interface PollerConfig
Parameters:
ipaddr - the interface to check
Returns:
true if the ip is part of at least one package, false otherwise

isPolled

public boolean isPolled(String svcName,
                        Package pkg)
Returns true if this package has the service enabled and if there is a monitor for this service. Note: Evaluation of the interface against a package filter will only work if the IP is already in the database. Returns true if this package has the service enabled and if there is a monitor for this service. Note: Evaluation of the interface against a package filter will only work if the IP is alrady in the database.

Specified by:
isPolled in interface PollerConfig
Parameters:
svcName - the service to check
pkg - the package to check
Returns:
true if the ip is part of at least one package and the service is enabled in this package and monitored, false otherwise

isPolled

public boolean isPolled(String ipaddr,
                        String svcName)
Returns true if the ip is part of atleast one package and if this package has the service enabled and if there is a monitor for this service. Note: Evaluation of the interface against a package filter will only work if the IP is alrady in the database.

Specified by:
isPolled in interface PollerConfig
Parameters:
ipaddr - the interface to check
svcName - the service to check
Returns:
true if the ip is part of atleast one package and the service is enabled in this package and monitored, false otherwise

isPolledLocally

public boolean isPolledLocally(String ipaddr,
                               String svcName)
Returns true if the ip is part of at least one package and if this package has the service enabled and if there is a monitor for this service and the package is NOT marked as remote Note: Evaluation of the interface against a package filter will only work if the IP is already in the database.

Specified by:
isPolledLocally in interface PollerConfig
Parameters:
ipaddr - the interface to check
svcName - the service to check
Returns:
true if the ip is part of at least one package and the service is enabled in this package and monitored, false otherwise

getStep

public int getStep(Package pkg)
Retrieves configured RRD step size. Retrieves configured RRD step size.

Specified by:
getStep in interface PollerConfig
Parameters:
pkg - Name of the data collection
Returns:
RRD step size for the specified collection

getRRAList

public List<String> getRRAList(Package pkg)
Retrieves configured list of RoundRobin Archive statements. Retrieves configured list of RoundRobin Archive statements.

Specified by:
getRRAList in interface PollerConfig
Parameters:
pkg - Name of the data collection
Returns:
list of RRA strings.

enumeratePackage

public Enumeration<Package> enumeratePackage()

enumeratePackage

Specified by:
enumeratePackage in interface PollerConfig
Returns:
a Enumeration object.

enumerateMonitor

public Enumeration<Monitor> enumerateMonitor()

enumerateMonitor

Returns:
a Enumeration object.

services

public Iterable<Service> services(Package pkg)

services

Parameters:
pkg - a Package object.
Returns:
a Iterable object.

includeURLs

public Iterable<String> includeURLs(Package pkg)

includeURLs

Parameters:
pkg - a Package object.
Returns:
a Iterable object.

parameters

public Iterable<Parameter> parameters(Service svc)

parameters

Parameters:
svc - a Service object.
Returns:
a Iterable object.

packages

public Iterable<Package> packages()

packages

Returns:
a Iterable object.

monitors

public Iterable<Monitor> monitors()

monitors

Returns:
a Iterable object.

getThreads

public int getThreads()

getThreads

Specified by:
getThreads in interface PollerConfig
Returns:
a int.

getServiceMonitors

public Map<String,ServiceMonitor> getServiceMonitors()

getServiceMonitors

Specified by:
getServiceMonitors in interface PollerConfig
Returns:
a Map object.

getServiceMonitor

public ServiceMonitor getServiceMonitor(String svcName)

getServiceMonitor

Specified by:
getServiceMonitor in interface PollerConfig
Parameters:
svcName - a String object.
Returns:
a ServiceMonitor object.

getServiceMonitorLocators

public Collection<ServiceMonitorLocator> getServiceMonitorLocators(DistributionContext context)

getServiceMonitorLocators

Specified by:
getServiceMonitorLocators in interface PollerConfig
Parameters:
context - a DistributionContext object.
Returns:
a Collection object.

getNextOutageIdSql

public String getNextOutageIdSql()

getNextOutageIdSql

Specified by:
getNextOutageIdSql in interface PollerConfig
Returns:
a String object.

releaseAllServiceMonitors

public void releaseAllServiceMonitors()

releaseAllServiceMonitors

Specified by:
releaseAllServiceMonitors in interface PollerConfig

saveResponseTimeData

public void saveResponseTimeData(String locationMonitor,
                                 OnmsMonitoredService monSvc,
                                 double responseTime,
                                 Package pkg)

saveResponseTimeData

Specified by:
saveResponseTimeData in interface PollerConfig
Parameters:
locationMonitor - a String object.
monSvc - a OnmsMonitoredService object.
responseTime - a double.
pkg - a Package object.


Copyright © 2011. All Rights Reserved.