Class: Nexpose::CompletedScan

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

Overview

Summary object of a completed scan for a site.

Direct Known Subclasses

ActiveScan

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.



774
775
776
# File 'lib/nexpose/scan.rb', line 774

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

Instance Attribute Details

#assetsObject (readonly)

Number of live assets discovered in the scan.



765
766
767
# File 'lib/nexpose/scan.rb', line 765

def assets
  @assets
end

#durationObject (readonly)

Elapsed time of the scan in milliseconds.



761
762
763
# File 'lib/nexpose/scan.rb', line 761

def duration
  @duration
end

#end_timeObject (readonly)

Completion time of the scan.



759
760
761
# File 'lib/nexpose/scan.rb', line 759

def end_time
  @end_time
end

#engine_nameObject (readonly)

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



771
772
773
# File 'lib/nexpose/scan.rb', line 771

def engine_name
  @engine_name
end

#idObject (readonly)

Unique identifier of a scan.



751
752
753
# File 'lib/nexpose/scan.rb', line 751

def id
  @id
end

#risk_scoreObject (readonly)

Cumulative risk score for all assets in the scan.



767
768
769
# File 'lib/nexpose/scan.rb', line 767

def risk_score
  @risk_score
end

#site_idObject (readonly)

Site ID for which the scan was run.



753
754
755
# File 'lib/nexpose/scan.rb', line 753

def site_id
  @site_id
end

#start_timeObject (readonly)

Start time of the scan.



757
758
759
# File 'lib/nexpose/scan.rb', line 757

def start_time
  @start_time
end

#statusObject (readonly)

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



755
756
757
# File 'lib/nexpose/scan.rb', line 755

def status
  @status
end

#typeObject (readonly)

Scan type. One of :scheduled or :manual



769
770
771
# File 'lib/nexpose/scan.rb', line 769

def type
  @type
end

#vulnsObject (readonly)

Number of vulnerabilities discovered in the scan.



763
764
765
# File 'lib/nexpose/scan.rb', line 763

def vulns
  @vulns
end

Class Method Details

._parse_status(code) ⇒ Object

Internal method to parsing status codes.



797
798
799
800
801
802
803
804
805
806
807
808
# File 'lib/nexpose/scan.rb', line 797

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.



780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
# File 'lib/nexpose/scan.rb', line 780

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