Class PollerConfigManager

    • Field Detail

      • m_config

        protected PollerConfiguration m_config
        The config class loaded from the config file
    • Constructor Detail

      • PollerConfigManager

        public PollerConfigManager​(java.io.InputStream stream)

        Constructor for PollerConfigManager.

        Parameters:
        stream - a InputStream object.
    • Method Detail

      • getReadLock

        public java.util.concurrent.locks.Lock getReadLock()
        Description copied from interface: PollerConfig

        getReadLock

        Specified by:
        getReadLock in interface PollerConfig
        Returns:
        a Lock
      • getWriteLock

        public java.util.concurrent.locks.Lock getWriteLock()
        Description copied from interface: PollerConfig

        getWriteLock

        Specified by:
        getWriteLock in interface PollerConfig
        Returns:
        a Lock
      • setUpInternalData

        protected void setUpInternalData()

        setUpInternalData

      • update

        public void update()
                    throws java.io.IOException

        update

        Specified by:
        update in interface PollerConfig
        Throws:
        java.io.IOException - if any.
      • saveXml

        protected abstract void saveXml​(java.lang.String xml)
                                 throws java.io.IOException

        saveXml

        Parameters:
        xml - a String object.
        Throws:
        java.io.IOException - if any.
      • save

        public void save()
                  throws java.io.IOException
        Saves the current in-memory configuration to disk and reloads
        Specified by:
        save in interface PollerConfig
        Throws:
        java.io.IOException - if any.
      • getPackage

        public Package getPackage​(java.lang.String name)

        getPackage

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

        public void addMonitor​(java.lang.String svcName,
                               java.lang.String className)

        addMonitor

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

        public boolean isPathOutageEnabled()
        This method returns the boolean flag pathOutageEnabled to indicate if path outage processing on nodeDown events is enabled
        Specified by:
        isPathOutageEnabled in interface PathOutageConfig
        Returns:
        true if pathOutageEnabled
      • getCriticalService

        public java.lang.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
      • shouldPollAllIfNoCriticalServiceDefined

        public boolean shouldPollAllIfNoCriticalServiceDefined()
        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:
        shouldPollAllIfNoCriticalServiceDefined in interface PollerConfig
        Returns:
        true or false based on configured value
      • isNodeOutageProcessingEnabled

        public boolean isNodeOutageProcessingEnabled()
        Returns true if node outage processing is enabled.
        Specified by:
        isNodeOutageProcessingEnabled in interface PollerConfig
        Returns:
        a boolean.
      • isServiceUnresponsiveEnabled

        public boolean isServiceUnresponsiveEnabled()
        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:
        isServiceUnresponsiveEnabled in interface PollerConfig
        Returns:
        a boolean.
      • getIpList

        public java.util.List<java.net.InetAddress> 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
      • isInterfaceInPackage

        public boolean isInterfaceInPackage​(java.lang.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:
        isInterfaceInPackage 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.
      • isServiceInPackageAndEnabled

        public boolean isServiceInPackageAndEnabled​(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". 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:
        isServiceInPackageAndEnabled in interface PollerConfig
        Parameters:
        svcName - The service name to lookup.
        pkg - The package to lookup up service.
        Returns:
        a boolean.
      • getServiceInPackage

        public Service getServiceInPackage​(java.lang.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
      • isServiceMonitored

        public boolean isServiceMonitored​(java.lang.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:
        isServiceMonitored in interface PollerConfig
        Parameters:
        svcName - The service name to lookup.
        Returns:
        a boolean.
      • getFirstLocalPackageMatch

        public Package getFirstLocalPackageMatch​(java.lang.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 java.util.List<java.lang.String> getAllPackageMatches​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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​(java.lang.String ipaddr,
                                java.lang.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​(java.lang.String ipaddr,
                                       java.lang.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 java.util.List<java.lang.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 java.util.Enumeration<Package> enumeratePackage()

        enumeratePackage

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

        public int getThreads()

        getThreads

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

        public java.util.Map<java.lang.String,​ServiceMonitor> getServiceMonitors()

        getServiceMonitors

        Returns:
        a Map object.
      • getNextOutageIdSql

        public java.lang.String getNextOutageIdSql()

        getNextOutageIdSql

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