OpenNMS API 1.2.3

org.opennms.netmgt.vulnscand
Class Scheduler

java.lang.Object
  extended byorg.opennms.netmgt.vulnscand.Scheduler
All Implemented Interfaces:
Fiber, PausableFiber, java.lang.Runnable

final class Scheduler
extends java.lang.Object
implements java.lang.Runnable, PausableFiber

This class implements a simple scheduler to ensure that Vulnscand rescans occurs at the expected intervals.

Author:
Mike Davidson , OpenNMS

Field Summary
private static java.lang.String FIBER_NAME
          The prefix for the fiber name.
private  long m_initialSleep
          The configured initial sleep (in milliseconds) prior to scheduling rescans
private  long m_interval
          The configured interval (in milliseconds) between rescans
private  java.util.List m_knownAddresses
          List of NessusScanConfiguration objects representing the IP addresses that will be scheduled.
private  java.lang.String m_name
          The name of this fiber.
private  FifoQueue m_scheduledScanQ
          The rescan queue where new NessusScan objects are enqueued for execution.
private  int m_status
          The status for this fiber.
private  java.lang.Thread m_worker
          The worker thread that executes this instance.
private static java.lang.String SQL_DB_RETRIEVE_IP_INTERFACE
          The SQL statement used to retrieve all non-deleted/non-forced unamanaged IP interfaces from the 'ipInterface' table.
private static java.lang.String SQL_GET_LAST_POLL_TIME
          SQL used to retrieve the last poll time for all the managed interfaces belonging to a particular node.
 
Fields inherited from interface org.opennms.core.fiber.PausableFiber
PAUSE_PENDING, PAUSED, RESUME_PENDING
 
Fields inherited from interface org.opennms.core.fiber.Fiber
RUNNING, START_PENDING, STARTING, STATUS_NAMES, STOP_PENDING, STOPPED
 
Constructor Summary
(package private) Scheduler(FifoQueue rescanQ)
          Constructs a new instance of the scheduler.
 
Method Summary
(package private)  void addToKnownAddresses(java.net.InetAddress address, int scanLevel)
          Creates a NessusScanConfiguration object representing the specified node and adds it to the known node list for scheduling.
private  java.util.Set getAllManagedInterfaces()
           
 java.lang.String getName()
          Returns the name of this fiber.
 int getStatus()
          Returns the current of this fiber.
 void pause()
          Pauses the scheduler if it is current running.
 void resume()
          Resumes the scheduler if it has been paused.
 void run()
          The main method of the scheduler.
 void start()
          Starts the fiber.
 void stop()
          Stops the fiber.
(package private)  void unscheduleAddress(java.net.InetAddress address)
          Removes the specified node from the known node list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FIBER_NAME

private static final java.lang.String FIBER_NAME
The prefix for the fiber name.

See Also:
Constant Field Values

SQL_DB_RETRIEVE_IP_INTERFACE

private static final java.lang.String SQL_DB_RETRIEVE_IP_INTERFACE
The SQL statement used to retrieve all non-deleted/non-forced unamanaged IP interfaces from the 'ipInterface' table.

See Also:
Constant Field Values

SQL_GET_LAST_POLL_TIME

private static final java.lang.String SQL_GET_LAST_POLL_TIME
SQL used to retrieve the last poll time for all the managed interfaces belonging to a particular node.

See Also:
Constant Field Values

m_name

private java.lang.String m_name
The name of this fiber.


m_status

private int m_status
The status for this fiber.


m_worker

private java.lang.Thread m_worker
The worker thread that executes this instance.


m_knownAddresses

private java.util.List m_knownAddresses
List of NessusScanConfiguration objects representing the IP addresses that will be scheduled.


m_interval

private long m_interval
The configured interval (in milliseconds) between rescans


m_initialSleep

private long m_initialSleep
The configured initial sleep (in milliseconds) prior to scheduling rescans


m_scheduledScanQ

private FifoQueue m_scheduledScanQ
The rescan queue where new NessusScan objects are enqueued for execution.

Constructor Detail

Scheduler

Scheduler(FifoQueue rescanQ)
    throws java.sql.SQLException
Constructs a new instance of the scheduler.

Method Detail

getAllManagedInterfaces

private java.util.Set getAllManagedInterfaces()

addToKnownAddresses

void addToKnownAddresses(java.net.InetAddress address,
                         int scanLevel)
                   throws java.sql.SQLException
Creates a NessusScanConfiguration object representing the specified node and adds it to the known node list for scheduling.

Parameters:
address - the internet address.
scanLevel - the scan level.
Throws:
java.sql.SQLException - if there is any problem accessing the database

unscheduleAddress

void unscheduleAddress(java.net.InetAddress address)
Removes the specified node from the known node list.

Parameters:
address - Address of interface to be removed.

start

public void start()
Starts the fiber.

Specified by:
start in interface Fiber
Throws:
java.lang.IllegalStateException - Thrown if the fiber is already running.

stop

public void stop()
Stops the fiber. If the fiber has never been run then an exception is generated.

Specified by:
stop in interface Fiber
Throws:
java.lang.IllegalStateException - Throws if the fiber has never been started.

pause

public void pause()
Pauses the scheduler if it is current running. If the fiber has not been run or has already stopped then an exception is generated.

Specified by:
pause in interface PausableFiber
Throws:
java.lang.IllegalStateException - Throws if the operation could not be completed due to the fiber's state.

resume

public void resume()
Resumes the scheduler if it has been paused. If the fiber has not been run or has already stopped then an exception is generated.

Specified by:
resume in interface PausableFiber
Throws:
java.lang.IllegalStateException - Throws if the operation could not be completed due to the fiber's state.

getStatus

public int getStatus()
Returns the current of this fiber.

Specified by:
getStatus in interface Fiber
Returns:
The current status.

getName

public java.lang.String getName()
Returns the name of this fiber.

Specified by:
getName in interface Fiber
Returns:
The name of the Fiber.

run

public void run()
The main method of the scheduler. This method is responsible for checking the runnable queues for ready objects and then enqueuing them into the thread pool for execution.

Specified by:
run in interface java.lang.Runnable

OpenNMS API 1.2.3

Generated by eevans on May 29 2005 2015.