Class: Nexpose::CompletedAsset

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

Overview

Summary object of a completed asset for a scan.

Direct Known Subclasses

IncompleteAsset

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ CompletedAsset

Internal constructor to be called by #parse_json.



205
206
207
# File 'lib/nexpose/device.rb', line 205

def initialize(&block)
  instance_eval(&block) if block_given?
end

Instance Attribute Details

#durationObject (readonly)

Time it took to scan the asset, in milliseconds.



202
203
204
# File 'lib/nexpose/device.rb', line 202

def duration
  @duration
end

#host_nameObject (readonly)

Host name of the asset, if discovered.



193
194
195
# File 'lib/nexpose/device.rb', line 193

def host_name
  @host_name
end

#idObject (readonly)

Unique identifier of an asset.



189
190
191
# File 'lib/nexpose/device.rb', line 189

def id
  @id
end

#ipObject (readonly)

IP address of the asset.



191
192
193
# File 'lib/nexpose/device.rb', line 191

def ip
  @ip
end

#osObject (readonly)

Operating system fingerprint of the asset.



195
196
197
# File 'lib/nexpose/device.rb', line 195

def os
  @os
end

#statusObject (readonly)

Status of the asset on scan completion. One of :completed, :error, or :stopped.



200
201
202
# File 'lib/nexpose/device.rb', line 200

def status
  @status
end

#vulnsObject (readonly)

Number of vulnerabilities discovered on the asset.



197
198
199
# File 'lib/nexpose/device.rb', line 197

def vulns
  @vulns
end

Class Method Details

.parse_json(json) ⇒ Object

Internal method for converting a JSON representation into a CompletedScan object.



221
222
223
224
225
226
227
228
229
230
231
# File 'lib/nexpose/device.rb', line 221

def self.parse_json(json)
  new do
    @id = json['assetID'].to_i
    @ip = json['ipAddress']
    @host_name = json['hostName']
    @os = json['operatingSystem']
    @vulns = json['vulnerabilityCount']
    @status = json['scanStatusTranslation'].downcase.to_sym
    @duration = json['duration']
  end
end

Instance Method Details

#ip_addressObject

Convenience method for assessing “ip” as “ip_address”.



210
211
212
# File 'lib/nexpose/device.rb', line 210

def ip_address
  ip
end

#operating_systemObject

Convenience method for assessing “os” as “operating_system”.



215
216
217
# File 'lib/nexpose/device.rb', line 215

def operating_system
  os
end