Class: Nexpose::ScanData

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

Overview

Minimal scan data object. Unlike ScanSummary, these objects don’t collect vulnerability data, which can be rather verbose and isn’t useful for many automation scenarios.

Direct Known Subclasses

ScanSummary

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scan_id, site_id, engine_id, status, start_time, end_time) ⇒ ScanData

Constructor



335
336
337
# File 'lib/nexpose/scan.rb', line 335

def initialize(scan_id, site_id, engine_id, status, start_time, end_time)
  @scan_id, @site_id, @engine_id, @status, @start_time, @end_time = scan_id, site_id, engine_id, status, start_time, end_time
end

Instance Attribute Details

#end_timeObject (readonly)

The scan finish time



329
330
331
# File 'lib/nexpose/scan.rb', line 329

def end_time
  @end_time
end

#engine_idObject (readonly)

The Engine ID the scan was dispatched to.



325
326
327
# File 'lib/nexpose/scan.rb', line 325

def engine_id
  @engine_id
end

#scan_idObject (readonly)

The Scan ID of the Scan



321
322
323
# File 'lib/nexpose/scan.rb', line 321

def scan_id
  @scan_id
end

#site_idObject (readonly)

The site that was scanned.



323
324
325
# File 'lib/nexpose/scan.rb', line 323

def site_id
  @site_id
end

#start_timeObject (readonly)

The scan start time



327
328
329
# File 'lib/nexpose/scan.rb', line 327

def start_time
  @start_time
end

#statusObject (readonly)

The scan status. One of: running|finished|stopped|error|dispatched|paused|aborted|uknown



332
333
334
# File 'lib/nexpose/scan.rb', line 332

def status
  @status
end

Class Method Details

.parse(xml) ⇒ Object



338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
# File 'lib/nexpose/scan.rb', line 338

def self.parse(xml)
  # 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

  ScanData.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)
end