Module: Puppet::ResourceApi::Transport
- Defined in:
- lib/puppet_x/puppetlabs/panos/transport_shim.rb
Overview
Remote target transport API
Class Method Summary collapse
- .connect(name, connection_info) ⇒ Object
- .inject_device(name, transport) ⇒ Object
-
.list ⇒ Object
retrieve a Hash of transport schemas, keyed by their name.
- .register(schema) ⇒ Object
Class Method Details
.connect(name, connection_info) ⇒ Object
226 227 228 229 230 231 |
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 226 def connect(name, connection_info) validate(name, connection_info) require "puppet/transport/#{name}" class_name = name.split('_').map { |e| e.capitalize }.join Puppet::Transport.const_get(class_name).new(get_context(name), wrap_sensitive(name, connection_info)) end |
.inject_device(name, transport) ⇒ Object
234 235 236 237 238 239 240 241 242 243 244 |
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 234 def inject_device(name, transport) #:nocov: transport_wrapper = Puppet::ResourceApi::Transport::Wrapper.new(name, transport) if Puppet::Util::NetworkDevice.respond_to?(:set_device) Puppet::Util::NetworkDevice.set_device(name, transport_wrapper) else Puppet::Util::NetworkDevice.instance_variable_set(:@current, transport_wrapper) end #:nocov: end |
.list ⇒ Object
retrieve a Hash of transport schemas, keyed by their name.
220 221 222 223 |
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 220 def list init_transports Marshal.load(Marshal.dump(@transports[@environment])) end |
.register(schema) ⇒ Object
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 199 def register(schema) raise Puppet::DevError, 'requires a hash as schema, not `%{other_type}`' % { other_type: schema.class } unless schema.is_a? Hash raise Puppet::DevError, 'requires a `:name`' unless schema.key? :name raise Puppet::DevError, 'requires `:desc`' unless schema.key? :desc raise Puppet::DevError, 'requires `:connection_info`' unless schema.key? :connection_info raise Puppet::DevError, '`:connection_info` must be a hash, not `%{other_type}`' % { other_type: schema[:connection_info].class } unless schema[:connection_info].is_a?(Hash) init_transports unless @transports[@environment][schema[:name]].nil? #:nocov: raise Puppet::DevError, 'Transport `%{name}` is already registered for `%{environment}`' % { name: schema[:name], environment: @environment, } #:nocov: end @transports[@environment][schema[:name]] = Puppet::ResourceApi::TransportSchemaDef.new(schema) end |