class Nexpose::ScanSummary
Object that represents a summary of a scan.
Attributes
message[R]
The reason the scan was stopped or failed, if applicable.
nodes[R]
Node statistics, including live, dead, filtered, and unresolved.
tasks[R]
Task statistics, including pending, active, and completed tasks.
vulnerabilities[R]
Vulnerability
statistics, including statuses, severities, and counts.
Public Class Methods
new(scan_id, site_id, engine_id, status, start_time, end_time, message, tasks, nodes, vulnerabilities)
click to toggle source
Constructor
# File lib/nexpose/scan.rb, line 554 def initialize(scan_id, site_id, engine_id, status, start_time, end_time, message, tasks, nodes, vulnerabilities) @scan_id = scan_id @site_id = site_id @engine_id = engine_id @status = status @start_time = start_time @end_time = end_time @message = message @tasks = tasks @nodes = nodes @vulnerabilities = vulnerabilities end
parse(xml)
click to toggle source
Parse a response from a Nexpose
console into a valid ScanSummary
object.
@param [REXML::Document] xml XML
document to parse. @return [ScanSummary] Scan
summary represented by the XML
.
# File lib/nexpose/scan.rb, line 572 def self.parse(xml) tasks = Tasks.parse(xml.elements['tasks']) nodes = Nodes.parse(xml.elements['nodes']) vulns = Vulnerabilities.parse(xml.attributes['scan-id'], xml) msg = xml.elements['message'] ? xml.elements['message'].text : nil # Start time can be empty in some error conditions. start_time = nil unless xml.attributes['startTime'] == '' start_time = DateTime.parse(xml.attributes['startTime'].to_s).to_time # Timestamp is UTC, but parsed as local time. start_time -= start_time.gmt_offset end # End time is often not present, since reporting on running scans. end_time = nil if xml.attributes['endTime'] end_time = DateTime.parse(xml.attributes['endTime'].to_s).to_time # Timestamp is UTC, but parsed as local time. end_time -= end_time.gmt_offset end ScanSummary.new(xml.attributes['scan-id'].to_i, xml.attributes['site-id'].to_i, xml.attributes['engine-id'].to_i, xml.attributes['status'], start_time, end_time, msg, tasks, nodes, vulns) end