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



505
506
507
508
509
510
511
512
# File 'lib/nexpose/scan.rb', line 505

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

Instance Attribute Details

#end_timeObject (readonly)

The scan finish time



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

def end_time
  @end_time
end

#engine_idObject (readonly)

The Engine ID the scan was dispatched to.



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

def engine_id
  @engine_id
end

#scan_idObject (readonly)

The Scan ID of the Scan



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

def scan_id
  @scan_id
end

#site_idObject (readonly)

The site that was scanned.



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

def site_id
  @site_id
end

#start_timeObject (readonly)

The scan start time



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

def start_time
  @start_time
end

#statusObject (readonly)

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



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

def status
  @status
end

Class Method Details

.parse(xml) ⇒ Object



514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
# File 'lib/nexpose/scan.rb', line 514

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