Class: Nexpose::AssetGroup
- Inherits:
-
AssetGroupSummary
- Object
- AssetGroupSummary
- Nexpose::AssetGroup
- Defined in:
- lib/nexpose/group.rb
Overview
Asset group configuration object containing Device details.
Instance Attribute Summary collapse
-
#devices ⇒ Object
Array of devices associated with this asset group.
Attributes inherited from AssetGroupSummary
#description, #id, #name, #risk_score
Class Method Summary collapse
-
.load(connection, id) ⇒ AssetGroup
Load an existing configuration from a Nexpose instance.
- .parse(rexml) ⇒ Object
Instance Method Summary collapse
-
#initialize(id, name, desc, risk) ⇒ AssetGroup
constructor
A new instance of AssetGroup.
-
#rescan_assets(connection) ⇒ Array[Hash[Fixnum, Fixnum]]
Launch adhoc scans against each group of assets per site.
Methods inherited from AssetGroupSummary
Constructor Details
#initialize(id, name, desc, risk) ⇒ AssetGroup
Returns a new instance of AssetGroup.
66 67 68 69 |
# File 'lib/nexpose/group.rb', line 66 def initialize(id, name, desc, risk) @id, @name, @description, @risk_score = id, name, desc, risk @devices = [] end |
Instance Attribute Details
#devices ⇒ Object
Array of devices associated with this asset group.
64 65 66 |
# File 'lib/nexpose/group.rb', line 64 def devices @devices end |
Class Method Details
.load(connection, id) ⇒ AssetGroup
Load an existing configuration from a Nexpose instance.
93 94 95 96 97 |
# File 'lib/nexpose/group.rb', line 93 def self.load(connection, id) r = APIRequest.execute(connection.url, %Q(<AssetGroupConfigRequest session-id="#{connection.session_id}" group-id="#{id}"/>)) parse(r.res) end |
.parse(rexml) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/nexpose/group.rb', line 99 def self.parse(rexml) return nil unless rexml rexml.elements.each('//AssetGroup') do |group| asset_group = new(group.attributes['id'].to_i, group.attributes['name'].to_s, group.attributes['description'].to_s, group.attributes['riskscore'].to_f) rexml.elements.each('//Devices/device') do |dev| asset_group.devices << Device.new(dev.attributes['id'].to_i, dev.attributes['address'].to_s, dev.attributes['site-id'].to_i, dev.attributes['riskfactor'].to_f, dev.attributes['riskscore'].to_f) end return asset_group end end |
Instance Method Details
#rescan_assets(connection) ⇒ Array[Hash[Fixnum, Fixnum]]
Launch adhoc scans against each group of assets per site.
77 78 79 80 81 82 83 84 85 |
# File 'lib/nexpose/group.rb', line 77 def rescan_assets(connection) sites_ids = @devices.collect { |d| d.site_id }.uniq scans = [] sites_ids.each do |id| dev_ids = @devices.select { |d| d.site_id == id }.map { |d| d.id } scans << connection.site_device_scan_start(id, dev_ids).merge(:site_id => id) end scans end |