Class: Nexpose::ScanSummary
- Inherits:
-
Object
- Object
- Nexpose::ScanSummary
- Defined in:
- lib/nexpose/scan.rb
Overview
Object that represents a summary of a scan.
Defined Under Namespace
Classes: Nodes, Tasks, Vulnerabilities
Instance Attribute Summary collapse
-
#end_time ⇒ Object
readonly
The scan finish time.
-
#engine_id ⇒ Object
readonly
The Engine ID the scan was dispatched to.
-
#message ⇒ Object
readonly
The reason the scan was stopped or failed, if applicable.
-
#nodes ⇒ Object
readonly
Node statistics, including live, dead, filtered, and unresolved.
-
#scan_id ⇒ Object
readonly
The Scan ID of the Scan.
-
#site_id ⇒ Object
readonly
The site that was scanned.
-
#start_time ⇒ Object
readonly
The scan start time.
-
#status ⇒ Object
readonly
The scan status.
-
#tasks ⇒ Object
readonly
Task statistics, including pending, active, and completed tasks.
-
#vulnerabilities ⇒ Object
readonly
Vulnerability statistics, including statuses, severities, and counts.
Class Method Summary collapse
-
.parse(xml) ⇒ ScanSummary
Parse a response from a Nexpose console into a valid ScanSummary object.
Instance Method Summary collapse
-
#initialize(scan_id, site_id, engine_id, status, start_time, end_time, message, tasks, nodes, vulnerabilities) ⇒ ScanSummary
constructor
Constructor.
Constructor Details
#initialize(scan_id, site_id, engine_id, status, start_time, end_time, message, tasks, nodes, vulnerabilities) ⇒ ScanSummary
Constructor
253 254 255 256 |
# File 'lib/nexpose/scan.rb', line 253 def initialize(scan_id, site_id, engine_id, status, start_time, end_time, , tasks, nodes, vulnerabilities) @scan_id, @site_id, @engine_id, @status, @start_time, @end_time = scan_id, site_id, engine_id, status, start_time, end_time @message, @tasks, @nodes, @vulnerabilities = , tasks, nodes, vulnerabilities end |
Instance Attribute Details
#end_time ⇒ Object (readonly)
The scan finish time
237 238 239 |
# File 'lib/nexpose/scan.rb', line 237 def end_time @end_time end |
#engine_id ⇒ Object (readonly)
The Engine ID the scan was dispatched to.
233 234 235 |
# File 'lib/nexpose/scan.rb', line 233 def engine_id @engine_id end |
#message ⇒ Object (readonly)
The reason the scan was stopped or failed, if applicable.
243 244 245 |
# File 'lib/nexpose/scan.rb', line 243 def @message end |
#nodes ⇒ Object (readonly)
Node statistics, including live, dead, filtered, and unresolved.
248 249 250 |
# File 'lib/nexpose/scan.rb', line 248 def nodes @nodes end |
#scan_id ⇒ Object (readonly)
The Scan ID of the Scan
229 230 231 |
# File 'lib/nexpose/scan.rb', line 229 def scan_id @scan_id end |
#site_id ⇒ Object (readonly)
The site that was scanned.
231 232 233 |
# File 'lib/nexpose/scan.rb', line 231 def site_id @site_id end |
#start_time ⇒ Object (readonly)
The scan start time
235 236 237 |
# File 'lib/nexpose/scan.rb', line 235 def start_time @start_time end |
#status ⇒ Object (readonly)
The scan status. One of: running|finished|stopped|error|dispatched|paused|aborted|uknown
240 241 242 |
# File 'lib/nexpose/scan.rb', line 240 def status @status end |
#tasks ⇒ Object (readonly)
Task statistics, including pending, active, and completed tasks.
246 247 248 |
# File 'lib/nexpose/scan.rb', line 246 def tasks @tasks end |
#vulnerabilities ⇒ Object (readonly)
Vulnerability statistics, including statuses, severities, and counts.
250 251 252 |
# File 'lib/nexpose/scan.rb', line 250 def vulnerabilities @vulnerabilities end |
Class Method Details
.parse(xml) ⇒ ScanSummary
Parse a response from a Nexpose console into a valid ScanSummary object.
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
# File 'lib/nexpose/scan.rb', line 263 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 |