Class: Nexpose::CompletedScan

Inherits:
Object
  • Object
show all
Defined in:
lib/nexpose/scan.rb

Overview

Summary object of a completed scan for a site.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ CompletedScan

Internal constructor to be called by #parse_json.



734
735
736
# File 'lib/nexpose/scan.rb', line 734

def initialize(&block)
  instance_eval(&block) if block_given?
end

Instance Attribute Details

#assetsObject (readonly)

Number of live assets discovered in the scan.



725
726
727
# File 'lib/nexpose/scan.rb', line 725

def assets
  @assets
end

#durationObject (readonly)

Elapsed time of the scan in milliseconds.



721
722
723
# File 'lib/nexpose/scan.rb', line 721

def duration
  @duration
end

#end_timeObject (readonly)

Completion time of the scan.



719
720
721
# File 'lib/nexpose/scan.rb', line 719

def end_time
  @end_time
end

#engine_nameObject (readonly)

Name of the engine where the scan was run. Not the unique ID.



731
732
733
# File 'lib/nexpose/scan.rb', line 731

def engine_name
  @engine_name
end

#idObject (readonly)

Unique identifier of a scan.



711
712
713
# File 'lib/nexpose/scan.rb', line 711

def id
  @id
end

#risk_scoreObject (readonly)

Cumulative risk score for all assets in the scan.



727
728
729
# File 'lib/nexpose/scan.rb', line 727

def risk_score
  @risk_score
end

#site_idObject (readonly)

Site ID for which the scan was run.



713
714
715
# File 'lib/nexpose/scan.rb', line 713

def site_id
  @site_id
end

#start_timeObject (readonly)

Start time of the scan.



717
718
719
# File 'lib/nexpose/scan.rb', line 717

def start_time
  @start_time
end

#statusObject (readonly)

Final status of the scan. One of :completed, :stopped, :aborted, :unknown.



715
716
717
# File 'lib/nexpose/scan.rb', line 715

def status
  @status
end

#typeObject (readonly)

Scan type. One of :scheduled or :manual



729
730
731
# File 'lib/nexpose/scan.rb', line 729

def type
  @type
end

#vulnsObject (readonly)

Number of vulnerabilities discovered in the scan.



723
724
725
# File 'lib/nexpose/scan.rb', line 723

def vulns
  @vulns
end

Class Method Details

._parse_status(code) ⇒ Object

Internal method to parsing status codes.



757
758
759
760
761
762
763
764
765
766
767
768
# File 'lib/nexpose/scan.rb', line 757

def self._parse_status(code)
  case code
  when 'C'
    :completed
  when 'S'
    :stopped
  when 'A'
    :aborted
  else
    :unknown
  end
end

.parse_json(json) ⇒ Object

Internal method for converting a JSON representation into a CompletedScan object.



740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
# File 'lib/nexpose/scan.rb', line 740

def self.parse_json(json)
  new do
    @id = json['scanID']
    @site_id = json['siteID']
    @status = CompletedScan._parse_status(json['status'])
    @start_time = Time.at(json['startTime'] / 1000)
    @end_time = Time.at(json['endTime'] / 1000)
    @duration = json['duration']
    @vulns = json['vulnerabilityCount']
    @assets = json['liveHosts']
    @risk_score = json['riskScore']
    @type = json['startedByCD'] == 'S' ? :scheduled : :manual
    @engine_name = json['scanEngineName']
  end
end