Package tenapull.run

Class HostVulnsJob

java.lang.Object
All Implemented Interfaces:
java.lang.Comparable<DbManagerJob.Child>

public class HostVulnsJob
extends DbManagerJob.Child
Takes a given scanResponse and host from the scanResponse, and fetches the host vulnerability data from the Nessus API about that host. The resulting data is output as a .json file ready for Splunk ingestion, and the DB is updated to show that this is the most recent file generated for this host_id/scan_id combination
  • Nested Class Summary

    Nested classes/interfaces inherited from class tenapull.run.Job

    Job.Accessor, Job.Stage
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static java.lang.String OUTPUT_DIR
    The output directory, as obtained by Main from the config file specified in command-line arg[0]

    Fields inherited from class tenapull.run.Job

    DEFAULT_TRY_AGAIN_TIME
  • Constructor Summary

    Constructors 
    Constructor Description
    HostVulnsJob​(ScanResponse scanResponse, ScanHost host)
    Instantiates a new Host vulns job using the provided scanResponse and scan host.
  • Method Summary

    Modifier and Type Method Description
    int compareTo​(DbManagerJob.Child o)  
    protected boolean dbExceptionHandler​(java.lang.Exception e)
    This method is invoked if the dbTask throws an exception.
    protected boolean exceptionHandler​(java.lang.Exception e, Job.Stage stage)
    Handles any exceptions thrown by isReady, fetch, process, and output methods.
    protected void fetch​(NessusClient client)
    Fetch any API resources, using the NessusClient provided by the worker thread.
    protected boolean isReady()
    Is ready boolean.
    protected void output()
    Perform any outputting of the processed data The job will remain in the OUTPUT stage until fetch returns without an exception, or the job is marked as failed.
    protected void process()
    Perform any processing of the fetched data The job will remain in the PROCESS stage until fetch returns without an exception, or the job is marked as failed.

    Methods inherited from class tenapull.run.Job

    addJob, addJobs, equals, failed, getAccessor, getStage, start, tryAgainIn, waitForExit

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • OUTPUT_DIR

      public static final java.lang.String OUTPUT_DIR
      The output directory, as obtained by Main from the config file specified in command-line arg[0]
  • Constructor Details

    • HostVulnsJob

      public HostVulnsJob​(ScanResponse scanResponse, ScanHost host)
      Instantiates a new Host vulns job using the provided scanResponse and scan host.
      Parameters:
      scanResponse - the scan response which the host originates from
      host - the host to obtain the vulnerability data about
  • Method Details

    • isReady

      protected boolean isReady()
      Description copied from class: Job
      Is ready boolean. Indicates whether the job is ready to run yet. If false is returned, the job will be placed in the JobFactory's waitingJobs queue, with either the default wait time, or another wait time if a new one is set before returning false from isReady. The job will remain in the IDLE stage until isReady returns true, or the job is marked as failed. Failed jobs are not marked as DONE until after the method has returned
      Specified by:
      isReady in class Job
      Returns:
      the boolean
    • fetch

      protected void fetch​(NessusClient client) throws com.fasterxml.jackson.core.JsonProcessingException
      Description copied from class: Job
      Fetch any API resources, using the NessusClient provided by the worker thread. The job will remain in the FETCH stage until fetch returns without an exception, or the job is marked as failed. Failed jobs are not marked as DONE until after the method has returned
      Specified by:
      fetch in class Job
      Parameters:
      client - the nessus client provided by the worker thread which is running this job
      Throws:
      com.fasterxml.jackson.core.JsonProcessingException
    • process

      protected void process()
      Description copied from class: Job
      Perform any processing of the fetched data The job will remain in the PROCESS stage until fetch returns without an exception, or the job is marked as failed. Failed jobs are not marked as DONE until after the method has returned
      Specified by:
      process in class Job
    • output

      protected void output() throws java.io.FileNotFoundException, java.io.IOException
      Description copied from class: Job
      Perform any outputting of the processed data The job will remain in the OUTPUT stage until fetch returns without an exception, or the job is marked as failed. Failed jobs are not marked as DONE until after the method has returned
      Specified by:
      output in class Job
      Throws:
      java.io.FileNotFoundException
      java.io.IOException
    • exceptionHandler

      protected boolean exceptionHandler​(java.lang.Exception e, Job.Stage stage)
      Description copied from class: Job
      Handles any exceptions thrown by isReady, fetch, process, and output methods. Return true if the operation should be attempted again immediately. Mark as failed to permanently end the job. Otherwise, the job will be placed in the delayedJobs queue, and put back into readyJobs once its wait time is up
      Specified by:
      exceptionHandler in class Job
      Parameters:
      e - the e
      stage - the stage
      Returns:
      the boolean
    • dbExceptionHandler

      protected boolean dbExceptionHandler​(java.lang.Exception e)
      Description copied from class: DbManagerJob.Child
      This method is invoked if the dbTask throws an exception. Since the child job will likely have returned and be marked as done by the time the task is actually run, it is necessary to include this in addition to the run-time exceptionHandler method of the Job superclass. This method is specific to exceptions thrown during the dbTask
      Specified by:
      dbExceptionHandler in class DbManagerJob.Child
      Parameters:
      e - the e
      Returns:
      the boolean
    • compareTo

      public int compareTo​(DbManagerJob.Child o)