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



504
505
506
# File 'lib/nexpose/scan.rb', line 504

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



498
499
500
# File 'lib/nexpose/scan.rb', line 498

def end_time
  @end_time
end

#engine_idObject (readonly)

The Engine ID the scan was dispatched to.



494
495
496
# File 'lib/nexpose/scan.rb', line 494

def engine_id
  @engine_id
end

#scan_idObject (readonly)

The Scan ID of the Scan



490
491
492
# File 'lib/nexpose/scan.rb', line 490

def scan_id
  @scan_id
end

#site_idObject (readonly)

The site that was scanned.



492
493
494
# File 'lib/nexpose/scan.rb', line 492

def site_id
  @site_id
end

#start_timeObject (readonly)

The scan start time



496
497
498
# File 'lib/nexpose/scan.rb', line 496

def start_time
  @start_time
end

#statusObject (readonly)

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



501
502
503
# File 'lib/nexpose/scan.rb', line 501

def status
  @status
end

Class Method Details

.parse(xml) ⇒ Object



508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
# File 'lib/nexpose/scan.rb', line 508

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