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
242 243 244 245 |
# File 'lib/nexpose/scan.rb', line 242 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
226 227 228 |
# File 'lib/nexpose/scan.rb', line 226 def end_time @end_time end |
#engine_id ⇒ Object (readonly)
The Engine ID the scan was dispatched to.
222 223 224 |
# File 'lib/nexpose/scan.rb', line 222 def engine_id @engine_id end |
#message ⇒ Object (readonly)
The reason the scan was stopped or failed, if applicable.
232 233 234 |
# File 'lib/nexpose/scan.rb', line 232 def @message end |
#nodes ⇒ Object (readonly)
Node statistics, including live, dead, filtered, and unresolved.
237 238 239 |
# File 'lib/nexpose/scan.rb', line 237 def nodes @nodes end |
#scan_id ⇒ Object (readonly)
The Scan ID of the Scan
218 219 220 |
# File 'lib/nexpose/scan.rb', line 218 def scan_id @scan_id end |
#site_id ⇒ Object (readonly)
The site that was scanned.
220 221 222 |
# File 'lib/nexpose/scan.rb', line 220 def site_id @site_id end |
#start_time ⇒ Object (readonly)
The scan start time
224 225 226 |
# File 'lib/nexpose/scan.rb', line 224 def start_time @start_time end |
#status ⇒ Object (readonly)
The scan status. One of: running|finished|stopped|error|dispatched|paused|aborted|uknown
229 230 231 |
# File 'lib/nexpose/scan.rb', line 229 def status @status end |
#tasks ⇒ Object (readonly)
Task statistics, including pending, active, and completed tasks.
235 236 237 |
# File 'lib/nexpose/scan.rb', line 235 def tasks @tasks end |
#vulnerabilities ⇒ Object (readonly)
Vulnerability statistics, including statuses, severities, and counts.
239 240 241 |
# File 'lib/nexpose/scan.rb', line 239 def vulnerabilities @vulnerabilities end |
Class Method Details
.parse(xml) ⇒ ScanSummary
Parse a response from a Nexpose console into a valid ScanSummary object.
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 |
# File 'lib/nexpose/scan.rb', line 252 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 |