Class: Nexpose::Engine
- Inherits:
-
Object
- Object
- Nexpose::Engine
- Includes:
- Sanitize
- Defined in:
- lib/nexpose/engine.rb
Overview
Engine connnection to a Nexpose console.
Instance Attribute Summary collapse
-
#address ⇒ Object
The IP address or DNS name of a scan engine.
-
#id ⇒ Object
Unique numeric identifier for the scan engine, assigned by the console in the order of creation.
-
#name ⇒ Object
A name assigned to the scan engine by the security console.
-
#port ⇒ Object
The port on which the engine listens for requests from the security console.
-
#priority ⇒ Object
Relative priority of a scan engine.
-
#scope ⇒ Object
Whether the engine has a global or silo-specific scope.
-
#sites ⇒ Object
Sites to which the scan engine is assigned.
Class Method Summary collapse
Instance Method Summary collapse
-
#add_site(site_id) ⇒ Object
Assign a site to this scan engine.
-
#delete(connection) ⇒ Object
Delete this scan engine configuration from the security console.
-
#initialize(address, name = nil, port = 40814) ⇒ Engine
constructor
A new instance of Engine.
-
#save(connection) ⇒ Fixnum
Save this engine configuration to the security console.
- #to_xml ⇒ Object
Methods included from Sanitize
Constructor Details
#initialize(address, name = nil, port = 40814) ⇒ Engine
Returns a new instance of Engine.
112 113 114 115 116 117 118 119 120 |
# File 'lib/nexpose/engine.rb', line 112 def initialize(address, name = nil, port = 40814) @id = -1 @address = address @name = name @name ||= address @port = port @scope = 'silo' @sites = [] end |
Instance Attribute Details
#address ⇒ Object
The IP address or DNS name of a scan engine.
97 98 99 |
# File 'lib/nexpose/engine.rb', line 97 def address @address end |
#id ⇒ Object
Unique numeric identifier for the scan engine, assigned by the console in the order of creation.
95 96 97 |
# File 'lib/nexpose/engine.rb', line 95 def id @id end |
#name ⇒ Object
A name assigned to the scan engine by the security console.
99 100 101 |
# File 'lib/nexpose/engine.rb', line 99 def name @name end |
#port ⇒ Object
The port on which the engine listens for requests from the security console.
102 103 104 |
# File 'lib/nexpose/engine.rb', line 102 def port @port end |
#priority ⇒ Object
Relative priority of a scan engine. One of: very-low, low, normal, high, very-high
107 108 109 |
# File 'lib/nexpose/engine.rb', line 107 def priority @priority end |
#scope ⇒ Object
Whether the engine has a global or silo-specific scope.
104 105 106 |
# File 'lib/nexpose/engine.rb', line 104 def scope @scope end |
#sites ⇒ Object
Sites to which the scan engine is assigned.
110 111 112 |
# File 'lib/nexpose/engine.rb', line 110 def sites @sites end |
Class Method Details
.load(connection, id) ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/nexpose/engine.rb', line 122 def self.load(connection, id) xml = '<EngineConfigRequest session-id="' + connection.session_id + '"' xml << %( engine-id="#{id}") xml << ' />' r = connection.execute(xml, '1.2') if r.success r.res.elements.each('EngineConfigResponse/EngineConfig') do |config| engine = Engine.new(config.attributes['address'], config.attributes['name'], config.attributes['port']) engine.id = config.attributes['id'] engine.scope = config.attributes['scope'] if config.attributes['scope'] engine.priority = config.attributes['priority'] if config.attributes['priority'] config.elements.each('Site') do |site| engine.sites << SiteSummary.new(site.attributes['id'], site.attributes['name']) end return engine end end nil end |
Instance Method Details
#add_site(site_id) ⇒ Object
Assign a site to this scan engine.
149 150 151 |
# File 'lib/nexpose/engine.rb', line 149 def add_site(site_id) sites << SiteSummary.new(site_id, nil) end |
#delete(connection) ⇒ Object
Delete this scan engine configuration from the security console.
193 194 195 |
# File 'lib/nexpose/engine.rb', line 193 def delete(connection) connection.delete_engine(@id, @scope) end |
#save(connection) ⇒ Fixnum
Save this engine configuration to the security console.
176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/nexpose/engine.rb', line 176 def save(connection) xml = '<EngineSaveRequest session-id="' + connection.session_id + '">' xml << to_xml xml << '</EngineSaveRequest>' r = connection.execute(xml, '1.2') if r.success r.res.elements.each('EngineSaveResponse/EngineConfig') do |v| return @id = v.attributes['id'] end end end |
#to_xml ⇒ Object
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
# File 'lib/nexpose/engine.rb', line 155 def to_xml xml = '<EngineConfig' xml << %( id="#{id}") xml << %( address="#{address}") xml << %( name="#{replace_entities(name)}") xml << %( port="#{port}") xml << %( scope="#{scope}") if scope xml << %( priority="#{priority}") if priority xml << '>' sites.each do |site| xml << %(<Site id="#{site.id}" />) end xml << '</EngineConfig>' xml end |